python调用c语言的语音唤醒,使用tflearn匹配语音助手唤醒字

我正在用Python为我的家人构建一个个人语音助手,使用放置在房子里的覆盆子Pi单元和一个中央服务器。在

Pis循环16khz音频从arecord通过一个环形缓冲区,保持两秒的窗口。个人模特雪童,基特,艾,非常允许地设置,测试窗口并将匹配的剪辑发送到中央服务器。在

在那里,剪辑被转换成MFCC使用librosa,一个基于Tensorflow的(tflearn,really)DNN检查充当二级过滤器。每个新剪辑都保存到一个队列中,这样我可以在以后重新训练模型之前遍历并标记它们。在

这有点管用,但还不够好——比如,我妻子会告诉你,当她打开堆肥桶时,她很喜欢醒来。即使训练数据中有大量随机的砰砰声和砰砰声,巨大的噪音也常常使它混淆。在

在简化了示例代码并进行了一些更改以减少要聚合的时间段数之后,我得出了以下结论:def build_model(categories):

import tflearn

tflearn.init_graph(num_cores=16, gpu_memory_fraction=0.5)

net = tflearn.input_data([None, WIDTH, HEIGHT])

net = tflearn.lstm(net, 128)

net = tflearn.fully_connected(net, 128)

net = tflearn.fully_connected(net, 128)

net = tflearn.fully_connected(net, 128)

net = tflearn.fully_connected(net, len(categories), activation='softmax')

net = tflearn.regression(net, optimizer='adam', loss='categorical_crossentropy')

return tflearn.DNN(net, tensorboard_verbose=3)

我是这样训练的:

^{pr2}$

输入数据细分如下:3 cal.wav

2950 false_positive.wav

7182 guess_negative.wav

16 guess_positive.wav

1 heather.wav

30 jennie.wav

1 jim.wav

4 leo.wav

40 simon.wav

14 teddy.wav

1098 wade.wav

Wake word(yes/no)训练通过将样本分成两类,一类是所有的误报,另一类是所有名字的联合(除去猜测)。在

经过10个时代,我得到了这样的损失,这似乎很好:| Adam | epoch: 010 | loss: 0.07699 - acc: 0.9907 | val_loss: 0.37000 - val_acc: 0.8916 -- iter: 3172/3172

问题是,我不知道是记住了训练数据还是真的学到了什么。在

那么,如何调整这个系统呢?添加和删除层、更改维度和更改随机数感觉像是魔术。在

什么是一个合理的方法来提高(真正最大化)这个检测系统的准确性?谢谢!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现语音唤醒需要用到语音识别和语音分析技术,可以借助第三方库进行实现。以下是一个简单的Python语音助手的代码示例: ```python import speech_recognition as sr import pyttsx3 import time # 定义语音识别和语音合成引擎 r = sr.Recognizer() engine = pyttsx3.init() # 定义唤醒词 WAKEUP_WORD = "你好小宝贝" # 定义响应函数 def respond(text): print(text) engine.say(text) engine.runAndWait() # 启动语音助手 with sr.Microphone() as source: while True: # 监听声音输入 audio = r.listen(source) try: # 识别语音 text = r.recognize_google(audio, language='zh-CN') # 判断是否唤醒 if text == WAKEUP_WORD: respond("我在呢,请问有什么可以帮助您的?") # 进入命令输入模式 while True: # 监听声音输入 audio = r.listen(source) try: # 识别命令 text = r.recognize_google(audio, language='zh-CN') respond("我听懂了,正在处理...") # 处理命令 # 这里可以添加自己的命令处理逻辑 time.sleep(3) respond("处理完成") except sr.UnknownValueError: respond("抱歉,我没有听清,请再说一遍") else: print("未唤醒") except sr.UnknownValueError: print("无法识别") ``` 这段代码使用Python的`speech_recognition`和`pyttsx3`库,实现了一个简单的语音助手。它可以监听声音输入,判断是否唤醒,如果唤醒则进入命令输入模式,处理用户的命令。你可以根据自己的需求修改代码,添加更多的命令和功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值