实验目的:
实验过程:
- 处理wav文件
- 这次的初始的wav文件是:mono,48000Hz
- 所以,只需把48000Hz的转化为16000Hz的即可
- ok,两步脚本处理完毕,在Corpus/Zhijun_XuXiaoQing/wav
- 先改名字:1_changeName.pl
- 再把48000Hz转化为16000Hz即可:2_48HzTo16Hz.pl
- 再处理txt文件,产生lab文件
- 在自己的PC上处理
- 建立路径:2015-02/Z_智俊公司合作相关/WangX_处理ssml文件的perl脚本/XuXiaoQing
- 把文件名字由0001.txt 改为SpkContext_0001.ssml
-
#!/usr/bin/perl foreach $var(glob ("*.txt")) { #$base = `basename $var`; $var_before = $var; $var =~ s/txt/ssml/; $finalName = "SpkContext_$var"; system("mv $var_before $finalName"); print "Processing $var \n"; } print "Over ... \n";
- 首先使用glob函数,依次获取当前路径下的0001.txt、0002.txt、0003.txt、
- 然后一开始是想用shell脚本的basename命令去获取0001.txt文件的前缀,但是不太清楚为什么没有成功,后面再去研究这个东西吧
- 后来想了另外一种方法来替代,是使用,用正则表达式处理文本,s///去进行替换,将0001.txt中的txt全部替换为ssml
-
- 然后进入/prompts/1_ssml2lab.pl文件中修改$ssmlFileDir=‘../XuXiaoQing/‘;
- 然后执行 1_ssml2lab.pl脚本
- 报错:
Modification of non-creatable array value attempted, subscript -1 at ./1_ssml2lab.pl line 118. - 发现了一个问题,就是在许小晴语料中,居然还分段了,这在之前的SpeakerA语料中是没有的,所以我需要把许小晴预料中的分段给去掉,因为在Crystal中如果遇到分段,是这样处理的,一段会加上<p></p>表示一段的内容,而之前的王欣给的脚本就是因为许小晴的语料中有大量的<p></p><p></p><p></p><p></p>,所以执行perl脚本时报错。
- 这是我经过测试的,如果在许小晴的ssml文件中只保留1个<p></p>,即可以顺利执行通过哦
- 所以,现在要做的事情是,写一个perl脚本,去除掉吴锡欣产生的ssml文件的中的4种情况
- 这个脚本宁义双正在写
- m
- 把文件名字由0001.txt 改为SpkContext_0001.ssml
- m
实验结果:
时间: 2024-10-24 03:34:01