《自然语言处理技术》——实训18 语音合成.docx

上传人:极速器 文档编号:591426 上传时间:2025-09-01 格式:DOCX 页数:5 大小:41.21KB
下载 相关 举报
《自然语言处理技术》——实训18 语音合成.docx_第1页
第1页 / 共5页
《自然语言处理技术》——实训18 语音合成.docx_第2页
第2页 / 共5页
《自然语言处理技术》——实训18 语音合成.docx_第3页
第3页 / 共5页
《自然语言处理技术》——实训18 语音合成.docx_第4页
第4页 / 共5页
《自然语言处理技术》——实训18 语音合成.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、项目6熟悉常见语音处理技术语音合成1实训目标(1) 掌握通过PyttSX3库中的init()方法构建TTS引擎对象。(2) 掌握PyttSX3库中的TTS引擎参数设置。(3) 掌握利用Iibrosa库合成语音并通过Matplotlib库实现可视化。2实训环境环境版本说明Windows1064电脑操作系统Python3.8.5Python语言版本pandas1.3.0主要用于数据读取、清洗等操作NumPy1.21.6主要用于Python中的数值计算jieba0.42.1主要用于文本分词Gensim4.2.0主要用于检索文本、计算文本相似度、训练词向量、建模主题等Matplotlib3.3.0主要

2、用于数据可视化PaddlePaddle2.4.2是一个深度学习框架,提供了高效的计算框架和优化算法PaddleSpeech1.2.0主要用于语音和音频中的各种关键任务的开发scikit-learn1.0.2广泛地用于统计分析和机器学习建模等数据科学领域Librosa0.8.1主要用于分析一般的音频信号,是一个非常强大的Python语音信号处理的第三方库NETK3.5是一个常用的自然语言处理工具包,可用于文本处理、语义分析、词性标注等SciPy1.7.3是一个科学计算工具包,可用于数学、科学、工程学等领域pyttsx32.9.0主要用于将文本转换成语音3实训说明SAPI(SpeechApplic

3、ationProgrammingInterface)是微软开发的一种语音合成和语音识别技术,将文本转换成语音的过程,也称为文本到语音(Text-to-Speech,TTS)合成。SAPI能将文本转换为语音,支持多种语音合成引擎,兼容多种语音格式以及文本格式。SAPI的工作流程如图3-1所示。图3-1SAPI工作流程图SAPI工作的具体步骤如下。(1)文本预处理。SAPl对输入的文本进行预处理,包括断句、分词、词性标注等操作,这些操作有助于识别和解析文本中的语法结构、特殊字符、缩略词等。(2)文本规范化。在此阶段中,SAPl会将文本中的数字、日期、时间、缩略词等非标准文本转换成标准文本。例如,将

4、3月23日”转换为“三月二十三日”。(3)语音合成。SAPl将标准化的文本转换为音素序列。音素是语言中最小的发音单位,可以看作是音位的具体发音。在Python中可以通过pyttsx3库快速调用SAPl接口实现语音合成,一般流程如图3-2所示。图3-2调用SAPI接口流程图4实训步骤4.1 构建pyttsx3的TTS引擎构建pyttsx3引擎对象,如代码4-1所示。代码4-1构建TTS引擎对象#导入yttsx3库importpyttsx3#使用pyttsx3库中的init()方法创建一个TTS引擎对象engine=pyttsx3.init()4.2 设置TTS引擎参数对TTS引擎参数,如语音速

5、度、音量和语音进行设置,如代码4-2所示。engine.SetPropertyCrate,100)#重设语速rate=engine.getProperty(rate)#获取当前语速的详细信息PrintC当前语速:,rate)#打印当前语速engine.SetProperty(rate,90)#重设语速rate=engine.getProperty(rate)#获取当前语速的详细信息PrintC重设语速:,rate)#打印重设语速IlIlIf!日里engine.SetProperty(volume,1.0)#在01之间重设音量volume=engine.getProperty(volume)#获

6、取当前音量(最小为0,PrintC当前音量:,volume)#打印当前音量engine.SetProperty(volume,0.9)#在01之间重设音量最大为1)volume=engine.getProperty(volume)#获取当前音量(最小为0,PrintC重设音量:,volume)#打印重设音量HIlIlIl”及日voices=engine.getProperty(voices)#获取当前发音的详细信息Printe当前发音参数:,voices0.id)#打印当前发音参数engine.SetProperty(voice,zh)#更改发音参数Printc重设发音参数:丁Zh)#打印重设

7、发音参数最大为1)运行代码4-2,得到设置前后TTS引擎参数结果如下。当前语速:100重设语速:90当前音量:LO重设音量:09当前发音参数:afrikaans重设发音参数:zh4.3 合成语音并保存输出生成音频波形设计好参数之后,即可通过文本合成语音,并将音频文件进行保存。生成关于“热爱学习是一种非常宝贵的品质,它可以让我们不断进步、不断成长。当我们对学习充满热情时,我们会享受到学习的过程,感受到知识的力量,同时也会不断拓展自己的视野和思维。”的语音,如代码4-3所示。代码4-3朗读文本并保存为wav文件importIibrosaplt.rcParamsfont,sans-serif=sim

8、heiimportmatplotlib.pyplotaspit朗读text二,热爱学习是一种非常宝贵的品质,它可以让我们不断进步、不断成长。当我们对学习充满热情时,我们会享受到学习的过程,感受到知识的力量,同时也会不断拓展自己的视野和思维。engine.say(text)engine.runAndWait()engine,stop()心”将音频保存为文件# 如果在Linux环境中运行,那么请确保已安装espeak与ffmpeg模块engine.save_to_file(text,test.wav)engine.runAndWait()engine,stop()# 用实际的音频文件路径替换pat

9、htoyouraudiofile.wav,audio_file=test.wav# 加载音频文件# 参数Sr=NOne表示保持原始音频文件的采样率# audio_data是一个包含音频数据的NumPy数组# SamPIing_rate是音频数据的采样率,单位是HZ(赫兹)audio_data,sampling_rate=librosa.load(audio_file,sr=None)# 创建一个新的Matplotlib图形plt.figure()# 使用librosa.display.waveshow函数显示音频波形# 该函数将音频数据作为输入,并根据采样率在时间轴上显示波形librosa.display.waveshow(audio_data,sr=sampling_rate)# 设置图形的标题、X轴标签和Y轴标签PltftleC音频波形,)pltxlabel(时间(秒)plt.ylabel(振幅)# 显示图形plt.show()运行代码4-3,生成的音频波形如图4-1所示。5实训小结技术点自评达标未达标能够通过pyttsx3库构建TTS引擎对象能够完成TTS引擎参数设置能够利用Iibrosa库合成语音,并通过Matplotlib库实现可视化心得体会(如遇到的问题及解决方法、存在的不足之处等):

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

宁ICP备18001539号-1