在Luckfox上使用EdgeVoice语音助手

本文主要介绍如何使用百元级开发板 Luckfox Pico Ultra W 安装 EdgeVoice ,通过 Azure OpenAI 打造一个实时语音助手,实现媲美商业产品的交互体验。

1. 硬件准备

EdgeVoice 项目地址:https://github.com/sangyuxiaowu/EdgeVoice?wt.mc_id=DT-MVP-5005195

1.1 核心硬件

  • Luckfox Pico Ultra W(约120):板载贴片麦克风,支持蓝牙、Wi-Fi 6、摄像头接入等
  • MX1.25 2P 接线的 8Ω 1W 喇叭(约5):播放语音
  • 1.5寸 NV3030B 显示屏(约50,可选):显示交互界面

请添加图片描述

选用这个开发板的原因是因为它的性价比很高,同时支持蓝牙、Wi-Fi 6、摄像头接入等,并直接提供了板载贴片麦克风和喇叭接口,非常适合用来做语音助手。同时,它的体积小巧,携带方便,可以后期设计 3D 打印外壳,做成一个小巧的语音助手。

1.2 系统准备

需要根据 Luckfox 官方文档,烧录好最新的 Ubuntu 系统固件,具体操作可参考官方文档。同时需要安装好 .NET 环境,可以自行安装或使用项目中的doc/install_dotnet_sdk_9.sh脚本安装。

1.3 显示器连接

显示器是可选项,你也可以更改项目源码,使用其他显示器。下图展示了如何使用 Luckfox 接入 1.5寸 NV3030B 显示屏,具体接线可参考该图:

请添加图片描述

在 LuckFox 上使用时,需要先用 luckfox-config 开启 SPI 和 PWM,注意:需要先关闭 LCD 和 I2C4,否则会占用 SPI 引脚。需要一个支持 PWM 的 GPIO 引脚,可以自己选一个,上图使用的是 40,即 PWM3_M1

开启 SPI 时需要选择启用 MOSICS 并设置 SPI 速率为 40000000,即4后面七个零。

2. 软件准备

2.1 创建 Azure 服务

在开始之前,我们需要准备好服务,在 Azure AI Foundry | Azure OpenAI 服务 部署一个实时语音服务。这里我们使用 gpt-4o-realtime-preview,它提供了一套完整的语音交互服务,包括语音识别、语音合成、语音对话等功能。

请添加图片描述

创建完成后即可获取到服务的服务地址和密钥信息:

请添加图片描述

2.2 音频调整

在使用项目之前,需要调整音频配置,可以直接使用 doc/audioset.sh 脚本。主要调整了麦克风增益、喇叭音量(稍微调小了一些,设置为20,最大可以为30)、开启HPF。

amixer cset name='ADC ALC Left Volume' 26
amixer cset name='ADC ALC Right Volume' 6
amixer cset name='ADC Digital Left Volume' 195
amixer cset name='ADC Digital Right Volume' 195
amixer cset name='ADC MIC Left Gain' 3
amixer cset name='ADC MICBIAS Voltage' 'VREFx0_975'
amixer cset name='ADC Mode' 'SingadcL'
amixer cset name='ADC HPF Cut-off' 'On'
amixer cset name='DAC LINEOUT Volume' 20

另外,当前程序的音频使用了 Alsa 库,需要安装 libasound2-dev,可以使用以下命令安装:

sudo apt-get -y install libasound2-dev

2.3 部署 EdgeVoice

在 Luckfox 上部署 EdgeVoice 项目,可以选择直接下载已经编译好的 EdgeVoice 项目,也可以自行编译。

dotnet publish ./src/EdgeVoice.csproj -r linux-arm -p:PublishSingleFile=true -f net9.0 --self-contained=false -o ./publish/linux-arm
  • 树莓派需要修改 linux-armlinux-arm64
  • 如果需要框架依赖,删除 --self-contained=false 参数即可
  • 使用的库 Alsa 不支持 Windows,所以 Windows 下无法运行

在 Release 中提供了框架依赖的版本 linux-armlinux-arm64,可以直接下载使用。

2.4 配置 EdgeVoice

在部署好 EdgeVoice 项目后,需要配置好服务地址和密钥信息,修改appsettings.jsonRealtimeAPI 配置。

{
    "Endpoint": "you.openai.azure.com",
    "ApiVersion": "2024-10-01-preview",
    "Deployment": "gpt-4o-realtime-preview",
    "ApiKey": "you-key"
}

注意:这里的 EndpointDeploymentApiKey 需要替换为你自己的服务地址和密钥信息。同时需要注意保护好这些信息,避免泄露。

如果没有显示器或不想启用的话,可以修改 appsettings.jsonLcdSettings 节点中的 SpiBus-1 即可。

另外,需要准备一个 TTF 字体文件,放在项目中,并配置到 appsettings.jsonLcdSettings 节点中的 FontPath 中。

当然,也可以使用默认的字体,这样则需要安装 ttf-wqy-zenhei

sudo apt-get -y install fonts-wqy-microhei

3. 运行 EdgeVoice

在配置好 EdgeVoice 项目后,即可运行项目:

chmod +x EdgeVoice
sudo -E ./EdgeVoice

运行后即可看到 EdgeVoice 的启动界面,同时可以通过麦克风说话,EdgeVoice 会实时识别语音并返回结果。这里需要注意的是,因为使用了音频和GPIO,所以需要使用 sudo 权限运行,同时需要使用 -E 参数保留环境变量。

请添加图片描述

请添加图片描述

4. 总结

通过本文的介绍,你可以在 Luckfox 上使用 EdgeVoice 语音助手,实现媲美商业产品的交互体验。同时,你也可以根据自己的需求,自定义 EdgeVoice 的功能,实现更多有趣的功能。后续我们还会继续优化 EdgeVoice 项目,增加更多的功能,如小智接入和智能家居控制等,敬请期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桑榆肖物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值