[devel] Sound Policy
Michael Pozhidaev
msp на altlinux.ru
Вт Янв 26 04:19:27 UTC 2010
Hello, Igor Zubkov!
> 1. В PulseAudio есть autospawn. Т.е. звук всё равно через него
> проиграется. Правда, из-за одного бага не понятно куда оно проиграет.
То есть при вызове, скажем, paplay звук всё равно будет даже при
остановленном демоне? А, в таком раскладе это уже понятнее. ТОлько
вопрос, после первого вызова paplay демон опять помрёт или останется
жить? Если опять помрёт, то при частых вызовах paplay это будет
достаточно неспокойный процесс.
> 2. Можно системный PulseAudio демон и подвинуть что бы он запускался
> раньше.
Возможно, это самый разумный подход. Какие могли бы быть плюсы у запуска
pa в сессии?
> В общем, надо просто потестировать как это будет работать. Что надо
> поставить и как это поставленное настроить что бы получить среду для
> тестирования?
Если бегло то :
# sudo apt-get install voiceman voiceman-server mbrola mbrola-voice-en1
freespeech
# sudo ln -s /etc/tts.d/mbrola.voiceman /etc/voiceman.d/mbrola.voiceman
# sudo service voiceman start
Потом уже либо просто от юзера запустить voiceman и пописать туда текст,
либо повызывать voiceman --say текст. Здесь уже должно говорить.
/etc/voiceman.d содержит фрагменты конфига, которые определяют набор
используемых синтезаторов. Они просто пристыковываются в процессе
загрузки к /etc/voiceman.conf. /etc/tts.d содержит заготовки всех
возможных таких фрагментов. Симлинки в /etc/voiceman.d указывают, какие
из возможных синтезаторов реально должны использоваться.
Если посмотреть в /etc/tts.d/mbrola.voiceman, то там хорошо видна
команда вызова синтезатора. Она заканчивается на aplay, но может
заканчиваться на что угодно.
Сейчас bvoiceman переживает очень глубокий редизайн, но совершенно по
другим причинам. Все эти концепции останутся. В теории в будущем будет
возможность добавить некоторый код для общения с pulseaudio, если
выяснится, что вызов paplay чем-то не очень хорош. Он может оказаться
не очень хорошим по части остановки воспроизведения. В текущем варианте
воспроизведение останавливается просто посылкой всем процессам сначала
SIGINT, потом SIGKILL, но опять же, набор посылаемых сигналов можно
изменить.
Это всё актуально для Сизифа, 5.1 и p5.
Есть достаточно хорошая дока на русском:
/usr/share/doc/voiceman-server-1.2.0pre3/architecture-rus.pdf
Она может покрыть немало вопросов, но, разумеется, на все детали я готов
ответить и в переписки, если так будет проще и удобнее.
Ну вот.
--
Michael Pozhidaev. Tomsk, Russia. E-mail: msp at altlinux.ru
Info: http://www.marigostra.ru/
Подробная информация о списке рассылки Devel