基于飞桨paddlespeech训练中文唤醒词模型

这篇具有很好参考价值的文章主要介绍了基于飞桨paddlespeech训练中文唤醒词模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

飞桨Paddlespeech中的语音唤醒是基于hey_snips数据集做的。Hey_snips数据集是英文唤醒词,对于中国人来说,最好是中文唤醒词。经过一番尝试,我发现它也能训练中文唤醒词,于是我决定训练一个中文唤醒词模型。

 

要训练中文唤醒词模型,主要有如下工作要做:找数据集,做数据增强(augmentation),做标注,训练和评估等。关于数据集,调研下来发现“你好米雅”这个数据集不错。它不仅可以做声纹识别,也可以做唤醒词识别。它录制人数较多,既近场拾音(44.1KHZ),又用了麦克风阵列远场拾音(16kHZ),还有快速、正常语速、慢速等,极大地丰富了语料。难能可贵的是出品方希尔贝壳还出了一个补充数据集,全是“你好米雅”的相似发音,比如“你好呀”、“你好米”等。把这些作为负样本加入训练,会大大地降低说“你好米雅”相似词的误唤醒率。经过评估后我决定用“你好米雅”这个唤醒词。因为“你好米雅”数据集只有唤醒词语料,为了降低误唤醒,我又把AIDataTang数据集中两三秒左右的语料提取出来作为负样本加入训练。这样整个数据集包括三部分:“你好米雅”的原始数据集,相似发音的补充数据集(作为负样本)和AIDataTang数据集(作为负样本)。先把“你好米雅”数据集中44.1k采样的语料变成16K采样的,再分别将三个数据集分成训练集、验证集、测试集三部分。数据集分好后,还需要做数据增强,目前主要用的是加噪。从NOISEX-92中选取10种典型噪声,再结合各种SNR叠加到干净语音中形成带噪语音。数据增强做好后又把数据集增大了好多,形成一个近300万个wav的数据集。最后写python代码按照paddlespeech里规定的格式做了数据标注,得到了train.json/dev.json/test.json三个文件。在json文件中对于一个wav文件的标注格式如下图:

基于飞桨paddlespeech训练中文唤醒词模型

 包括文件的时长、文件的路径、id以及是否是唤醒词等。

 

以上这些工作做好后就开始训练和评估了,验证集和测试集下的结果都不错。又想试试真实录音的wav的准确率如何,请了几个人在办公室环境下用手机录了“你好米雅”的音频,在得到的模型下去测试,结果让我大失所望,识别率特别低。为什么呢?测试集上的结果可挺好的呀。输入模型的特征是频域的fbank,于是我就从频谱上找差异。对比测试集里能识别的和自己录的不能识别的wav的频谱,发现能识别的在7K HZ附近处做了低通滤波,而不能识别的却没有,具体见下图:

 基于飞桨paddlespeech训练中文唤醒词模型

                            做了7k HZ低通滤波的能识别                                                          没做7k HZ低通滤波的不能识别

 

我试着将不能识别的也在7K HZ附近处做了低通滤波,再去做测试就能识别了。这样自己录的不能识别的原因就找到了:没去做7K HZ附近的低通滤波。整个数据集是由3个子数据集(“你好米雅”数据集,“你好米雅”相似词数据集,AIDATATANG数据集)组成的,前两个是同一出品方且用相同的设备录的。我看了这三个子数据集的频域特性,前两个都在7K HZ附近处做了低通滤波,而AIDATATANG的没有。这暴露了我在数据集准备上的一个错误:没有做到训练集/验证集/测试集频域特性上的一致。

 

原因找到了,对应的措施就是对原先的数据集做7k HZ处的低通滤波处理。为了再降低误唤醒率,我又找来了cn-celeb数据集,因为这个里面包含的场景更丰富,有singing/vlog/movie/entertainment等。把里面几秒左右的音频都提取出来,先做7k HZ处的低通滤波处理,再把它们作为负样本加入到数据集中。数据处理好后就又开始训练了。一边训练模型,一边请更多的人用手机录“你好米雅”的唤醒词音频,还要对这些录好的做7k HZ处的低通滤波处理。模型训练好后在验证集和测试集上的评估效果(唤醒率和误唤醒率)都很好,再把自己录的音频在模型上跑,唤醒率跟在测试集上保持一致。同时还做了另外一个实验,把测试集里有唤醒词且有噪声的音频提取出来组成一个新的测试集。先在这个集上看唤醒率,再对这个集上的音频做降噪处理,再看唤醒率,发现唤醒率有一定程度的降低。这是模型没有学习降噪算法的结果,模型不像人耳,降噪后听起来更清晰未必能识别。通过这些实验说明:要想在嵌入式设备上语音唤醒效果好,得搞清楚特征提权前有哪些前处理算法(降噪等)。语料最好是在这款嵌入式设备上录,如果没有条件就要把语料过一下这些前处理算法后再拿去训练和评估,也就是要让模型学一下这些前处理算法。

 

现在的模型输入特征是80维的fbank,我又评估了一下维度改到40维后对唤醒效果的影响。评估下来发现唤醒率有0.2%左右的下降,误唤醒率有0.3%左右的提升,在可接受的范围内。好处是模型参数减少了1.6k(见下图),推理时的运算量也有一定程度的减少。

 基于飞桨paddlespeech训练中文唤醒词模型

 目前用的是公开数据集里的中文唤醒词,通过实践找到一些能提高唤醒率和降低误唤醒率的方法。等做产品时用的数据集是私有的,把找到的方法用到模型训练上,就能出一个性能不错的语音唤醒方案。文章来源地址https://www.toymoban.com/news/detail-475309.html

到了这里,关于基于飞桨paddlespeech训练中文唤醒词模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度飞桨paddlespeech实现小程序实时语音流识别

    前言: 哈哈,这是我2023年4月份的公司作业。如果仅仅是简单的语音识别倒也没什么难度,wav文件直接走模型输出结果的事。可是注意标题,流式识别、实时! 那么不得不说一下流式的优点了。 1、解决内存溢出的烦恼。 2、打算做成无文件生成,接收语音流直接走模型,减

    2023年04月21日
    浏览(58)
  • 【飞桨PaddleSpeech语音技术课程】— 语音识别-Deepspeech2

    (以下内容搬运自飞桨PaddleSpeech语音技术课程,点击链接可直接运行源码) Demo实现:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/automatic_video_subtitiles/ 语音识别(Automatic Speech Recognition, ASR) 是一项从一段音频中提取出语言文字内容的任务。 (出处:DLHLP 李宏毅 语音识别课程

    2024年02月08日
    浏览(39)
  • AI数字人:基于VITS模型的中文语音生成训练

            VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语音合成模型。         VITS模型是韩国科学院在2021年6月提出的,VITS通过隐变量而非频谱串联起来语

    2024年02月11日
    浏览(42)
  • 全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!

    目标 :基于 pytorch 、 transformers 做中文领域的nlp开箱即用的训练框架,提供全套的训练、微调模型(包括大模型、文本转向量、文本生成、多模态等模型)的解决方案; 数据 : 从开源社区,整理了海量的训练数据,帮助用户可以快速上手; 同时也开放训练数据模版,可以快

    2024年02月11日
    浏览(40)
  • 基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学

    项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域) :汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自

    2024年02月14日
    浏览(46)
  • Llama中文大模型-模型预训练

    Atom系列模型包含Atom-7B和Atom-13B,基于Llama2做了中文能力的持续优化。Atom-7B和Atom-7B-Chat目前已完全开源,支持商用,可在Hugging Face仓库获取模型: https://huggingface.co/FlagAlpha 大规模的中文数据预训练 原子大模型Atom在Llama2的基础上,采用大规模的中文数据进行持续预训练,包含百

    2024年04月28日
    浏览(55)
  • [玩转AIGC]LLaMA2训练中文文章撰写神器(数据准备,数据处理,模型训练,模型推理)

    好久没更新这个专栏的文章了,今天抽空写了一篇。————2023.12.28 摘要:文体包括新闻,法律文书,公告,广告等,每种文体的书写风格不一样,如果拥有自己的数据集,想针对特定文体来训练一个内容生成的工具,来帮助自己写点文章,如果没接触过AIGC,可能一开始会

    2024年01月17日
    浏览(55)
  • NeMo中文/英文ASR模型微调训练实践

    1.安装nemo pip install -U nemo_toolkit[all] ASR-metrics 2.下载ASR预训练模型到本地(建议使用huggleface,比nvidia官网快很多) 3.从本地创建ASR模型 asr_model = nemo_asr.models.EncDecCTCModel.restore_from(\\\"stt_zh_quartznet15x5.nemo\\\") 3.定义train_mainfest,包含语音文件路径、时长和语音文本的json文件 4.读取模型的

    2024年02月13日
    浏览(39)
  • 中文预训练大模型—文心Ernie技术原理

    一、背景技术 Ernie是基于Bert模型进行改进,基本模型是Transformer,Bert完成的预训练任务是:完形填空(通过基本语言单元掩码);上下句预测。 Bert模型的缺陷是: 只能捕获局部的语言信号,缺乏对句子全局的建模,从而难以学习到词、短语、实体的完整语义。 Bert模型的训

    2024年02月13日
    浏览(36)
  • 精调训练中文LLaMA模型实战教程,民间羊驼模型

    博文1:本地部署中文LLaMA模型实战教程,民间羊驼模型 博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型 博文3:精调训练中文LLaMA模型实战教程,民间羊驼模型(本博客) 在学习完上篇【博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型】后,我们已经学会了使用

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包