若matalab中代码输出后只有untitled是什么意思?


        公司有项目需求,需要识别语音信号是男女性别以及是否是彩铃等。之前一直是做文本相关的NLP相关项目,为此也开始慢慢涉足语音领域了。语音领域和文本NLP领域是不一样的,我猜测——目前语音领域相关的预训练模型还不成熟,端到端的方案还不足以满足商用的需求,比如ASR或者SST语音自动识别的方案HUBERT和wav2vec等——否则大家都开始使用起来了,目前应该是采用一些比较传统的方案。

ASR任务目前对我们公司来说,自研还是非常困难的,就直接使用生态伙伴科大讯飞的算法;项目需求区分男女声和彩铃的声音,其实这个任务还是比较简单的,并没有语音识别或者声纹识别中那么复杂。在数据质量和场景简单的情况下,应该能取得不错的效果。

语音信号是时域信号,目前基于时域信息对语音进行分析的貌似不是特别多,没有比较好的模型直接提取到合适的特征;一般而言都是通过传统的信号处理方案来做的,把语音时域信号转化为时域信号后就能得到很多特征,比如:MFCC、Fbank、bark谱、基频、能量幅度、短时过零率之类的——详见。

区分男女性别以及彩铃信号这样的任务,主要的关键点在哪里呢?主要能找到区分它们三者的特征,就可以使用深度学习的模型或者机器学习的模型,或者直接使用规则来做。需要找到什么样的特征呢?

 录了自己和女同事的音频,得到时序和频谱图(上图女,下图男)。感觉就从频谱图上直接看,还是看不出来的。一般而言男女声音的音高也就是频率是不一样的,但是也有重叠的部分;同时彩铃一般含有音乐的声音,它和人说话也有很大不同,音色不同,这个感觉在数理上反映也是频率的不同——据个人不完全理解这里的不同应该就是频率的分布不一样了,所以具体什么样的特征能区分开来也不是十分清楚的。那这个时候就得想到了深度学习的方案了,让模型自己去抽取相应的特征,也不需要管什么频率具体的分布,谱质心、谱对比度、基音周期等等特征,直接抽取语音信号的Fbank、Mfcc等特征,它们具体的区别,我不是专业的不清楚——知乎高赞问答解释如下,喂入模型中即可!

另一方面这是一个简单的分类任务,它们3个类直接本来就存在天然的差异,也不需要太复杂的模型,应该就能搞定。

当然也可以采用语音领域的预训练方案,wvNet或者wav2Vec这样的预训练+finetune的方案,这个方案比较新还没来得及学习,后续会学习,然后验证。

由于librosa库提供的特征提取API比较丰富,便选择了该库进行Mfcc和Fbank的提取。这里没啥好聊的,原理部分mfcc和fbank计算过程比较复杂详见——和

,而我就当个调包侠吧(原理部分就多去看几遍吧)。主要对提取特征的API的一些参数和遇到的坑进行一些总结吧

 基本满足上线准确率需求,同时这个方案,经过工程化的优化,已经实现了单机5000路的并发。

以上就是本人第一个语音项目的探索,很简单,学习到了一定的语音领域的知识,后面再接再厉,好好学习ASR和TTS相关知识,争取成为NLP和语音算法工程师!


str:保留项(目前没用) 
可以添加任意个simulink模块参数的输入
%[0 1] 小步长的连续采样 %[-2 0] 变步长的采样时间 FLAG=4时获取下一次采样时间

第一,switch-case的函数中,如果调用该函数需要传参,则需要在对应函数后面加上参数

以上两个地方必须配套使用

2. 连续系统模型案例

连续模型主要是状态空间方程:

case 1 %计算连续状态的微分 case 2 %计算下一个离散状态 case 4 %计算下一次采样的时间 %[0 1] 小步长的连续采样 %[-2 0] 变步长的采样时间 FLAG=4时获取下一次采样时间 %case 1:计算连续状态的微分 %case 2:计算下一个离散状态 %case 4:计算下一次采样的时间[-2 0]时使用该函数

  最后,在这里放一份完整的做了中文注释的sfuntmpl版本

case 1 %计算连续状态的微分 case 2 %计算下一个离散状态 case 4 %计算下一次采样的时间 %[0 1] 小步长的连续采样 %[-2 0] 变步长的采样时间 FLAG=4时获取下一次采样时间 %case 1:计算连续状态的微分 %case 2:计算下一个离散状态 %case 4:计算下一次采样的时间[-2 0]时使用该函数

我要回帖

更多关于 ascii codec can't decode byte 的文章

 

随机推荐