编辑:所有这一切可能是由于配置非常严重的麦克风(或者是有故障的麦克风,我更换了笔记本电脑,现在使用的是Ubuntu而不是Arch Linux,所以我实际上并不知道)。要记录到wav文件,我现在所做的就是运行:
arecord -d $DURATION -f cd -t wav $OUTPUT_FILE_PATH
...用记录的持续时间(以秒为单位)替换$DURATION
,用$OUTPUT_FILE_PATH
替换所需要写入的文件的路径。我省略了-D sysdefault
参数,因为它给我带来了问题(就像大多数情况一样,你的里程可能会有所不同,所以如果命令对你不起作用,请尝试使用几个变量直到它起作用)。
不言而喻,但所有这些都需要安装alsa-utils
。
(原始问题留在下面,对于那些仍想看的人。)
Tl; dr version :arecord没有识别plughw:1,0,也没有hw:1,0,也没有没有-D选项
整个故事:我正在尝试使用Bash脚本制作一个简单的语音助手(我发现Python / Perl很容易使用,但这只是我)。对话框由Zenity / KDialog制作。语音识别尚未包括在内,因此必须输入短语/命令。目前该计划以西班牙语表示,但我计划也有英文版本。
做我的研究,我发现:http://blog.oscarliang.net/raspberry-pi-voice-recognition-works-like-siri/
但它在我的机器上无法正常工作。
[owner@arch-hp-2000-notebook-pc ~]$ ~/test-speech-input
“Recording… Press Ctrl+C to Stop.”
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM “plughw:1,0″
arecord: main:722: audio open error: No such file or directory
“Processing…”
^C
[owner@arch-hp-2000-notebook-pc ~]$
这显然与arecord -D "plughw:1,0" -q -f cd -t wav
部分有关。
arecord -l
的输出:
[owner@arch-hp-2000-notebook-pc ~]$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Generic_1 [HD-Audio Generic], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
arecord -L
的输出:
[owner@arch-hp-2000-notebook-pc ~]$
null
Discard all samples (playback) or generate zero samples (capture)
pulse
PulseAudio Sound Server
default
Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=Generic_1
HD-Audio Generic, ALC269VC Analog
Default Audio Device
front:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
Front speakers
surround21:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic_1,DEV=0
HD-Audio Generic, ALC269VC Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
[owner@arch-hp-2000-notebook-pc ~]$
在@CharlesDuffy的答案的第一部分之后(感谢您的帮助):
[owner@arch-hp-2000-notebook-pc ~]$ ~/test-speech-input
Recording… Press Ctrl+C to Stop.
Processing…
You Said: [owner@arch-hp-2000-notebook-pc ~]$
在新的答案之后,同样是@CharlesDuffy(尽管这个系统都是AMD我认为,没有英特尔):
[owner@arch-hp-2000-notebook-pc ~]$ test-speech-input
Recording… Press Ctrl+C to Stop.
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM CARD=Generic_1
arecord: main:722: audio open error: No such file or directory
Processing…
You Said: [owner@arch-hp-2000-notebook-pc ~]$
按照@CharlesDuffy的最新答案:
[owner@arch-hp-2000-notebook-pc ~]$
Recording… Press Ctrl+C to Stop.
ALSA lib pcm_dsnoop.c:614:(snd_pcm_dsnoop_open) unable to open slave
arecord: main:722: audio open error: No such file or directory
Processing…
^C
[owner@arch-hp-2000-notebook-pc ~]$
仔细检查内置麦克风的音量,似乎选择了一个不存在的麦克风。切换到真正的麦克风产生了相同的结果。
我现在迷路了。还有其他想法吗?是否有其他可能有用的命令行录音工具或者可能更容易使用(至少对我而言)?
机器:HP 2000笔记本电脑,Arch Linux,uname -a返回 Linux HOST_NAME 4.1.2-2-ARCH #1 SMP PREEMPT Wed Jul 15 08:30:32 UTC 2015 x86_64 GNU/Linux
答案 0 :(得分:2)
plughw:1,0
建议特定于Raspberry Pi硬件,并不一定适用于其他地方。
我建议的第一件事就是完全删除-D DEVICE
参数。
如果这不起作用,我建议尝试:
-D sysdefault
...用于基本的板载音频,由arecord -L
列出。