[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