Комментарии 15
Это следующий этап. Попытки были, но не такие успешные.
Как только добъюсь приемлемых результатов, обязательно напишу.
Как только добъюсь приемлемых результатов, обязательно напишу.
0
Играться пробовал, не более. Использовать, имхо, можно.
http://habrahabr.ru/post/167479/
http://habrahabr.ru/post/167479/
0
А можно видео-демку результата?
+1
Вот видео youtu.be/VV3BAWrGRLg
0
И все же Google Translate говорит значительно лучше и к тому же женским голосом. Скрипты есть в Инете.
0
Лучшее, что я слышал из доступного под Linux — это RHVoice.
0
После просмотра фильмов стоит сбрасывать громкостьПростите за нубский вопрос, но что это значит?
0
Посмотрел фильм на 100, закрыл программу. Громкость на 100, max громкость сообщений по дефолту 60, но это будет с непривычки громко, и элемент неожиданности сделает своё дело. Другое дело, если играла музыка больше 60, элемент неожиданности пропадает.
0
Ясно. Я просто очень редко трогаю глобальный регулятор громкости, обычно регулирую отдельно в каждом приложении.
0
del, промахнулся.
0
Столкнулся с тем, что весь текст переданный в festival нужно предварительно очищать и оставлять только текст. Я так понимаю, чо это повсеместная проблема. Написал скрипт который это делает (с использованием примеров, конечно же), хотя и не идеально. Но до сих пор удивлён отсутствием стандартного решения. Что бы, к примеру, можно было читать любой текст из буфера обмена. Может он есть и я просто его упустил?
0
Стандартные решения есть, но не для русского. clas.mq.edu.au/speech/synthesis/festival/festival_1_4_3.pdf пункт 9.1 про пунктуацию.
В целом нужно читать больше доков, даже старых. Также стоит обратить внимание на 13 лексику и написания правил для неё.
(defvar eou_tree
'((n.whitespace matches ".*\n.*\n\\(.\\|\n\\)*") ;; 2 or more newlines
((1))
((punc in ("?" ":" "!"))
((1))
((punc is ".")
;; This is to distinguish abbreviations vs periods
;; These are heuristics
((name matches "\\(.*\\..*\\|[A-Z][A-Za-z]?[A-Za-z]?\\|etc\\)")
((n.whitespace is " ")
((0))
;; if abbrev single space isn't enough for break
((n.name matches "[A-Z].*")
((1))
((0))))
((n.whitespace is " ") ;; if it doesn't look like an abbreviation
((n.name matches "[A-Z].*") ;; single space and non-cap is no break
((1))
((0)))
((1))))
((0)))))
В целом нужно читать больше доков, даже старых. Также стоит обратить внимание на 13 лексику и написания правил для неё.
0
Для чтения буфера потребуется:
— написать правила игнорирования всех символов (ниже дефолтные)
— написать функцию игнорирования независимо от местоположения в тексте
— Написать механизм чтения для нескольких языков (ru, en)
После этого и логи не страшно будет читать…
— написать правила игнорирования всех символов (ниже дефолтные)
;;; Symbols ...
(lex.add.entry
'("*" nil ( ((u) 0) ((m n o) 1) ((zh i tt) 0) )))
(lex.add.entry
'("%" nil ( ((p r o) 1) ((c e n t) 0) )))
;; Basic punctuation must be in with nil pronunciation
(lex.add.entry '("." punc nil))
(lex.add.entry '("'" punc nil))
(lex.add.entry '(":" punc nil))
(lex.add.entry '(";" punc nil))
(lex.add.entry '("," punc nil))
(lex.add.entry '("-" punc (((pau) 0))))
;(lex.add.entry '("-" punc nil))
(lex.add.entry '("\"" punc nil))
(lex.add.entry '("`" punc nil))
(lex.add.entry '("?" punc nil))
(lex.add.entry '("!" punc nil))
(lex.add.entry '("--" punc (((pau) 0))))
— написать функцию игнорирования независимо от местоположения в тексте
— Написать механизм чтения для нескольких языков (ru, en)
После этого и логи не страшно будет читать…
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Говорящий пингвин