1

我一直在尝试将 G 助手安装到 Raspberry Pi3 中。我对以下链接有疑问

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/configure-audio

来自上述链接的部分文本

# Record a short audio clip. If you get an error, go to step 2.
$ arecord --format=S16_LE --duration=5 --rate=16k --file-type=raw out.raw

正如预期的那样,我在这一步中遇到了错误。所以我尝试了 Step2 创建了一个包含所有硬件信息的新文件(.asoundrc)。然后我尝试了以下

speaker-test -t wav

但是我收到了以下错误(如果我重命名 .asoundrc 我看不到这个错误但我无法记录)

speaker-test 1.0.28

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
WAV file(s)
ALSA lib conf.c:1697:(snd_config_load1) toplevel:9:17:Unexpected char
ALSA lib conf.c:3417:(config_file_open) /home/pi/.asoundrc may be old or corrupted: consider to remove or fix it
ALSA lib conf.c:3339:(snd_config_hooks_call) function snd_config_hook_load returned error: Invalid argument
ALSA lib conf.c:3788:(snd_config_update_r) hooks failed, removing configuration
Playback open error: -22,Invalid argument

我怎样才能解决这个问题?谢谢!

4

2 回答 2

2

如果您的 .asoundrc 没有正确的结构,就会发生这种情况。警告:如果您使用 rpi gui(桌面)音量控制来更改输入,它将为您修改 .asoundrc,从而破坏谷歌助手的 ALSA。你必须去修理它。谷歌网站上的说明是正确的。

要修复它,请删除创建的新条目。然后,在顶部,查找“type hw”行。它已被偷偷修改...您必须将其更改回“type asym”以匹配 google 指定的配置。

我将 gui(桌面)音量的输入/输出设置为模拟,一旦我开始使用谷歌助手就不要触摸它,这样它就不会再次与 .asoundrc 混淆。

我正在使用 Logitech USB 耳机,它同时具有麦克风和扬声器(我不使用外部扬声器)所以,鉴于我的音频输入和输出进入耳机,我的 .asoundrc 看起来像这样:

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

最后,如果你重启你的 Pi,你必须重置助手二进制文件的源路径,否则它将无法找到启动助手演示的命令。通过键入“source env/bin/activate”来执行此操作然后您可以通过键入“google-assistant-demo”再次运行它

祝你好运!

于 2017-08-26T10:30:09.167 回答
0

是的,我看到了这个错误——奇怪的是,在我一切正常之后,我从没想过 .asoundrc 文件会被损坏。

无效值卡 arecord: main:722: audio open error: no such file or directory

我确认 Xeneck Stoher 说 Rasbian gui 音量/音频输入/输出选择弄乱了您的 ~.asoundrc 文件,替换它修复了这个问题,现在录制/播放工作正常。

于 2018-01-09T00:29:02.707 回答