alsa工具arecord无法识别plughw:在Arch Linux上{1,0}

时间:2015-08-05 01:34:35

标签: linux alsa

编辑:所有这一切可能是由于配置非常严重的麦克风(或者是有故障的麦克风,我更换了笔记本电脑,现在使用的是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选项

< S>

整个故事:我正在尝试使用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

1 个答案:

答案 0 :(得分:2)

plughw:1,0建议特定于Raspberry Pi硬件,并不一定适用于其他地方。

我建议的第一件事就是完全删除-D DEVICE参数。

如果这不起作用,我建议尝试:

-D sysdefault

...用于基本的板载音频,由arecord -L列出。