自定义修改唤醒词的离线语音唤醒实现方案一(sonwboy)

本文介绍了在Ubuntu22.04环境下使用Snowboy实现离线语音唤醒的功能,包括安装依赖、自定义唤醒词生成(仅限Ubuntu16.04)、以及唤醒灵敏度调整。然而,文中提到自定义唤醒词过程繁琐,识别准确度和误识率问题存在。

可自定义修改唤醒词的离线语音唤醒实现方案(ubuntu 22.04)sonwboy

目标实现功能:

  • 指定唤醒词可随时唤醒目标

  • 唤醒词可自定义修改

实验方案一:使用 Snowboy Hotword Detection

1. 安装依赖(python3):
$ $ sudo apt-get update
$ sudo apt-get install python3-pyaudio swig libatlas-base-dev
$ cd examples/Python3
$ pip install -r requirements.txt
2. 拉取代码编译
  • 使用git拉取

    $ git clone https://github.com/Kitt-AI/snowboy.git
    
  • 编译

    $ cd snowboy/swig/Python3
    $ make
    
3. 测试
  • 代码修改

    $ cd snowboy/examples/Python3
    $ vim snowboydecoder.py
    
    #!/usr/bin/env python
    
    import collections
    import pyaudio
    #from . import snowboydetect         修改为 import snowboydetect
    import snowboydetect
    import time
    import wave
    import os
    import logging
    from ctypes import *
    from contextlib import contextmanager
    
  • 功能测试

    $ cd ~
    $ cd snowboy/examples/Python3
    $ python3 demo.py resources/models/snowboy.umdl
    # snowboy.umdl 是官方提供的语音唤醒音频模型
    
  • 测试结果

    $ python3 demo.py resources/models/snowboy.umdl
    Listening... Press Ctrl+C to exit
    INFO:snowboy:Keyword 1 detected at time: 2024-03-07 09:56:36	# 每当监测到唤醒词回复
    INFO:snowboy:Keyword 1 detected at time: 2024-03-07 09:56:39
    
4. 自定义唤醒词

snowboy自定义唤醒词需要使用3个wav音频文件音频文件生成语音模型,例如snowboy.umdl就是生成的模型

wav音频采样:

4.1 本地生成pmdl模型

由于sonwboy停止更新已久,只支持python2进行本地唤醒模型生成

$ python --version
Python 2.7.18
$ cd snowboy/examples/Python
$ rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record1.wav  # 录制 3 段语音
$ 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
$ python generate_pmdl.py -r1=record1.wav -r2=record2.wav -r3=record3.wav -lang=zh -n=hotword.pmdl
$ python generate_pmdl.py -r1=record1.wav -r2=record2.wav -r3=record3.wav -lang=zh -n=hotword.pmdl
Traceback (most recent call last):
  File "generate_pmdl.py", line 7, in <module>
    from pmdl.snowboy_pmdl import SnowboyPersonalEnroll, SnowboyTemplateCut
  File "/home/asu/test/sonwboy/snowboy/examples/Python/pmdl/snowboy_pmdl.py", line 12, in <module>
    raise ImportError("pmdl generator only runs on OSX or Ubuntu 16.04.")
ImportError: pmdl generator only runs on OSX or Ubuntu 16.04.

pmdl 只能能使用 ubuntu 16.04 或者 OSX (MacOS)进行生成;(我也尝试了很多方法不行,修改系统未验证)

4.2 网页生成pmdl模型

官方训练网站(已经打不开了):

https://snowboy.kitt.ai/dashboard

某位大佬做的训练网站:

https://snowboy.hahack.com/
# 根据提示录制3段语音进行生成pmdl模型

https://snowboy.hahack.com/
https://snowboy.hahack.com/

4.3 唤醒灵敏度调节
$ cd snowboy/examples/Python3
$ vim demo.py
# detector = snowboydecoder.HotwordDetector(model, sensitivity=0.5)
# sensitivity用来调节灵敏度,根据个人需要调节
$ python3 demo.py bing.pmdl
总结:更换自定义唤醒词繁琐,且识别准确度低,灵敏度调高后误识率高。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值