Здравствуйте!

>>>>> "Lex" == Lex  <[email protected]> writes:

    Lex> Да, сейчас конвеер из перекодировщика->ru_tts->проигрывателя
    Lex> запускается на каждое сообщение от скринридера. Я же
    Lex> предлагал реализовать программу, которая бы при старте
    Lex> запускала ru_tts, и, получая данные от скринридера, посылала
    Lex> бы их синтезатору, а полученные от него аудио данные играла
    Lex> бы непосредственно при помощи вызовов звукового API (и к чему
    Lex> тут буферизация проигрывателей?..).

Да, в этом сценарии она не при чем. Но ведь примерно по такой схеме
работает и новый Multispeech. Он, конечно, запускает синтезатор не при
старте, а отдельно для проговаривания каждого куска текста. Даже если
в очереди их несколько, то синтезатор запускается не один раз для всей
очереди, а отдельно для каждого куска. Но вот проигрыватели внешние не
используются, а вырабатываемый синтезатором звуковой поток
проигрывается самим Multispeech непосредственно через звуковой API.

    Lex> Разумеется, при изменении параметров голоса ru_tts пришлось
    Lex> бы перезапускать.

А чем бы определялся конец речевого фрагмента? Все равно во входной
поток пришлось бы вставлять какие-то дополнительные метки и заставлять
синтезатор их различать. Так почему бы тогда уже не усовершенствовать
этот язык разметки входного потока так, чтобы можно было и параметры
голоса задавать? Или можно использовать уже существующий.

Язык у меня не повернулся бы все это назвать путем наименьшего
сопротивления в борьбе с неудовлетворительным откликом. Да и приведет
ли он к желанной цели?..

С уважением,
Игорь.
-- 
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus

Ответить