如何在 Raspberry Pi 4 上使用 Azure 语音服务 C# SDK 设置麦克风

Posted

技术标签:

【中文标题】如何在 Raspberry Pi 4 上使用 Azure 语音服务 C# SDK 设置麦克风【英文标题】:How to setup microphone with Azure Speech Services C# SDK on Raspberry Pi 4 【发布时间】:2022-01-10 07:14:22 【问题描述】:

我正在使用 Raspberry Pi 4 和 Azure 语音服务创建家庭助理。我有一个关键字模型设置并使用以下代码监听关键字。

using AudioConfig audioConfig = AudioConfig.FromDefaultMicrophoneInput();
using var keywordRecognizer = new KeywordRecognizer(audioConfig);
await keywordRecognizer.RecognizeOnceAsync(keyword);

当在 VS 2022 中的 Windows 10 笔记本电脑(使用笔记本电脑麦克风)上运行时,这可以完美运行。

我在树莓派上使用的麦克风是 Respeaker 4-mic 阵列。

当我将它部署到树莓派时,它似乎没有拿起麦克风。我已编辑 etc/asound.conf 以确保将我要使用的麦克风设置为默认设置。我的麦克风使用卡 1 并且是设备 0。我已经测试过麦克风确实可以使用 Audacity。

我什至将 .FromDefaultMicrophoneInput 换成了:

using AudioConfig audioConfig = AudioConfig.FromMicrophoneInput("hw:CARD=1,DEV=0");

using AudioConfig audioConfig = AudioConfig.FromMicrophoneInput("hw:1,0");

以下 azures 文档:https://docs.microsoft.com/en-gb/azure/cognitive-services/speech-service/how-to-select-audio-input-devices

上述两个崩溃并出现错误:SPXERR_MIC_NOT_AVAILABLE。这让我相信没有找到麦克风。

任何关于如何让 Azure SDK 使用 Raspberry Pi 上的麦克风进行关键字识别的帮助将不胜感激。

非常感谢

编辑:我尝试了 USB 麦克风,这确实有效。使用通过 GPIO 引脚连接的麦克风似乎有问题?

【问题讨论】:

【参考方案1】:

安装 ALSA 库有助于解决我的 RPi 3 上的 SPXERR_MIC_NOT_AVAILABLE 问题。

sudo apt-get install gcc libasound2 libasound2-dev alsa-utils

【讨论】:

感谢您的建议,我刚刚尝试过,我的 Pi 4 已经安装了最新版本。所以不可能是这样的。它似乎没有拿起麦克风。 它实际上并没有抛出“SPXERR_MIC_NOT_AVAILABLE”错误。它只是无法从麦克风中拾取我的声音。

以上是关于如何在 Raspberry Pi 4 上使用 Azure 语音服务 C# SDK 设置麦克风的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Raspberry Pi 4 上使用 Azure 语音服务 C# SDK 设置麦克风

如何在Balena上运行的raspberry pi 3上修复无效的ELF标头错误?

Hyperledger 结构:无法使用 Raft 订购服务在 raspberry pi 4 上创建通道

如何在Raspberry PI 4中打开和关闭USB端口的电源

在 Raspberry Pi 4 上使用 OpenOCD 对 STM32F4 进行编程

在(Raspberry Pi)树莓派上安装NodeJS