snowboy 自定义唤醒词 实现语音唤醒【语音助手】

这篇具有很好参考价值的文章主要介绍了snowboy 自定义唤醒词 实现语音唤醒【语音助手】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。

语音识别、语音合成采用离线方式实现。

环境

操作系统:Ubuntu 22.04.3 LTS

CPU:Intel® Core™ i5-1035G1 CPU @ 1.00GHz × 8

内存:16.0 GiB

显卡:没用到,本系列均使用cpu的方案

参考文章

snowboy github地址(不更新了):https://github.com/Kitt-AI/snowboy

snowboy不维护之后seasalt-ai又维护了一段时间(主要提供出了基于docker的唤醒词训练)所以直接下载它的源码即可

GitHub - seasalt-ai/snowboy: DNN based hotword and wake word detection toolkit (model generation included)

docker:Install Docker Desktop on Ubuntu | Docker Documentation

实践

必要条件

可以通过apt安装的

# 安装之前先更新
apt-get upgrade
apt-get update

 python3.10(系统自带的)、python3-pip

# 参考安装python
apt-get install python3-pip

python -m pip install --upgrade pip

git、git-lfs、vim、gcc、g++(版本11.4+)、cmake(版本3.22+)、swig...

如果安装过程中报错大概率还是缺安装包,找到对应包安装再试

# 参考安装,安装之前可以先查一下本机之前安装过没有
apt install git

apt install git-lfs

apt install gcc

apt install g++

apt install cmake

apt install vim

apt install swig

apt install libatlas-base-dev

音频相关驱动安装

apt-get install python3-pyaudio sox

pip install pyaudio

pip install scipy

测试麦克风

rec t.wav

下载安装snowboy

mkdir /home/test

cd /home/test/

git clone https://github.com/seasalt-ai/snowboy.git

cd snowboy/swig/Python3/

make

执行完make会生成snowboy的库文件等用来实现语音唤醒功能

ll

# Makefile
# snowboydetect.py
# _snowboydetect.so*
# snowboy-detect-swig.cc
# snowboy-detect-swig.i
# snowboy-detect-swig.o

自定义唤醒词

mkdir /home/test/snowboy/model

使用wukong-robot的唤醒词生成

Snowboy Personal Wake Word

生成之后只需要把文件下载的pmdl文件放到model目录下即可,不用在走下面的docker训练唤醒词

docker安装

Install Docker Engine on Ubuntu | Docker Documentation 

之前安装过docker的可以略过,本机没装那就按照步骤安装

使用docker训练自定义唤醒词

准备唤醒词的音频文件

cd /home/test/snowboy/model

rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record1.wav

rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record2.wav

rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record3.wav

录完之后自己检查以下声音有没有问题,如果命令报错可能是少安装包或者重新打开terminal。

编辑一下Dockerfile,因为发现官网的不是慢就是其他报错

vim Dockerfile
FROM ubuntu:16.04

RUN apt update && apt --yes --force-yes install wget unzip build-essential python python-dev virtualenv portaudio19-dev

RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

RUN python2 get-pip.py

RUN wget https://github.com/seasalt-ai/snowboy/archive/master.zip && unzip master.zip
RUN cd snowboy-master/ && \
    virtualenv -p python2 venv/snowboy && \
    . venv/snowboy/bin/activate && \
    cd examples/Python && \
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

RUN apt -y remove wget unzip build-essential portaudio19-dev && apt -y autoremove && apt clean && rm -rf /var/lib/apt/lists/*

CMD cd snowboy-master/ && \
    . venv/snowboy/bin/activate && \
    cd examples/Python && \
    python generate_pmdl.py -r1=model/record1.wav -r2=model/record2.wav -r3=model/record3.wav -lang=en -n=model/hotword.pmdl

编辑完成保存,然后构建镜像

docker build -t snowboy-pmdl .

构建完成之后去运行容器生成自定义唤醒词模型

docker run -it -v $(pwd)/model:/snowboy-master/examples/Python/model snowboy-pmdl

执行完命令之后,model文件夹下会生成一个hotword.pmdl模型文件

测试

生成完模型测试效果,喊唤醒词然后能听到ding,就算是完成了

cd home/test/snowboy/examples/Python3

python demo.py ../../model/hotword.pmdl

 文章来源地址https://www.toymoban.com/news/detail-631961.html

到了这里,关于snowboy 自定义唤醒词 实现语音唤醒【语音助手】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【语音识别】落地实现--离线智能语音助手

    参考:基于python和深度学习(语音识别、NLP)实现本地离线智能语音控制终端(带聊天功能和家居控制功能) 基于V3S的语音助手(三)移植pocketsphnix唤醒 基于V3S的语音助手(二)移植pyaudio到开发板 基于V3S的语音助手(一)python3的编译和安装(该版本解决zlib readline可

    2024年03月09日
    浏览(54)
  • 人工智能与语音助手:未来的智能助手

    语音助手是人工智能领域的一个重要应用,它可以通过自然语言处理和语音识别技术来理解和回答用户的问题。在过去的几年里,语音助手技术已经取得了显著的进展,例如苹果的Siri、谷歌的Google Assistant、亚马逊的Alexa等。这些语音助手可以帮助用户完成各种任务,如设置闹

    2024年02月22日
    浏览(64)
  • 自然语言处理的未来:从语音助手到人工智能

    自然语言处理(NLP)是人工智能(AI)领域的一个重要分支,它涉及到计算机理解、生成和处理人类语言的能力。自从2010年左右,NLP技术在深度学习和大数据技术的推动下发生了巨大的变革,这使得许多之前只能由专业人士完成的任务现在可以由计算机自动完成。 在过去的几年里

    2024年02月21日
    浏览(90)
  • 人工智能技术在智能语音助手中的应用:从智能家居到智慧交通

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着科技的发展,人工智能技术越来越受到人们的关注。人工智能助手作为一种新型的技术,已经成为人们生活中不可或缺的一部分。智能语音助手作为人工智能助手的一种,受到越来越多的用户青睐。智能语音助手可以实

    2024年02月07日
    浏览(60)
  • 人工智能交互革命:探索ChatGPT的无限可能 第5章 ChatGPT-语音助手

    语音助手是一种能够通过语音识别和自然语言处理等技术,帮助人们完成各种任务和提供各种服务的人工智能系统。它们通常可以在智能手机、智能音箱、车载系统和家庭自动化系统等设备中使用,帮助人们与设备交互和控制设备。 语音助手的发展可以追溯到20世纪80年代初

    2023年04月23日
    浏览(57)
  • 飞桨paddlespeech语音唤醒推理C实现

    上篇( 飞桨paddlespeech 语音唤醒初探 )初探了paddlespeech下的语音唤醒方案,通过调试也搞清楚了里面的细节。因为是python 下的,不能直接部署,要想在嵌入式上部署需要有C下的推理实现,于是我就在C下把这个方案的部署实现了。需要说明的是目前完成的是浮点实现,真正部

    2023年04月18日
    浏览(43)
  • 飞桨paddlespeech语音唤醒推理C定点实现

    前面的文章(飞桨paddlespeech语音唤醒推理C浮点实现)讲了飞桨paddlespeech语音唤醒推理的C浮点实现。但是嵌入式设备通常CPU频率低和memory小,在嵌入式设备上要想流畅的运行语音唤醒功能,通常用的是定点实现。于是我就在浮点实现(把卷积层和相应的batchNormal层合并成一个卷

    2024年02月16日
    浏览(38)
  • Windows系统实现唤醒+合成+命令词智能语音交互

    1、之前写过离线能力调用,今天来个终极版,实现智能交互或者结合大模型的智能交互示例,下面进入正题。上B站效果离线唤醒+离线合成+离线命令词实现智能交互_哔哩哔哩_bilibili 2、到讯飞开放平台下载唤醒+合成+命令词的离线组合包,找到msc_64.dll复制三份出来,一定要注

    2024年02月16日
    浏览(53)
  • 语音革命:打造您的个人AI助手,悄悄分享我的开源语音识别全攻略!

    在AI智能化时代,人工智能助手不仅提高了我们的工作效率,而且变得越来越人性化。我的AI助手在此基础上又增添了一个引人瞩目的新功能—— 语音识别 。在本文中,我将详细讲解如何在.Net环境下实现这一功能,并且分享自己的开源项目,让更多的开发者可以学习并应用到

    2024年01月23日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包