Проблемы с фестивальным аудиоустройством. Нет звука

В настоящее время у меня установлен и настроен Festival 2.4.

Вот что я делаю:

Сначала я использую ./bin/festival, чтобы попасть в подсказку фестиваля.
Затем выполняю (SayText "test"), чтобы tts произнесла слово test

Теперь, когда у меня установлен festival 2.1 с помощью apt-get из репозитория, эта команда работает, как и ожидалось, она говорит "test". Однако при запуске из вручную созданной Festival 2.4 она не сообщает об ошибках, но также и без звука. Я использовал команды установки параметров и пробовал все аудио методы, также пробовал команду установки параметров с Audio_Device и пробовал многие устройства из / dev / и / dev / snd / в моей системе, но безрезультатно.

Обратите внимание, что oss-compat установлен, я видел, что это где-то указано как решение, и оно уже было установлено, когда я некоторое время назад собирал cmu sphinx.

Мой вопрос в том, что я делаю, чего не делаю. Я занимаюсь этим уже около 12 часов, так что любые идеи приветствуются.

Обновление: я использовал strace для отслеживания звонков, которые фестиваль делает в систему, в попытке выяснить причину этого. Вот что я придумал:

Моя система имеет несколько подключенных к ней аудиоустройств, интегрированный звук на материнской плате, который обжарен, выходы hdmi карты nvidia и аудиоустройство USB, которое я использую в настоящее время. ls /dev/ показывает три аудиоустройства, как и ожидалось /dev/audio, /dev/audio2 и /dev/audio3. Настройка festival на использование первых двух с (Parameter.set 'Audio_Device "/dev/audio") сделала то же самое, что и раньше, без ошибок, но и без звука. Однако при использовании третьего устройства /dev/audio3 я получаю Linux: can't open /dev/audio3. При дальнейшем исследовании вышеупомянутой strace я обнаружил следующее:

open("/dev/audio3", O_WRONLY) = -1 EBUSY (Device or resource busy)

Я немного поискал, и единственные упоминания об этой ошибке, которые я могу найти, - это специальные случаи для того, что делал этот человек.


person HalfLife420    schedule 05.03.2017    source источник


Ответы (2)


Вам просто нужно настроить Pulseaudio. Добавьте эти строки в конец вашего ~/.festivalrc файла или в /usr/share/festival/festival.scm:

(Parameter.set 'Audio_Required_Format 'aiff)
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "paplay $FILE --client-name=Festival --stream-name=Speech")
person Nikolay Shmyrev    schedule 05.03.2017
comment
Да, я сделал это после того, как вы прокомментировали ранее, работает как шарм! - person HalfLife420; 06.03.2017
comment
Если у вас несколько приемников звука (например, выход HDMI) и не удается получить звук, просто добавьте --device = 0 или --device = 1 к последней команде. Пример: (Parameter.set 'Audio_Command paplay --device = 0 $ FILE --client-name = Festival --stream-name = Speech) Используйте список приемников pacmd, чтобы идентифицировать соответствующий приемник. - person KIAaze; 15.04.2018
comment
Теперь он просто издает странный шипящий звук, хотя он исходит от правильного выхода. - person Haggra; 25.11.2020

Я нашел решение проблемы. Вооружившись информацией от strace, оставалось только отследить, что блокирует мой доступ к моим аудиоустройствам.

fuser -fv /dev/snd/* /dev/dsp* /dev/audio* эффективно покажет вам все, что имеет доступ к любому аудиоустройству в вашей системе. Он показал, что pulseaudio обращается к /dev/snd/control****, а не к audio3, но все же стоит попробовать. Затем я запустил pulseaudio -k, чтобы убить pulseaudio. После этого я слышу фестиваль.

person HalfLife420    schedule 05.03.2017
comment
Правильное решение - настроить Festival для использования PulseAudio вместо wiki.archlinux.org/index.php/Festival - person Nikolay Shmyrev; 06.03.2017
comment
@NikolayShmyrev Если бы ты сказал мне это много часов назад, ха-ха. Теперь он работает намного лучше, и мне не нужно закрывать другие приложения, чтобы он работал. Спасибо большое, Николай! - person HalfLife420; 06.03.2017