905|6

6401

帖子

2

TA的资源

版主

snowboy 自定义唤醒词 实现语音唤醒【语音助手】 [复制链接]

最近研究语音唤醒,给大家介绍一个snowboy的语音唤醒,搭建很快,可以用在Linux上运行,我目前是用在树莓派上,说实话效果一般,用多个人的声音作为训练集,出来的结果不是很好,四个字的唤醒词只要采集到两个字的语音,就会唤醒,不过在一些作品上用我觉得还是够的,商用的话还是斟酌一下。

 

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

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

 

环境
操作系统:Ubuntu 22.04.3 LTS

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

内存:16.0 GiB

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

参考文章
snowboy github地址(不更新了):

链接已隐藏,如需查看请登录或者注册

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

链接已隐藏,如需查看请登录或者注册

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://blog.csdn.net/anshichuxuezhe/article/details/132145187

最新回复

哦!!!!闭源的话,就没法优化了。。。。。再去Github上找开源的   详情 回复 发表于 2024-9-2 15:12

回复
举报

5637

帖子

6

TA的资源

版主

重点是训练啊,要不也没法用  

点评

他这个训练很简单,3个音频就够了。不过商用不靠谱。  详情 回复 发表于 2024-9-2 09:09
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引


回复

895

帖子

1

TA的资源

纯净的硅(高级)

仙哥,这是已经成功应用了吗????????????????

恭喜恭喜。。。

点评

这是一个闭源项目,应用上了,但是商用效果不行。  详情 回复 发表于 2024-9-2 09:11

回复

6401

帖子

2

TA的资源

版主

秦天qintian0303 发表于 2024-9-1 18:41 重点是训练啊,要不也没法用  

他这个训练很简单,3个音频就够了。不过商用不靠谱。


回复

6401

帖子

2

TA的资源

版主

hellokitty_bean 发表于 2024-9-2 09:06 仙哥,这是已经成功应用了吗???????????????? 恭喜恭喜。。。

这是一个闭源项目,应用上了,但是商用效果不行。

点评

哦!!!!闭源的话,就没法优化了。。。。。再去Github上找开源的  详情 回复 发表于 2024-9-2 15:12

回复

895

帖子

1

TA的资源

纯净的硅(高级)

wangerxian 发表于 2024-9-2 09:11 这是一个闭源项目,应用上了,但是商用效果不行。

哦!!!!闭源的话,就没法优化了。。。。。再去Github上找开源的

点评

嗯嗯,只提供各种接口,做比赛用还是够的。  详情 回复 发表于 2024-9-2 15:35

回复

6401

帖子

2

TA的资源

版主

hellokitty_bean 发表于 2024-9-2 15:12 哦!!!!闭源的话,就没法优化了。。。。。再去Github上找开源的

嗯嗯,只提供各种接口,做比赛用还是够的。


回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表