微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 PortAudio 录制的声音里面有空格?

如何解决为什么 PortAudio 录制的声音里面有空格?

我在 Qt Creator 5 中的 RaspBerry Pi 上运行此代码 PortAudio example 时遇到问题。我的设备是 USB PnP 麦克风。
.asoundrc已配置:

    pcm.!default {
  type asym
  capture.pcm "mic"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:2,0"
  }
}

在终端编译后我得到:

patest_record.c
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm,hwParams,&alsaPeriodFrames,&dir )' Failed in 'src/hostapi/alsa/pa_linux_alsa.c',line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm,line: 924
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM cards.pcm.phoneline
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find deFinition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM bluealsa
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find deFinition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) UnkNown PCM bluealsa
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_asym.c:106:(_snd_pcm_asym_open) playback slave is not defined
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1,skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1,skipping unlock

=== Now recording!! Please speak into the microphone. ===
index = 32768
index = 68608
index = 106496
index = 141312
index = 174080
index = 215040
index = 220500
sample average = -nan
Wrote data to 'recorded.raw'
Error: No default output device.

我录制的文件似乎有正确的样本,因为大多数情况下我可以听到播放到麦克风的声音,但它似乎已损坏或无法连续录制 - Audacity 我有 Wave shape

另外我可以说arecord命令记录一切都很完美,但是我需要在C++中记录后做一些处理。有谁知道如何解决这个问题?也许我可以用任何其他库替换 PA?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。