人工智能-树莓派小车(1)——DuerOS语音唤醒

2023-12-10 12:38

本文主要是介绍人工智能-树莓派小车(1)——DuerOS语音唤醒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

十一月份,得到了一个树莓派开发板,可以研究基于树莓派的语音识别等等人工智能项目,人工智能是最近比较火的,所以让我们看看到底这个小玩意可以干点什么!

购买的链接如下:树莓派,此外,还购买了16G内存卡一张,PS3Playstation3 EYE麦克风一个用于语音识别,基本的东西就是这些。

系统方面,首先采用的是百度的DuerOS Raspberry系统,方便与接下来用的 Python SDK相结合,GitHub地址如下:DuerOS-Python-Client

接下来就是激动人心的首次唤醒了,唤醒之前,还要进行一些环境包的配置

  • 开始
    • 1. 停止现有小度功能,因为会占用MIC资源
    • 2. 安装依赖包
    • 3. 下载编译好的openssl和Python安装包,进行安装。
    • 4. 下载Python SDK和参考示例代码
  • 运行和测试
    • 1. 授权
    • 授权回调页设置
      • 1. 唤醒加识别
      • 2. enter按键触发识别
  • 唤醒以及基本测试
    • 1.基本测试
    • 2.唤醒词修改
      • 登陆
      • 创建自定义的唤醒词
      • 下载唤醒模型
    • 下载snowboy python接口代码
      • Clone snowboy接口代码
      • 生成平台代码
      • 获得snowboy python接口组件
    • 3 Python DuerOS SDK代码更新
      • Python DuerOS 中的app/snowboy目录内容更新
      • 修改app/snowboy/snowboydecoder.py
        • [1]修改_ init _()函数
        • [2] 添加feed_data()方法
        • [3] 修改terminate()方法
      • 修改app/wakeup_trigger_main.py
    • 注意事项
    • 视频展示
  • 系列教程

开始

1. 停止现有小度功能,因为会占用MIC资源

sudo systemctl disable duer
sudo systemctl stop duer

2. 安装依赖包

sudo apt-get install python-dateutil
sudo apt-get install gir1.2-gstreamer-1.0
sudo apt-get install python-pyaudio
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev     
sudo pip install tornado
sudo pip install hyper

hyper库用来支持http2.0 client, pyaudio用来支持录音,tornado用来完成oauth认证。

3. 下载编译好的openssl和Python安装包,进行安装。

openssl安装包 密码: ydkm
python2.7.14安装包 密码: spr8

 sudo tar -zxvf openssl1.1.tar.gz -C /usrsudo tar -zxvf python2.7.14.tar.gz -C /usr/local/sudo rm -rf /usr/bin/pythonsudo ln -s /usr/local/python2.7.14/bin/python /usr/bin/python

4. 下载Python SDK和参考示例代码

 git clone https://github.com/MyDuerOS/DuerOS-Python-Client.gitcd DuerOS-Python-Clientgit checkout raspberry-dev

运行和测试

1. 授权

./auth.sh

直接运行使用默认的client_id和client_secret,开发者可以替换成自己在DuerOS开放平台申请的client_id和client_secret,进而实现在控制台自定义的配置属性。

app/auth.py

app/auth.py

其中,需要在开放平台中“安全设置”的“授权回调页”,设置成

http://127.0.0.1:3000/authresponse

授权回调页设置

授权回调页设置

1. 唤醒加识别

./wakeup_trigger_start.sh

2. enter按键触发识别

./enter_trigger_start.sh

唤醒以及基本测试

接下来就是第一次唤醒了,演示视频如下:

1.基本测试

测试一些基本功能,包括系统画像和聊天功能

2.唤醒词修改

接下来进行唤醒词的修改,你可以将唤醒词改为大白,或者像我一样改为Jarvis,很酷,不是吗?

首先,我们需要训练自己的唤醒词,训练的语料越多,识别准确率也就越高。
选择在snowboy平台训练自己的唤醒词
先附上snowboy的官方地址:snowboy

登陆

登陆入口

创建自定义的唤醒词

自定义唤醒词创建

下载唤醒模型

在线训练完成后,下载训练模型(本例中我的训练唤醒词为“小白”)

唤醒模型下载

下载的模型为”小白.pmdl”

下载snowboy python接口代码

snowboy GitHub地址: snowboy GitHub

Clone snowboy接口代码

git clone https://github.com/Kitt-AI/snowboy.git

生成平台代码

在snowboy/swig/Python目录执行“make”命令,

平台代码生成

snowboy GitHub README.md

获得snowboy python接口组件

将snowboy/examples目录下的Python目录更名为snowboy

image.png

3 Python DuerOS SDK代码更新

有了上面的定制唤醒模型(小白.pmdl)和snowboy python接口组件,下面就可以更新Python DuerOS SDK的代码了。

Python DuerOS 中的app/snowboy目录内容更新

先删除Python DuerOS中的app/snowboy文件夹,然后再将步骤2中生成的snowboy文件夹拷贝到app/目录下,然后,将训练好的唤醒模型(小白.pmdl)拷贝到app/snowboy目录中。

snowboy目录

修改app/snowboy/snowboydecoder.py

[1]修改_ init _()函数

注释掉self.audio和self.stream_in

__init__

[2] 添加feed_data()方法

添加feed_data()方法

[3] 修改terminate()方法

更新terminate()方法

修改app/wakeup_trigger_main.py

在main()方法中更新唤醒模型,

唤醒模型更新

注意事项

经过上面的步骤,我们便能够更新成自己喜欢的唤醒词。但我们自定义的唤醒词还不是完美的。在测试中会发现唤醒率并不高。根本的原因在于我们自定义的唤醒词,训练语料条太少了(可能只有1组,3条)。要达到一个很好的唤醒率,需要进行大量丰富的语音样本训练才行。

训练样本

视频展示

唤醒词更改测试

系列教程

这篇关于人工智能-树莓派小车(1)——DuerOS语音唤醒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477123

相关文章

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备