r语言 - ALSA lib pcm.c:8526:(snd_pcm_recover) underrun occurred



在开始学习基于音频R包和其他包的时候我遇到了2个问题:

  • 声音很难听,听不懂
  • my console is filled with messages

一开始我得到这些消息:

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

经过一些猜测尝试和谷歌搜索错误,我设法删除了其中的大部分,我现在只得到那些(编辑,我仍然得到第一个消息,他们只是变得很少:/):

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在开始测试前安装

我的"银屏"也有类似的问题。文本到语音的python框架:

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

我通过安装"软件"应用程序"中建议的编解码器来修复它。

插件→编解码器→GStreamer多媒体编解码器安装

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

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

我在患有als的饮食习惯上运行它。

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

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

现在声音好多了,没有漏音了

最新更新