缺少 /dev/dsp

缺少 /dev/dsp

我已经安装了 Cepstral Swift(语音测试),当我运行应该输出音频的命令时,我收到错误

oss_audio: failed to open audio device /dev/dsp

我确保还安装了 OSS:

dnf install alsa-utils alsa-plugins-oss

但仍然是同样的错误。我可以确认设备 /dev/dsp 不存在。我尝试安装 padsp 工具(将 OSS 音频路由到 PA),但该工具不适用于 AlmaLinux 9

答案1

/dev/dsp是较旧的“OSS”Linux 音频驱动程序的设备名称,这些驱动程序大多具有历史意义(或者可能具有非常专业的音频硬件)。 Linux 上的现代低级音频驱动系统是 ALSA。

现代发行版甚至可能不再加载 ALSA 的 OSS 兼容性内核模块,甚至可能已将它们从标准内核中删除。

如果您的发行版包含 OSS 兼容性模块,您可以尝试加载它们:

sudo modprobe snd-pcm-oss
sudo modprobe snd-mixer-oss

如果这些内核模块不可用,则可能存在兼容性包装二进制文件aoss(可能位于名为 的包中alsa-oss,具体取决于发行版)。

如果您使用 PulseAudio 作为更高级别的音频混合/管理层,还有padsp一个类似的包装二进制文件,允许 OSS 音频应用程序输出到 PulseAudio。

alsa-plugins-oss软件包具有相反的兼容性接口:它允许 ALSA 感知应用运行在OSS上司机,与适当的~/.asoundrc配置。由于您的应用程序显然尝试使用/dev/dsp,这意味着它使用 OSS 接口,因此alsa-plugins-oss包对您没有用处。

不幸的是,看起来AlmaLinux 9在其标准内核配置中既没有上述内核模块,也没有可用的padspnoraoss包装实用程序。这意味着仅支持OSS音频接口的应用程序将无法直接在AlmaLinux 9上产生音频。

基于快速谷歌搜索,您可能仍然可以使用 Cepstral Swift*.wav从文本生成音频文件,然后使用aplay或类似的工具来播放它们。如果可以使 Cepstral 将音频数据输出到标准输出,您也许能够构建一个两命令管道,将文本转换为直接音频输出。

相关内容