语音识别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
但是,PSOLA 技术也有其缺点。首先,PSOLA 技术是一种基音同步的语音分析/合成 技术,首先需要准确的基因周期以及对其起始点的判定。基音周期或其起始点的判定误差将 会影响 PSOLA 技术的效果。其次,PSOLA 技术是一种简单的波形映射拼接合成,这种拼 接是否能够保持平稳过渡以及它对频域参数有什么影响等并没有得到解决,因此,在合成时 会产生不理想的结果。
语音编码:语音编码(speech coding)将模拟话音信号变为数字信号的过程。是数字 通信中的一项重要技术。
各种语音编码的方法还有优缺点:分类 语音编码技术通常分为3类:波形编码、参量编 码和混合编码,其中波形编码和参量编码是2 种基本类型。
波形编码 将时间域信号直接变换为数字代码,其目的是尽可能精确地再现原来的话音 波形。波形编码的基本原理是在时间轴上对模拟话音按一定的速率抽样,然后将幅度样本分 层量化,并用代码表示。解码是其反过程,将收到的数字序列经过解码和滤波恢复成模拟信 号。对于比特速率较高的编码信号(例如:从16~64 kbit/s),波形编码技术能够提供相当 好的话音质量。但对于低速语音编码信号(即比特率低于16 kbit/s),波形编码的话音质量
二.基于 HMM 模型的自动语音识别理论与方法:
语音识别首先是要根据识别系统的类型,选择一种合适的识别算法,再依据 识别算法的要求,利用有关的语音信号处理方法提取相应的特征参数,在这以后, 分两个阶段进行语音识别:第一个阶段是学习和训练,给出一组训练数据,这些训
练数据常常都是经过精心选择的针对本识别系统应用的数据,再结合识别系统参 数的初始值,对系统参数进行调整,使该系统更适合所提供的训练数据的识别, 以提高系统的识别率,最后将这些经过训练的参数以标准方式存储起来,形成识 别库,或叫做模板;第二个阶段就是识别。将需要识别的语音信号的特征参数与训 练过程中产生的模板作对比,在允许的误差范围内,测得与该语音信号距离最近 的模板,输出该模板的识别结果。
void aprint(int** array_n, int len,int wid) { cout<<"the print function\n"; int i=1,j=1; int (*array)[wid]; array=(int (*)[wid])array_n; int elem[wid]; while(i { // elem=(*array); memset(elem,1,sizeof(elem)); j = 1; while(j { // cout<<*((int*)array+i*wid+j)<<'\t'; //cout<<*(*(array+i)+j)<<'\t'; cout<<(*array)[i*wid+j]<<'\t'; // cout<<array_n[i][j]<<'\t'; j++; } cout<<endl; i++; // array++; } }
三 .C 语言写出两段语音间 DWT 距离的有效算法
#include #include using namespace std; #define NUM 6 //序列中样本点的个数简单起见,假设2个序列的样本点一样多 #define Min(a,b) (a void aprint(int**, int,int); int main() { cout<<"adfewro"<<endl; int i,j,k; int a[NUM],b[NUM]; int distance[NUM+1][NUM+1]; int output[NUM+1][NUM+1]; memset((int**)distance,0,sizeof(distance)); memset((int**)output,0,sizeof(output));
aprint((int**)distance,NUM+1,NUM+1);
cout<<endl; for(i=1;i<=NUM;i++) for(j=1;j output[i][j]=Min(Min(output[i-1][j-1],output[i][j-1]),output[i-1Βιβλιοθήκη Baidu[j])+distance[i][j]; //DP 过程,计算 DTW 距离
aprint((int**)distance,NUM+1,NUM+1); aprint((int**)output,NUM+1,NUM+1);
for(i=0;i>a[i];
for(i=0;i>b[i]; for(i=1;i<=NUM;i++) for(j=1;j<=NUM;j++) distance[i][j]=(b[j-1]-a[i-1])*(b[j-1]-a[i-1]); //计算点与点之间的欧式距离 for(i=1;i<=NUM;i++) { for(j=1;j<=NUM;j++) cout<<distance[i][j]<<'\t'; cout<<endl; } //输出整个欧式距离的矩阵
四.
语音合成:语音合成是通过机械的、电子的方法产生人造语音的技术。TTS 技术(又称文 语转换技术)隶属于语音合成,它是将计算机自己产生的、或外部输入的文字信息转变为可 以听得懂的、流利的汉语口语输出的技术。
语音合成的方法:PSOLA
20世纪80年代末提出的 PSOLA 合成技术(基音同步叠加技术)给波形拼接合成技术 注入了新的活力。PSOLA 技术着眼于对语音信号超时段特征的控制,如基频、时长、音强 等的控制。而这些参数对于语音的韵律控制以及修改是至关重要的,因此,PSOLA 技术比 LPC 技术具有可修改性更强的优点,可以合成出高自然度的语音。
for(i=0;i<=NUM;i++) { for(j=0;j<=NUM;j++) cout<<output[i][j]<<'\t'; cout<<endl; } //输出最后的 DTW 距离矩阵,其中 output[NUM][NUM]为最终的 DTW 距离和
aprint((int**)output,NUM+1,NUM+1); return 0; }
(1)语音特征提取:目的是从语音波形中提取随时间变化的语音特征序列。 (2)声学模型与模式匹配(识别算法):声学模型是识别系统的底层模型,并且 是语音识别系统中最关键的一部分。声学模型通常由获取的语音特征通过训练产 生,目的是为每个发音建立发音模板。在识别时将未知的语音特征同声学模型(模 式)进行匹配与比较,计算未知语音的特征矢量序列和每个发音模板之间的距离。 声学模型的设计和语言发音特点密切相关。声学模型单元大小(字发音模型、半音 节模型或音素模型)对语音训练数据量大小、系统识别率,以及灵活性有较大影响。 (3)语义理解:计算机对识别结果进行语法、语义分析。明白语言的意义以便做出相应的 反应,通常是通过语言模型来实现。 关键技术与算法: 1>语音信号处理上用了预滤波、采样、A/D 转换、语音信号预加重、加窗(矩形窗,汉明窗, 汉宁窗)、语音信号端点检测、LPC 美尔倒谱特征端点检测、 2>在模型建立上用到了,HMM 语音识别还有 SOFMNN 的语音识别的理论还有方法,目前 较多的是将二者结合,原本的 DWT 不适合连续语音识别故不用 3>在 MATLAB 平台上进行仿真与实现,通过实践来验证是否好用。
一.自动语音识别系统
需求分析:① 对语音信号进行分析和处理,除去冗余信息 。 ②提取影响语音识别 键信息 和表达语言含义的特征信息。 ③紧扣特征信息用 最小单元识别字词 。④按照不同语言的 各自语法依照先后次序识别字词 。 ⑤把前后意思当作辅助识别条件有利于分析和识别。 ⑥按照语义分析,给关键信息划分段落,取出所识别出的字词并连接起来,同时根据语句意 思调整句子构成。 ⑦结合语义,仔细分析上下文的相互联系对当前正在处理的语句进行适 当修正 概要设计: 目前主流的语音识别技术是基于统计模式识别的基本理论。 一个完整的语音识别系统可大致分为三部分
for(i=0;i<=NUM;i++) { for(j=0;j<=NUM;j++) cout<<output[i][j]<<'\t'; cout<<endl; } //输出整个欧式距离的矩阵 aprint((int**)distance,NUM+1,NUM+1); cout<<endl;
for(i=1;i<=NUM;i++) for(j=1;j output[i][j]=Min(Min(output[i-1][j-1],output[i][j-1]),output[i-1][j])+distance[ i][j]; //DP 过程,计算 DTW 距离
PSOLA 技术的主要特点是:在拼接语音波形片断之前,首先根据上下文的要求,用 PSOLA 算法对拼接单元的韵律特征进行调整,使合成波形既保持了原始发音的主要音段特 征,又能使拼接单元的韵律特征符合上下文的要求,从而获得很高的清晰度和自然度。
PSOLA 技术保持了传统波形拼接技术的优点,简单直观,运算量小,而且还能方便地 控制语音信号的韵律参数,具有合成自然连续语流的条件,得到了广泛的应用。
显著下降。 因而,波形编码在对信号带宽要求不太严格的通信中得到应用。但对频率资源 相当紧张的移动通信来说,这种编码方式显然不适合。脉冲编码调制(PCM)和增量调制(ΔM) 以及它们的各种改进型都属于波形编码技术。
参量编码 又称为声源编码,将信源信号在频率域或其他正交变换域中提取特征参量, 并将其变换为数字代码进行传输;解码为其反过程,将接收到的数字序列经变换恢复特征参 量,再根据特征参量重建语音信号。具体地说,声源编码以发音机制的模型作为基础,用一 套模拟声带频谱特性的滤波器系数和若干声源参数来描述这个模型。在发送端从模拟话音信 号中提取各个特征参量并进行量化编码,在接收端根据接收到的滤波器系数和声源参数恢复 原来的语音。这种编码技术可实现低速率语音编码,比特速率可压缩到2 ~4.8 kbit/s)5, 甚至更低,但语音质量只能达到中等。线性预测编码(LPC)及其各种改进型都属于参量编 码。
混合编码 近年来提出的一类新的语言编码技术,它将波形编码和参量编码结合起来, 力图保持波形编码的高质量的优点以及参量编码的低速率的优点。混合编码数字语音信号中 既包括若干语音特征参量又包括部分波形编码信息。混合编码可将比特速率请压缩到4 ~ 16kbit/s,在8~16kbit/s 范围内能达到良好的话音质量。规则码激励长期预测编码就是一 种混合编码方案。可以看出,混合编码是适合于数字移动通信的语音编码技术
相关文档
最新文档