在开始学习音频 R 包和其他基于我的包时遇到了 2 个问题:
首先我收到这些消息:
ALSA lib pcm_dsnoop.c:641:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slaveALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
经过一些 gess 尝试和谷歌搜索错误后,我设法删除了其中的大部分,但我现在只得到了这些错误(编辑我仍然收到第一条消息,它们变得罕见了:/):
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred
错误行的数量是随机的,有时没有错误,有时一堆。
我使用了带有简单
play(sin(1:10000/20))
代码的音频包和 Rmusic 包:play_music(c("B5","A5","G5","F#5","E5","D5","C#5","B4"),c(1,1,1,1,1,1,1,1))
两者都犯同样的错误
我在 kubuntu 20.04 上安装了最新的 R-base 3.6.3
> audio.drivers()
name description current
1 portaudio PortAudio driver TRUE
在开始测试之前安装了Portaudio19-dev
我的“silero”文本转语音 python 框架也遇到了类似的问题:
ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred silero
我已经通过从“软件”应用程序安装建议的编解码器来修复它。
附加组件 -> 编解码器 -> GStreamer 多媒体编解码器 -> 安装
我还安装了所有建议的编解码器并重新启动。对我来说,错误消失了。 GL!
我在 pygame.mixer 上遇到了这个问题(而且声音很恶心)。
我使用 ALSA 在 Dietpi 上运行它。
pygame.mixer.pre_init(frequency=48000, buffer=2048)
self._mixer=pygame.mixer.init()
我以 48k 的频率调用 pre_init() 并增加了缓冲区大小。
现在声音好多了,也没有出现欠载现象了