ALSA lib pcm.c:8526:(snd_pcm_recover) 发生欠载

问题描述 投票:0回答:2

在开始学习音频 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

r alsa
2个回答
0
投票

我的“silero”文本转语音 python 框架也遇到了类似的问题:

ALSA lib pcm.c:8545:(snd_pcm_recover) underrun occurred silero

我已经通过从“软件”应用程序安装建议的编解码器来修复它。

附加组件 -> 编解码器 -> GStreamer 多媒体编解码器 -> 安装

我还安装了所有建议的编解码器并重新启动。对我来说,错误消失了。 GL!


0
投票

我在 pygame.mixer 上遇到了这个问题(而且声音很恶心)。

我使用 ALSA 在 Dietpi 上运行它。

pygame.mixer.pre_init(frequency=48000, buffer=2048)
self._mixer=pygame.mixer.init()

我以 48k 的频率调用 pre_init() 并增加了缓冲区大小

现在声音好多了,也没有出现欠载现象了

© www.soinside.com 2019 - 2024. All rights reserved.