[Homeros] Q: Dectalk и голоса для чтения
Дмитрий Падучих
dpaduch на k66.ru
Чт Июн 3 18:13:55 UTC 2010
Michael Pozhidaev:
>> Насколько я знаю, почти всё голосовое выделение в Emacspeak сделано при
>> помощи команд смены голоса. Явные значения речевых параметров делаются
MP> Извини, тут не очень понял. emacspeak интенсивно шлёт команду :dv
MP> (define voice), при помощи которой меняет высоту голоса и прочее.
MP> Постоянно мелькает :np, но другие n* не попадались. МОжет и есть, просто
MP> не попадались.
Всё верно, эта информация уже устарела.
MP> Можно ему как-нибудь сказать, чтобы, скажем, строку состояния, что в
MP> нашем случае является синонимом заголовку окна, читал бы другим голосом?
Там используется два голоса, которые хранятся в переменных voice-annotate и
voice-smoothen. Значения переменных можно изменить, но ведь они, эти
переменные, и в других местах используются. А что, это что-то меняет?
MP> А можно где-нибудь посмотреть тот мап, на основе которого emacspeak
MP> конвертирует фейсы в параметры голоса?
Emacspeak сейчас устанавливает свой адвайс на font-lock (стандартный
механизм Emacs выделения текста фейсом) и некоторые другие функции и
параллельно выделяет текст своим собственным свойством personality. Свойство
personality преобразуется в конкретные команды, когда Emacspeak отправляет
текст на чтение речевому серверу. Можно посмотреть, как происходит обработка
personality, в функции dtk-speak-using-voice. Эта функция вызывает функцию
tts-get-voice-command, чтобы выполнить преобразование personality в команду.
Функция tts-get-voice-command специализируется при загрузке модуля голосов
для данного речевого сервера. В нашем случае - модуля dectalk-voices.el. См.
в нём функцию dectalk-get-voice-command.
Но это только алгоритм преобразования personality в уже готовые коды, а
вообще-то речевые параметры для кодов вычисляются довольно сложным способом
в файлах acss-structure.el, dectalk-voices.el, voice-setup.el.
--
Дмитрий Падучих
Подробная информация о списке рассылки Homeros