节日音频设备问题。没有声音输出

Festival audio device problems. No sound output

我目前安装并配置了 festival 2.4。

这是我正在做的事情:

我先用./bin/festival进入节日提示
然后做 (SayText "test") 应该让 tts 说出单词 test

现在,当我使用 apt-get 从存储库安装 festival 2.1 时,此命令按预期工作,它说 "test"
然而,当 运行 来自手动构建的节日 2.4 时,它报告没有错误,但也没有声音。我使用了设置参数命令并尝试了所有音频方法,还尝试了带有 Audio_Device 的设置参数命令,并在我的系统上尝试了 /dev/ 和 /dev/snd/ 中的许多设备都无济于事。

请注意,oss-compat 已安装,我在某处看到它被列为解决方案,并且在我前一段时间构建 cmu sphinx 时已经安装了它。

我的问题是什么是 apt-get 做的,而我不是。我已经在这里工作了大约 12 个小时,所以欢迎任何想法。

更新:我已经使用 strace 来监控音乐节对系统的调用,试图找出造成这种情况的原因,这是我想出的:

我的系统连接了多个音频设备,主板上的集成音频被炸了,nvidia卡的hdmi输出,以及我暂时使用的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)

我四处搜索了一下,我能找到的唯一提到的这个错误是针对特殊情况的,无论相关人员在做什么。

我找到了问题的解决方案。有了来自 strace 的信息,我只需要追踪是什么阻止了我访问我的音频设备。

fuser -fv /dev/snd/* /dev/dsp* /dev/audio* 将有效地向您显示访问系统上任何音频设备的任何内容。它表明 pulseaudio 正在访问 /dev/snd/control****,而不是 audio3 但仍然值得一试。然后我运行pulseaudio -k杀pulseaudio。之后就可以听到festival了

您只需配置 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")