语音唤醒


前言

针对语音交互过程,提供了一种语音唤醒的方法供大家参考,语音交互采用snowboy离线语音唤醒引擎,snowboy已经被kitt.AI团队下架,但我们仍能够在github中找到该项目


获取相关工具开发包网址:
链接: link.

一、语音唤醒相关环境搭建

下载完成后,文件夹中文件如下图所示,在终端处打开swig文件夹进入python文件夹通过make指令编译生成python文件及二进制链接文件即可使用
在这里插入图片描述

二、使用步骤

1.使用流程

1.传入热词模型snowboy.umdl
2.使用snowboydecoder模块创建对象snowboydecoder.HotwordDetector(model,sensitivity=0.5)
3.开始热词检测,detector.start(detected_callback=function_name,interrupt_callback,sleep_time=0.03)

2.示例代码

代码如下(示例):

#_*_coding=UTF-8_*_

#导入SDK包
import sys
sys.path.append('/home/pi/SnowBoy')
import my1audio
import snowboydecoder
import signal

interrupted = False

def signal_handler(signal,frame):
	global interrupted
	interrupted = True
#play()为所传入的函数
def play():
	my1audio.play('snowboy_rouse.wav')
	return True

def interrupt_callback():
	global interrupted
	return interrupted

def rouse(function):
#判断命令行指令是否传入唤醒词模型,无则退出程序
	if len(sys.argv)==1:
		print("Error:need to specify model name")
		print("Usage:python demo.py your.model")
		sys.exit(-1)

#唤醒词模型为输入的参数,这里可以进行修改
#modle = sys.argv[1]

	modle = '/home/pi/SnowBoy/resources/snowboy.umdl'  #修改model,指定其文件名

#capture Sigint signal ,e.g.,Ctrl+C
	signal.signal(signal.SIGINT,signal_handler)

#唤醒词检测函数,调整sensitivity参数可修改唤醒词检测的准确性
	detector = snowboydecoder.HotwordDetector(modle,sensitivity=0.5)
	

	print "Listening......Please Ctrl+C to exit"

#main loop
#回调函数detected_callback=snowboydecoder.play_audio_file
#修改回调函数可实现我们的功能
	detector.start(detected_callback=function,interrupt_check=interrupt_callback,sleep_time=0.3)

#资源释放
	detector.terminate()

##实现自己的语音唤醒平台,我们只需要修改三个参数:
##1.修改model,model=‘resources/snowboy.umdl’   修改model,指定model的文件名
##2.修改热度检测灵敏度修改sensitivity
##3.修改回调函数 detected_callback=own_callbacks
if __name__=='__main__':
	rouse(play)
	print 'aaaa'


总结

通过采用离线语音唤醒引擎能够实现系统被唤醒后执行相应的功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值