Здравствуйте!
>>>>> "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