语音识别系统实验报告
语音学习实训报告(3篇)

第1篇一、实训背景随着人工智能技术的飞速发展,语音识别与合成技术逐渐成为人们日常生活和工作中不可或缺的一部分。
为了更好地掌握语音处理技术,提高自身的专业技能,我们开展了为期一个月的语音学习实训。
本次实训旨在通过理论学习和实践操作,使学员对语音处理的基本原理、技术方法及应用场景有深入的了解。
二、实训目标1. 掌握语音信号的基本概念、特性及其处理方法。
2. 熟悉语音识别、语音合成等关键技术。
3. 了解语音处理在智能语音助手、语音识别系统等领域的应用。
4. 培养学员的动手实践能力、团队协作精神和创新意识。
三、实训内容本次实训主要分为三个阶段:理论学习、实践操作和项目实战。
(一)理论学习1. 语音信号的基本概念与特性:介绍了语音信号的时域、频域特性,以及语音信号处理的基本方法。
2. 语音识别技术:讲解了语音识别的基本原理、算法,以及常见的语音识别系统架构。
3. 语音合成技术:介绍了语音合成的原理、方法,以及常见的语音合成系统。
4. 语音处理应用:探讨了语音处理在智能语音助手、语音识别系统等领域的应用。
(二)实践操作1. 语音信号处理软件:使用MATLAB等软件进行语音信号的采集、预处理、特征提取等操作。
2. 语音识别系统搭建:基于开源语音识别框架(如Kaldi、CMU Sphinx等)搭建语音识别系统。
3. 语音合成系统搭建:基于开源语音合成框架(如HTS、Flite等)搭建语音合成系统。
(三)项目实战1. 智能语音助手:开发一个基于语音识别和语音合成的智能语音助手,实现语音交互、信息查询等功能。
2. 语音识别系统:针对特定应用场景(如电话客服、智能家居等)开发语音识别系统。
四、实训成果1. 理论学习方面:学员对语音信号的基本概念、特性及其处理方法有了深入的了解,掌握了语音识别、语音合成等关键技术。
2. 实践操作方面:学员能够熟练使用MATLAB、Kaldi、HTS等软件进行语音信号处理、语音识别和语音合成。
基于深度学习的智能语音交互系统实验报告

基于深度学习的智能语音交互系统实验报告一、引言随着人工智能技术的迅速发展,智能语音交互系统在我们的生活中扮演着越来越重要的角色。
从智能手机中的语音助手到智能音箱,这些应用都为我们提供了更加便捷和自然的交互方式。
本实验旨在研究和开发一种基于深度学习的智能语音交互系统,以提高语音识别和理解的准确性,并实现更加自然流畅的对话。
二、实验目的本次实验的主要目的是构建一个基于深度学习的智能语音交互系统,并对其性能进行评估和优化。
具体目标包括:1、提高语音识别的准确率,减少误识别和漏识别的情况。
2、增强对自然语言的理解能力,能够准确解析用户的意图和需求。
3、实现流畅自然的语音对话,提高交互的满意度和实用性。
三、实验环境和数据(一)实验环境1、硬件配置:使用具有高性能 CPU 和 GPU 的服务器,以满足深度学习模型的训练和运行需求。
2、软件环境:采用 Python 编程语言,以及 TensorFlow、PyTorch 等深度学习框架。
(二)数据来源1、公开数据集:如 LibriSpeech、Common Voice 等,这些数据集包含了大量的语音和对应的文本标注。
2、自行采集:通过录制和标注一些特定领域的语音数据,以丰富数据的多样性和针对性。
四、实验方法(一)语音特征提取使用梅尔频率倒谱系数(MFCC)或线性预测编码(LPC)等方法对语音信号进行特征提取,将语音转换为可用于深度学习模型输入的数值向量。
(二)模型选择与构建1、选用循环神经网络(RNN)、长短时记忆网络(LSTM)或门控循环单元(GRU)等模型来处理序列数据。
2、构建多层神经网络结构,结合卷积神经网络(CNN)进行特征提取和分类。
(三)训练与优化1、采用随机梯度下降(SGD)、Adagrad、Adadelta 等优化算法对模型进行训练。
2、应用数据增强技术,如随机裁剪、添加噪声等,以增加数据的多样性。
3、调整超参数,如学习率、层数、节点数等,以提高模型的性能。
语音识别系统实习报告

实习报告语音识别系统一、实习背景和目的作为一名计算机科学专业的学生,我一直对人工智能领域充满浓厚兴趣。
在大学期间,我学习了关于机器学习和语音处理的相关知识。
为了将理论知识与实践相结合,我参加了为期三个月的语音识别系统实习项目。
本次实习旨在深入了解语音识别技术的工作原理,掌握相关算法和工具,并提高实际问题解决能力。
二、实习内容和过程在实习过程中,我主要参与了以下几个方面的工作:1. 学习语音识别基本原理:我首先学习了语音信号处理的基本概念,了解了语音信号的特性以及常见的预处理方法。
同时,我还学习了自动语音识别系统的基本组成,包括特征提取、模式匹配和语言解码等环节。
2. 熟悉语音识别相关工具:为了更好地进行实践操作,我熟悉了开源语音识别工具CMU Sphinx和Kaldi。
通过阅读相关文档和参考教程,我掌握了这些工具的基本使用方法和编程接口。
3. 数据采集与预处理:为了训练语音识别模型,我首先进行了数据采集工作。
通过从网络和开源数据集中获取语音样本,我整理了一个小型的语音数据库。
随后,我对这些语音数据进行了预处理,包括去噪、分段和特征提取等操作。
4. 构建语音识别模型:基于预处理后的数据,我利用CMU Sphinx和Kaldi分别构建了两个语音识别模型。
在构建过程中,我调整了模型参数,并使用交叉验证方法评估了模型的性能。
5. 模型优化与测试:通过对比分析两个模型的识别效果,我发现CMU Sphinx在一些噪声环境下的表现较差。
为了提高识别准确率,我对CMU Sphinx模型进行了优化,包括调整特征参数和模型结构。
同时,我还进行了测试实验,验证了优化后模型的性能。
6. 撰写实习报告:在整个实习过程中,我详细记录了所学习到的知识和技能,以及遇到的问题和解决方案。
在实习结束后,我将这些内容整理成一篇报告,以总结本次实习的经验和收获。
三、实习收获和体会通过本次实习,我收获颇丰。
首先,我深入了解了语音识别技术的基本原理和实际应用,为今后进一步研究奠定了基础。
语音课实验报告

实验名称:语音识别与合成实验实验时间:2023年4月15日实验地点:语音实验室一、实验目的1. 了解语音识别与合成的基本原理和过程。
2. 掌握语音识别与合成系统的搭建和调试方法。
3. 提高语音处理和语音识别的实践能力。
二、实验原理语音识别与合成技术是人工智能领域的一个重要分支,主要涉及语音信号处理、模式识别和自然语言处理等方面。
语音识别是将语音信号转换为相应的文本信息,而语音合成则是将文本信息转换为自然流畅的语音输出。
三、实验内容1. 语音信号采集实验采用麦克风采集语音信号,将采集到的语音信号进行预处理,包括去除噪声、归一化等操作。
2. 语音特征提取从预处理后的语音信号中提取特征,如梅尔频率倒谱系数(MFCC)、线性预测系数(LPC)等,为后续的语音识别和合成提供依据。
3. 语音识别利用训练好的语音识别模型对采集到的语音信号进行识别,将识别结果输出为文本信息。
4. 语音合成将识别出的文本信息转换为语音输出,包括合成语音的音调、音量、语速等参数的调整。
四、实验步骤1. 语音信号采集(1)连接麦克风,确保设备正常工作。
(2)打开录音软件,调整录音参数,如采样率、量化位数等。
(3)进行语音采集,确保采集到的语音信号清晰、无杂音。
2. 语音特征提取(1)对采集到的语音信号进行预处理,包括去除噪声、归一化等操作。
(2)提取语音特征,如MFCC、LPC等。
3. 语音识别(1)使用已有的语音识别模型进行训练,如使用隐马尔可夫模型(HMM)或深度学习模型。
(2)将训练好的模型应用于采集到的语音信号,进行语音识别。
4. 语音合成(1)使用语音合成引擎,如FreeTTS、MaryTTS等,将识别出的文本信息转换为语音输出。
(2)调整合成语音的音调、音量、语速等参数,使语音输出更自然。
五、实验结果与分析1. 实验结果本次实验成功采集了语音信号,并提取了相应的语音特征。
通过语音识别,识别出了采集到的语音信号对应的文本信息。
实训报告语音

一、实训目的通过本次实训,使学生掌握语音识别技术的基本原理,熟悉常用的语音识别系统,提高学生的实践操作能力,培养学生的团队协作精神。
二、实训内容1. 语音识别技术概述语音识别技术是指将人类的语音信号转换为相应的文本信息的技术。
语音识别技术在通信、语音助手、智能家居等领域有着广泛的应用。
2. 语音识别系统(1)声学模型:声学模型是语音识别系统中的核心部分,它负责将语音信号转换为特征参数。
常用的声学模型有MFCC(Mel频率倒谱系数)和PLP(Perceptual Linear Prediction)等。
(2)语言模型:语言模型负责对输入的语音信号进行语言分析,判断其是否属于合法的句子。
常用的语言模型有N-gram、CTM(Continuous Transition Model)等。
(3)解码器:解码器负责根据声学模型和语言模型输出的结果,找到最可能的文本序列。
常用的解码器有DTW(Dynamic Time Warping)、HMM(隐马尔可夫模型)等。
3. 常用语音识别系统(1)科大讯飞语音识别系统:科大讯飞是我国领先的语音识别技术公司,其语音识别系统广泛应用于智能客服、语音助手等领域。
(2)百度语音识别系统:百度语音识别系统具备较高的识别准确率,支持多种语言和方言。
(3)腾讯语音识别系统:腾讯语音识别系统具有丰富的应用场景,如智能客服、语音输入等。
三、实训过程1. 熟悉语音识别技术的基本原理,了解声学模型、语言模型和解码器的作用。
2. 学习使用一种语音识别系统,如科大讯飞语音识别系统,了解其操作方法和使用技巧。
3. 利用语音识别系统进行实际操作,如语音转文字、语音搜索等。
4. 分析语音识别系统的识别效果,找出存在的问题,并提出改进措施。
5. 撰写实训报告,总结实训过程中的收获和体会。
四、实训成果1. 掌握语音识别技术的基本原理,熟悉常用的语音识别系统。
2. 能够熟练使用语音识别系统进行实际操作。
语音实践实训报告范文(2篇)

第1篇一、实训背景随着人工智能技术的飞速发展,语音识别技术逐渐成为人工智能领域的研究热点。
为了提高自身在语音识别领域的实践能力,我们小组开展了语音实践实训。
本次实训旨在通过实际操作,深入了解语音识别的基本原理、关键技术,并学会使用相关工具进行语音数据的采集、处理和分析。
二、实训目标1. 掌握语音识别的基本原理和关键技术;2. 熟悉常用的语音识别工具和平台;3. 学会使用语音识别技术进行实际应用;4. 培养团队合作和沟通能力。
三、实训内容1. 语音信号处理实训内容:学习语音信号的基本概念,了解语音信号的采集、预处理和特征提取等环节。
实训过程:(1)采集语音信号:使用麦克风采集语音信号,并将采集到的信号转换为数字信号。
(2)预处理:对采集到的数字信号进行降噪、去混响等处理,提高语音质量。
(3)特征提取:从预处理后的语音信号中提取特征,如MFCC(梅尔频率倒谱系数)、PLP(功率倒谱)等。
2. 语音识别算法实训内容:学习常用的语音识别算法,如隐马尔可夫模型(HMM)、深度神经网络(DNN)等。
实训过程:(1)HMM算法:了解HMM模型的结构,学习如何构建HMM模型,并进行参数训练。
(2)DNN算法:学习DNN的基本原理,了解如何将DNN应用于语音识别任务。
3. 语音识别工具和平台实训内容:熟悉常用的语音识别工具和平台,如Kaldi、CMU Sphinx等。
实训过程:(1)Kaldi:学习Kaldi工具的使用,包括数据预处理、模型训练、解码等。
(2)CMU Sphinx:学习CMU Sphinx平台的使用,包括语音信号预处理、模型训练、解码等。
4. 实际应用实训内容:使用语音识别技术进行实际应用,如语音助手、语音翻译等。
实训过程:(1)设计语音助手:根据实际需求,设计一个具有特定功能的语音助手,如智能客服、智能家居等。
(2)实现语音翻译:利用语音识别技术,实现中英文之间的实时翻译。
四、实训成果1. 掌握了语音信号处理的基本原理和关键技术,能够对语音信号进行采集、预处理和特征提取。
大学生语音实训总结报告
一、引言随着科技的发展,语音技术在现代社会中扮演着越来越重要的角色。
为了适应这一趋势,提高自身在语音识别、语音合成等方面的技能,我们学校特开设了大学生语音实训课程。
通过为期两个月的实训,我对语音技术有了更深入的了解,以下是我对此次实训的总结报告。
二、实训背景与目标1. 实训背景随着人工智能技术的快速发展,语音识别、语音合成等技术在各个领域得到了广泛应用。
为了让学生紧跟时代步伐,提高自身竞争力,我校开设了大学生语音实训课程,旨在让学生在实践中学以致用,掌握语音技术的基本原理和应用。
2. 实训目标(1)使学生了解语音技术的基本概念和发展趋势;(2)使学生掌握语音信号处理的基本方法;(3)使学生能够运用所学知识进行简单的语音识别和语音合成;(4)培养学生的团队合作精神和创新能力。
三、实训内容与方法1. 实训内容(1)语音信号采集与预处理;(2)语音特征提取;(3)语音识别;(4)语音合成;(5)语音应用系统开发。
2. 实训方法(1)课堂讲授:教师讲解语音技术的基本原理、方法和应用;(2)实验操作:学生按照实验指导书进行实验操作,巩固所学知识;(3)小组讨论:学生分组讨论实验过程中遇到的问题,共同解决问题;(4)项目实践:学生根据所学知识,完成一个小型语音应用系统开发。
四、实训过程与成果1. 实训过程在实训过程中,我们按照教学计划,认真学习了语音技术的基本原理和方法。
在实验操作环节,我们亲自动手,不断尝试和调整参数,掌握了语音信号处理的基本方法。
在项目实践环节,我们分工合作,完成了一个小型语音应用系统开发。
2. 实训成果(1)学生掌握了语音信号处理的基本方法,能够对语音信号进行采集、预处理、特征提取等操作;(2)学生能够运用所学知识进行简单的语音识别和语音合成;(3)学生具备了一定的项目开发能力,能够完成小型语音应用系统的开发。
五、实训体会与反思1. 体会(1)实训使我认识到理论知识与实际应用相结合的重要性;(2)实训过程中,我学会了独立思考、解决问题的能力;(3)实训让我体会到团队合作的力量,培养了良好的团队精神。
嵌入式语音识别实训报告
一、实训背景随着人工智能技术的不断发展,嵌入式语音识别技术在我国逐渐得到广泛应用。
为了深入了解嵌入式语音识别技术,提高自身实践能力,我们开展了嵌入式语音识别实训。
二、实训目标1. 熟悉嵌入式语音识别系统的工作原理;2. 掌握嵌入式语音识别系统的硬件与软件设计;3. 学会使用C语言进行嵌入式语音识别系统的编程;4. 培养团队合作精神和实践创新能力。
三、实训内容1. 嵌入式语音识别系统概述嵌入式语音识别系统主要包括以下几个部分:(1)麦克风:负责采集语音信号;(2)A/D转换器:将模拟语音信号转换为数字信号;(3)处理器:负责语音信号的预处理、特征提取和识别;(4)识别模块:根据特征参数进行语音识别;(5)执行模块:根据识别结果执行相应的操作。
2. 硬件设计(1)开发板:选用STM32F103C8T6开发板;(2)麦克风模块:选用INMP441麦克风模块;(3)A/D转换器:选用ADC12位分辨率;(4)处理器:选用ARM Cortex-M3内核的32位处理器;(5)识别模块:选用LD3320语音识别芯片。
3. 软件设计(1)语音信号预处理:包括降噪、去噪、静音检测等;(2)特征提取:采用MFCC(Mel-frequency Cepstral Coefficients)特征提取方法;(3)语音识别:采用LD3320芯片内置的语音识别算法;(4)执行模块:根据识别结果执行相应的操作。
4. 编程实践(1)使用C语言编写嵌入式语音识别系统程序;(2)实现语音信号的预处理、特征提取和识别;(3)实现执行模块的功能。
四、实训过程1. 硬件搭建(1)将麦克风模块连接到开发板;(2)连接A/D转换器;(3)连接处理器和识别模块。
2. 软件编程(1)编写语音信号预处理程序;(2)编写特征提取程序;(3)编写语音识别程序;(4)编写执行模块程序。
3. 调试与优化(1)对程序进行调试,确保程序正常运行;(2)根据实际情况对程序进行优化,提高识别率和稳定性。
语音指示系统实验报告
一、实验目的1. 了解语音指示系统的基本原理和组成;2. 掌握语音指示系统的设计和调试方法;3. 通过实验验证语音指示系统的性能和稳定性。
二、实验原理语音指示系统是一种基于语音识别和语音合成技术的智能语音控制系统。
它主要由语音识别模块、语音合成模块、控制模块和数据存储模块组成。
语音指示系统通过语音识别模块识别用户的语音指令,然后将指令传递给控制模块进行处理,最后通过语音合成模块将处理结果以语音的形式输出给用户。
三、实验器材1. 语音指示系统实验平台;2. 语音识别模块;3. 语音合成模块;4. 控制模块;5. 数据存储模块;6. 电脑;7. 音频设备。
四、实验步骤1. 系统搭建(1)将语音识别模块、语音合成模块、控制模块和数据存储模块连接到电脑上;(2)连接音频设备,确保音频输入输出正常;(3)检查各个模块的连接是否正确,确保系统正常运行。
2. 系统调试(1)在电脑上运行语音指示系统实验平台软件;(2)根据实验要求,输入相应的指令,观察语音识别模块是否能够正确识别;(3)对识别结果进行分析,调整语音识别模块的参数,提高识别准确率;(4)将识别结果传递给控制模块,观察控制模块是否能够正确处理指令;(5)调整控制模块的参数,确保控制模块能够准确执行指令;(6)将处理结果传递给语音合成模块,观察语音合成模块是否能够正确输出语音;(7)调整语音合成模块的参数,优化语音输出效果。
3. 性能测试(1)测试语音识别模块的识别准确率;(2)测试语音合成模块的语音输出效果;(3)测试控制模块的响应速度和稳定性;(4)测试数据存储模块的数据存储和读取速度。
五、实验结果与分析1. 语音识别模块经过多次实验,语音识别模块的识别准确率达到95%以上。
在实验过程中,我们对语音识别模块的参数进行了调整,提高了识别准确率。
2. 语音合成模块语音合成模块的语音输出效果良好,音质清晰,语速适中。
在实验过程中,我们对语音合成模块的参数进行了优化,提高了语音输出效果。
语音识别系统实习报告
一、实习背景随着人工智能技术的不断发展,语音识别技术逐渐成为我国信息技术领域的重要研究方向之一。
语音识别系统作为人工智能技术的重要组成部分,具有广泛的应用前景。
为了更好地了解语音识别系统的设计原理和应用场景,我参加了为期一个月的语音识别系统实习。
二、实习目标1. 熟悉语音识别系统的基本原理和关键技术;2. 掌握语音识别系统的开发流程和实验方法;3. 能够运用所学知识设计和实现一个简单的语音识别系统;4. 了解语音识别技术在实际应用中的优势和挑战。
三、实习内容1. 语音识别基本原理实习期间,我学习了语音识别的基本原理,包括声学模型、语言模型和声学模型。
声学模型用于将语音信号转换为声学特征,语言模型用于生成可能的词汇序列,声学模型则用于匹配声学特征和词汇序列。
2. 语音信号预处理在语音识别系统中,语音信号预处理是一个非常重要的环节。
实习期间,我学习了语音信号的预处理方法,包括静音检测、降噪、分帧和倒谱变换等。
3. 语音识别算法实习期间,我了解了多种语音识别算法,如隐马尔可夫模型(HMM)、支持向量机(SVM)和深度神经网络(DNN)等。
通过对这些算法的学习,我掌握了它们的原理和特点。
4. 实验设计与实现在实习过程中,我设计并实现了一个简单的语音识别系统。
该系统采用HMM算法进行语音识别,并使用Matlab进行编程实现。
系统主要包括以下步骤:(1)语音信号预处理:对采集到的语音信号进行降噪、分帧和倒谱变换等处理;(2)声学模型训练:根据预处理后的语音数据,训练声学模型;(3)语言模型训练:根据词汇表和声学模型,训练语言模型;(4)语音识别:将待识别语音信号输入系统,通过声学模型和语言模型进行匹配,得到识别结果。
5. 实验结果与分析在实验过程中,我收集了不同说话人、不同环境和不同语音内容的语音数据,对实验结果进行了分析。
结果表明,所设计的语音识别系统在大部分情况下能够实现较好的识别效果。
四、实习收获1. 理论知识:通过实习,我对语音识别系统的基本原理和关键技术有了更深入的了解,为今后的学习和研究打下了坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语音识别系统实验报告 专业班级:信息安全 学号: 姓名: 目录 一、设计任务及要求………………………………………………1 二、语音识别的简单介绍 2.1语者识别的概念……………………………………………2 2.2特征参数的提取……………………………………………3 2.3用矢量量化聚类法生成码本………………………………3 2.4VQ的说话人识别 …………………………………………4 三、算法程序分析 3.1函数关系………………………………………………….4 3.2代码说明……………………………………………………5 3.2.1函数mfcc………………………………………………5 3.2.2函数disteu……………………………………………5 3.2.3函数vqlbg…………………………………………….6 3.2.4函数test………………………………………………6 3.2.5函数testDB……………………………………………7 3.2.6 函数train……………………………………………8 3.2.7函数melfb………………………………………………8 四、演示分析…………………………………………………….9 五、心得体会…………………………………………………….11
附:GUI程序代码………………………………………………12 一、 设计任务及要求 实现语音识别功能。
二、 语音识别的简单介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码本。在识别(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。
语音识别系统结构框图如图1所示。
图1 语音识别系统结构框图 2.1语者识别的概念 语者识别就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可能。用语音来鉴别说话人的身份有着许多独特的优点,如语音是人的固有的特征,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用电话网络还可实现远程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而且属于非接触性,容易被用户接受,并且在已有的各种生物特征识别技术中,是唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中关键的成分尤为重要。语音信号的特征参数的好坏直接导致了辨别的准确性。
2.2特征参数的提取 对于特征参数的选取,我们使用mfcc的方法来提取。MFCC参数是基于人的听觉特性利用人听觉的屏蔽效应,在Mel标度频率域提取出来的倒谱特征参数。 MFCC参数的提取过程如下: 1. 对输入的语音信号进行分帧、加窗,然后作离散傅立叶变换,获得频谱分布信息。 设语音信号的DFT为:
10,)()(112NkenxkXNnN
nkj
a
(1)
其中式中x(n)为输入的语音信号,N表示傅立叶变换的点数。 2. 再求频谱幅度的平方,得到能量谱。 3. 将能量谱通过一组Mel尺度的三角形滤波器组。 我们定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为f(m),m=1,2,3,···,M 本系统取M=100。 4. 计算每个滤波器组输出的对数能量。
N12amk1S(m)ln(|(k)|H(k)),0mM1X
(2)
其中mH(k)为三角滤波器的频率响应。 5. 经过离散弦变换(DCT)得到MFCC系数。 10C(n)()cos((0.5/)),(3)01MmSmnmmnN
MFCC系数个数通常取20—30,常常不用0阶倒谱系数,因为它反映的是频谱能量,故在一般识别系统中,将称为能量系数,并不作为倒谱系数,本系统选取20阶倒谱系数。
2.3用矢量量化聚类法生成码本 我们将每个待识的说话人看作是一个信源,用一个码本来表征。码本是从该说话人的训练序列中提取的MFCC特征矢量聚类而生成。只要训练的序列足够长,可认为这个码本有效地包含了说话人的个人特征,而与讲话的内容无关。
本系统采用基于分裂的LBG的算法设计VQ码本,(1,2,,)kXkK为训练序列,B为码本。 具体实现过程如下: 1. 取提取出来的所有帧的特征矢量的型心(均值)作为第一个码字矢量B1。 2. 将当前的码本Bm根据以下规则分裂,形成2m个码字。
)1()1({mmmmBBBB (4)
其中m从1变化到当前的码本的码字数,ε是分裂时的参数,本文ε=0.01。 3. 根据得到的码本把所有的训练序列(特征矢量)进行分类,然后按照下面两个
公式计算训练矢量量化失真量的总和[]nD以及相对失真(n为迭代次数,初始n=0,
[1]D=∞,B为当前的码书),若相对失真小于某一阈值ε,迭代结束,当前的码
书就是设计好的2m个码字的码书,转5。否则,转下一步。 量化失真量和:
()1min(,)KnkkDdXB
(5)
相对失真: (1)||nnnDDD
(6)
4. 重新计算各个区域的新型心,得到新的码书,转3。 5. 重复2 ,3 和4步,直到形成有M个码字的码书(M是所要求的码字数),其中D0=10000。
2.4 VQ的说话人识别 设是未知的说话人的特征矢量1{,,}TXX,共有T帧是训练阶段形成的码书,表示码书第m个码字,每一个码书有M个码字。再计算测试者的平均量化失真D,并设置一个阈值,若D小于此阈值,则是原训练者,反之则认为不是原训练者。
11]min[/1),(jMm
mjTDBxd (7)
三、 算法程序分析 在具体的实现过程当中,采用了matlab软件来帮助完成这个项目。在matlab中主要由采集,分析,特征提取,比对几个重要部分。以下为在实际的操作中,具体用到得函数关系和作用一一列举在下面。 3.1函数关系 主要有两类函数文件Train.m和Test.m 在Train.m调用Vqlbg.m获取训练录音的vq码本,而Vqlbg.m调用mfcc.m获取单个录音的mel倒谱系数,接着mfcc.m调用Melfb.m---将能量谱通过一组Mel尺度的三角形滤波器组。 在Test.m函数文件中调用Disteu.m计算训练录音(提供vq码本)与测试录音(提供mfcc)mel倒谱系数的距离,即判断两声音是否为同一录音者提供。Disteu.m调用mfcc.m获取单个录音的mel倒谱系数。mfcc.m调用Melfb.m---将能量谱通过一组Mel尺度的三角形滤波器组。 3.2具体代码说明 3.2.1函数mffc: function r = mfcc(s, fs) --- m = 100; n = 256; l = length(s); nbFrame = floor((l - n) / m) + 1; %沿-∞方向取整 for i = 1:n for j = 1:nbFrame M(i, j) = s(((j - 1) * m) + i); %对矩阵M赋值 end end h = hamming(n); %加 hamming 窗,以增加音框左端和右端的连续性 M2 = diag(h) * M; for i = 1:nbFrame frame(:,i) = fft(M2(:, i)); %对信号进行快速傅里叶变换FFT end t = n / 2; tmax = l / fs; m = melfb(20, n, fs); %将上述线性频谱通过Mel 频率滤波器组得到Mel 频谱,下面在将其转化成对数频谱 n2 = 1 + floor(n / 2); z = m * abs(frame(1:n2, :)).^2; r = dct(log(z)); %将上述对数频谱,经过离散余弦变换(DCT)变换到倒谱域,即可得到Mel 倒谱系数(MFCC参数) 3.2.2函数disteu ---计算测试者和模板码本的距离 function d = disteu(x, y)
[M, N] = size(x); %音频x赋值给【M,N】 [M2, P] = size(y); %音频y赋值给【M2,P】 if (M ~= M2) error('不匹配!') %两个音频时间长度不相等 end d = zeros(N, P); if (N < P)%在两个音频时间长度相等的前提下 copies = zeros(1,P); for n = 1:N d(n,:) = sum((x(:, n+copies) - y) .^2, 1); end else