《自然语言处理技术》——实训20 基于PaddleSpeech实现新闻自动播报.docx
《《自然语言处理技术》——实训20 基于PaddleSpeech实现新闻自动播报.docx》由会员分享,可在线阅读,更多相关《《自然语言处理技术》——实训20 基于PaddleSpeech实现新闻自动播报.docx(16页珍藏版)》请在三一文库上搜索。
1、目录项目8基于PaddleSpeech实现新闻自动播报11 实训目标12 实训环境13 实训说明14 实训步骤44.1 文本前端处理44.2 合成声学模型74.3 声码器合成94.4 结果评测115 实训小结14项目8基于PaddleSpeech实现新闻自动播报1实训目标(1) 掌握通过PaddleSpeech中的Frontend类进行文本前端处理。(2) 掌握通过调用PaddleSpeech中的FastSpeech2类构建声学模型,并加载预训练模型参数。(3) 掌握使用PaddleSpeech中的PWGGenerator类构建ParallelWaveGAN声码器。(4) 熟练掌握语音合成结果
2、的播放与保存方法。(5) 能够对生成语音结果的准确率进行测试。2实训环境环境版本说明Windows1064电脑操作系统Python3.8.5Python语言版本pandas1.3.0主要用于数据读取、清洗等操作NumPy1.21.6主要用于Python中的数值计算jieba0.42.1主要用于文本分词Gensim4.2.0主要用于检索文本、计算文本相似度、训练词向量、建模主题等Matplotlib3.3.0主要用于数据可视化PaddlePaddle2.4.2是一个深度学习框架,提供了高效的计算框架和优化算法PaddleSpeech1.2.0主要用于语音和音频中的各种关键任务的开发scikit-
3、learn1.0.2广泛地用于统计分析和机器学习建模等数据科学领域Librosa0.8.1主要用于分析一般的音频信号,是一个非常强大的Python语音信号处理的第三方库NETK3.5是一个常用的自然语言处理工具包,可用于文本处理、语义分析、词性标注等SciPy1.7.3是一个科学计算工具包,可用于数学、科学、工程学等领域pyttsx32.9.0主要用于将文本转换成语音3实训说明近年来,人工智能领域的快速发展带动了各类行业的变革。特别是深度学习技术的进步,为语音合成技术提供了新的突破口。在智能音箱、语音助手、无障碍服务、在线教育等领域,语音合成技术得到了广泛的应用。高质量、自然的合成语音不仅能够
4、帮助人们更好地与计算机进行交流,还能够降低信息获取的难度,提高用户体验。随着信息技术的不断发展和普及,新闻媒体行业也在不断创新和变革。传统的新闻报道方式已经无法满足人们的需求,新闻自动播报技术应运而生,深入实施创新驱动发展战略。新闻自动播报是指利用人工智能技术和语音合成技术,将新闻文本自动转换为语音信号,并通过音频设备自动播放出来的一种新型新闻播报方式。例如,每日经济新闻推出每经AI电视,运用Al虚拟主播生成驱动、AI文本及视频生成等多项人工智能技术,支持多景别、多姿态、多场景的应用,可进行汉语、英语等多语种的播报。本项目基于CSMSC(ChineseStandardMandarinSpeec
5、hCorpus)数据集进行语音合成,CSMSC是一个中文普通话语音数据集,它由财经媒体的播报员录制而成,具有较高的音质和准确度。数据集包括大约100小时的录音,涵盖了10000多个句子,以及相应的拼音和汉字文本。CSMSC数据集可用于训练和评估各种中文语音合成(TTS)和语音识别(ASR)系统。CSMSC数据集的特点如下。(1)专业播报员录制。由于数据集是由专业播报员录制的,所以具有较高的语音质量,适合用于训练高质量的语音合成系统。(2)多样化文本内容。CSMSC数据集包含了各种主题和领域的文本,有助于训练出更具泛化能力的模型。(3)数据标签。数据集包含拼音和汉字文本,便于训练和评估各种基于拼
6、音或汉字的语音合成和语音识别模型。(4)开源可用。CSMSC数据集已经开源,对学术研究和商业应用具有较高的价值。总之,CSMSC数据集是一个有价值的中文普通话语音数据集,适用于训练和评估各种中文TTS和ASR系统,部分内容如图8-1所示。0001.w000002.w0003.w0004.wOOOOO5.w0006.w07.w08.w09.w0010.w0011.w0012.wOOOol3.w0014.wavavavavavavavavavavavavavav0OOOoI5.wavO000016.wavO000017.wavO0018.wavOOOoOlg.wavO000020.wavO0000
7、21.wavOOoOO22MavOOO23.wavO0024.wavO000025.wavO000026.wavO0027.wavOOooO2&wavOOOOOOGOOOO00O000029.w0030.w0031.w0032.wOO33.w000034.wOOOO35.wOoOo36.wOO37.w0038.w000039.w000040.w41.w0042.wavavavavavavavavavVavavavavOOOOO0O0OOOOOO000043.w000044.w000045.wOOoO46WOoOo47W000048.w000049.w0050.w0051.wOOoO52wOOO
8、O53.w000054.wOoOo55.w0056.wavavavavavavavavavavavavavavOOOOOOOOOOOOOO0057.w000058.w0059.w0060.w61.w000062.w000063.w000064.w0065.w0066.w000067.w000068.w69.w0070.wavavavavavavavavavavavavavavO0OOOOOOOOOOOO00007Lw000072.w0073.w0074.w75.w0076.w000077.w78.w0079.w80.w000081.w0082.wOOOo83.w0084.wavavavavav
9、avavavavavavavavav图8-1CSMSC数据集(部分)通常情况下,新闻自动播报主要分为以下3个阶段。(1)构造文本前端:构造文本前端对象,将输入的文本序列转换为音素序列,为声学模型的输入提供语音特征表示。(2)合成声学模型:基于PaddlePaddIe搭建一个声学模型FaStSPeeCh2,用于将处理过的文本转换为音频信号的中间表示,如梅尔频谱图。(3)合成声码器:使用声码器ParaneIWaVeGAN,将声学模型生成的中间表示转换为最终的音频信号,实现高质量的语音合成。本项目将介绍基于PaddleSpeech实现新闻自动播报的基本流程,该流程与通用流程存在一定差异,主要包括文本
10、前端处理、合成声学模型、声码器合成和结果评测等。基于PaddleSpeech的新闻自动播报基本流程如图8-2所示,基本步骤如下。4实训步骤4.1文本前端处理文本前端模块主要包括分段、文本正则化、分词(主要用于中文)、词性标注、韵律预测、字音转换、多音字处理、变调以及方言等处理。在该模块中,文本正则化和字音转换(通常在TTS中用G2P表示)是非常关键的部分,在输入声学模型之前,还需将音素序列转换为IDo本任务的处理流程如图8-3所示。;构建文本前端文本正则化文本前端-模块字音转换图8-3文本前端模块处理流程文本前端模块的设计需要结合很多专业的语义学知识和经验。人类在读文本的时候可以自然而然地读出
11、正确的发音,但这一些先验知识计算机并不知晓。例如,对于一个句子进行分词,如表8-1所示。表8-1句子的分词原始句子句子分词我也想过过过儿过过的生活我也想/过过/过儿/过过的/生活货拉拉拉不拉拉布拉多货拉拉/拉不拉/拉布拉多南京市长江大桥南京市/长江大桥在构建文本前端对象之前,需要导入相应的库,并设置预训练模型的路径,如代码8-1所示。代码8-1导入相应的库并设置预训练模型!pipinstallpaddlespeech!wget-Pdownloadhttps:PaddleSPeeCh.bj上CeboS.com/Parakeet/released_models/pwgan/pwg_baker_ck
12、pt_0.4.zip!unzip-o-ddownloaddownload/pwg_baker_ckpt_0.4.zip!wget-Pdownloadhttps:PaddIeSPeeCh.bj上CebOS.com/Parakeet/released_models/fastspeech2/fastspeech2_nosiLbaker_ckpt_0.4.ziP!unzip-o-ddownloaddownload/fastspeech2_nosil_baker_ckpt_0.4.zip!wget!tarzxvfnltk_data.tar.gzimportargparse#导入argparse库,用于解
13、析命令行参数importos#导入C)S库,用于处理文件和目录路径frompathlibimportPath#导入Path类,用于处理文件系统路径importIPython.displayasdp#导入IPython.display模块,用于在JupyterNotebook中显示音频和图像importmatplotlib.pyplotaspit#导入matplotlib.pyplot模块,用于绘制图像importnumpyasnp#导入NumPy库,用于进行数值计算importpaddle#导入Paddle库,用于构建和训练深度学习模型importsoundfileassf#导入soundfi
14、le库,用于读取和写入音频文件importyaml#导入yaml库,用于处理YAML格式的配置文件frompaddlespeech.t2s.frontend.zh_frontendimportFrontend#导入PaddleSpeech中文前端处理类frompaddlespeech.t2s.models.fastspeech2importFastSpeech2#导入PaddleSpeech中的FastSpeech2声学模型类frompaddlespeech.t2s.models.fastspeech2importFastSpeechZInference#导入PaddleSpeech中的Fas
15、tSpeech2类frompaddlespeech.t2s.models.parallel_waveganimportPWGGenerator#导入PaddleSpeech中的ParallelWaveGAN声码器类frompaddlespeech.t2s.models.parallel_waveganimportPWGInference#导入PaddleSpeech中的ParallelWaveGAN推理类frompaddlespeech.t2s.modules.normalizerimportZScore#导入PaddleSpeech中的ZScore正贝!)化类fromyacs.configi
16、mportCfgNode#导入yacs库的CfgNode类,用于处理配置文件plt.rcParamsfont,sans-serif=SimHeiplt.rcParamsaxes.unicode_minus=False# 定义FaStSPeeCh2模型的配置文件路径、检查点路径和统计量路径fastspeech2_config=download/fastspeech2_nosil_baker_ckpt_0.4/default.yamrfastspeech2_checkpoint=download/fastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_7600
17、0.pdzfastspeech2_stat=download/fastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy# 定义ParanelWaVeGAN模型的配置文件路径、检查点路径和统计量路径pwg_config=download/pwg_baker_ckpt_0.4/pwg_default.yamrpwg_checkpoint=download/pwg_baker_ckpt_0.4/pwg_snapshot_iter_400000.pdzpwg_stat=download/pwg_baker_ckpt_0.4/pwg_stats.npy# 定义p
18、honeme到id的映射文件路径phones_dict=download/fastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt# 读取FastSpeech2模型的配置文件并以CfgNode形式保存# 读取conf配置文件并结构化withopen(fastspeech2_config)asf:fastspeech2_config=CfgNode(yami.safeOad)withopen(pwg_config)asf:pwg_config=CfgNode(yaml.safeJoad(f)Printe=Config=)print(fastspeech2
19、config)print()print(pwg_config)首先通过PaddleSpeech中的Frontend类构建文本前端对象,构造文本前端之后进行文本正则化和字音转换,得到文本正则化结果和对应的音阶列表,如代码8-2所示。代码8-2构造文本前端并进行文本正则化、字音转换frontend=Frontend(phone_vocab_path=phones_dict)# 待转换为音素ID序列的文本input=,学习,是心灵的翅膀,是智慧的火花,是我们通向知识宝库的钥匙。热爱学习,便是燃起心中那抹不灭的热忱,让我们在知识的海洋中畅游,拓展视野,豁然开朗。# 调用前端方法,对文本进行正则化处理
20、将文本转换为音素ID序列input_ids=frontend.get_input_ids(input,merge_sentences=True,print_info=True)# 获取音素ID列表phone_ids=input_idsphone_ids0# 打印音素ID列表print(phone_ids:%s%phone_ids)在代码8-2中,使用Frontend类构造文本前端对象,该类的常用参数说明如表8-2所zjO表8-2Frontend类的常用参数说明参数名称参数说明phone_vocab_path接收str,表示指定音素词典文件的路径或位置。默认为PaddleSPeeCh中提供的中文
21、音素词典文件的位置其中,Frontend类的frontend.get_input_ids函数可以将文本转换为音素ID序列,其常用参数说明如表8-3所示。表8-3frontend.get_input_ids函数的常用参数说明参数名称参数说明text接收str,表示待转换的文本序列,以字符串形式传入。无默认值merge_sentences接收bool,表示是否将多个句子合并为一个句子。默认为TrUeprint_info接收bool,表示是否打印调试信息。默认为FaISe运行代码8-2,得到文本正则化和字音转换的结果如下。textnormresults:学习,是心灵的翅膀,是智慧的火花,是我们通向知
22、识宝库的钥匙。热爱学习便是燃起心中那抹不灭的热忱,7让我们在知识的海洋中畅游,7拓展视野,7豁然开朗。g2presults:,x,ve2,x,i2,sp,sh,in4,x,in,ing2,d,e5,ch,iii4,b,ang3,sp,sh,i114,zh,iii4,h,uei4,d,e5,h,uo3,h,ua,sp,sh,iii4,uo3,m,en5,t,ong,x,iang4,zh,iii,sh,iii5,b,ao3,k,u4,d,e5,iao4,sh,iii5,sp,r,e4,ai4,x,ve2,x,i2,sp,b,ian4,sh,i114,r,an2,q,i3,x,in,zh,ong,n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自然语言处理技术 自然语言处理技术实训20 基于PaddleSpeech实现新闻自动播报 自然语言 处理 技术 实训 20 基于 PaddleSpeech 实现 新闻 自动 播报
