1:首先我们还是要导入一些包:
2:还有个特别重要的事情没有做,那就是我们没有修改声卡:我们多一天用arecord录音用插件方式指定了录音声卡是1:0,现在我们用pyaudio来录音就没那么容易指定了,需要我们修改默认的声卡:
这里我们简单的介绍下 linux ALSA下的声卡 的相关的情况:
ALSA的配置文件对于ALSA非常重要。常见的有三个:alsa.conf, asoundrc, asound.conf。
核心配置文件
ALSA核心配置文件位于/usr/share/alsa/目录下,主要配置文件为/usr/share/alsa/alsa.conf 。其它文件是否需要,位置在哪,都是由alsa.conf来决定的。通常会有/usr/share/alsa/card 和/usr/share/alsa/pcm两个子目录,用于设置Card相关的参数,别名以及一些PCM默认设置。
此外,在alsa.conf中,通常还会引用 /etc/asound.conf 和 ~/.asoundrc这两个配置文件,这两个文件通常是放置个人需要特殊设置的相关参数。按照Alsa官方文档的说法,1.0.9版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用。不过,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件。alsa.conf
alsa.conf中主要的一些内容包括:
1) 用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:
2) 设置了default pcm的一些默认参数,如,默认使用Card 0 ,Device 0作为音频设备等等
3) 设置了Alsa 内置的一些plugin的接口参数,例如file:
- 当然看了上面的资料我们就要配置我们自己的声卡了,首先来说:我们需要清楚我们自己有那些声卡:
上面列出的是播放设备 card 0、 device 0 或hw:0,0 (hw:0,1是 HDMI 音频输出)。
- 下面我们列出我们的录音设备︰
在这里录制设备处于卡 1,设备 0 或hw1:0.
- 然后我们修改我们的配置文件~/.asoundrc文件︰
pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:0,0" } capture.pcm { type plug slave.pcm "hw:1,0" } }
- 然后运行rec就可以默认设备录音: