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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值