一、DSP数字信号处理
1. 1.基本知识
响度(loudness):人主观上感觉声音的大小(俗称音量),由“振幅”(amplitude)和人离声源的距离决定,振幅越大响度越大,人和声源的距离越小,响度越大。(单位:分贝dB)
音调(pitch):声音的高低(高音、低音),由“频率”(frequency)决定,频率越高音调越高(频率单位Hz(hertz),赫兹[/url,人耳听觉范围20~20000Hz。20Hz以下称为次声波,20000Hz以上称为超声波)和f0 即lf0有关系,
频率是每秒经过一给定点的声波数量,它的测量单位为赫兹
1千赫或1000赫表示每秒经过一给定点的声波有1000个周期,1兆赫就是每秒钟有1,000,000个周期,
音色(Timbre):又称音品,波形决定了声音的音色。声音因不同物体材料的特性而具有不同特性,音色本身是一种抽象的东西,但波形是把这个抽象直观的表现。音色不同,波形则不同。典型的音色波形有方波,锯齿波,正弦波,脉冲波等。不同的音色,通过波形,完全可以分辨的。MGC有关系,
乐音:有规则的让人愉悦的声音。噪音:从物理学的角度看,由发声体作无规则振动时发出的声音;从环境保护角度看,凡是干扰人们正常工作、学习和休息的声音,以及对人们要听的声音起干扰作用的声音。
频域:频域图中横坐标是时间,纵坐标是频率。而颜色越亮的地方代表位于该频率的分量值比較大
采样频率:採样率是44.1kHz的,依据奈奎斯特抽样定律。频率的最大值不能超过44.1k/2=22.05kHz,所以纵坐标的最大值是22.05Khz
FFT滤波器
DSP:(digital singnal proceses)
语音信号的离散表示基本上可以分为两大类:波形表示和参数表示。
1.参数表示,首先必须对语音进行采样和量化,然后再进一步处理以得到语音产生模型的参数。语音产生模型的参数一般可分为两大类:一类是激励参数;另一类是声道参数。声码器:实验语音编码的设备
特定说话人(speaker dependent)语音识别、多说话人语音识别和非特定说话人(speaker independent)语音识别。
截取具有短时平稳性的一段语音进行分析处理,这一段语音通常称为一“帧”(frame)语音,语音段的长度称为帧长,语音的帧长一般取 10~30ms
语音的基本的单元是音素,语音就是一连串的音素所组成的。这些音素及其相互间的过渡就是代表信息的符号。音素的排列是由语音的规则所控制的。
对于这些规则以及在人类通信中的含义的研究属于语言学的范畴,而对语音中的音素的分类和研究成为语音学。
汉语语音的基础是汉语拼音,由 10 个元音和 22 个辅音组成,共计 21 个声母和 38 个韵母。
声调的曲线或轨迹开始于韵母的起始端,结束于韵母的终止端。
2. 2.时域离散信号
信号分析的方法有两种:时域信号分析和频域信号分析
1.频域信号分析:傅里叶变换或者拉普拉斯变换,信号用傅里叶变换或者Z变换表示。
2.在模拟领域一般是用连续变量时间的函数,系统则用微分方程表示。
在时域信号和系统中,信号用时域离散信号表示。系统用差分方程表示。
3. 3.快速傅里叶变换(fast Fourier Transform )
所谓的谱分析就是指信号的傅里叶变换,连续信号不适合计算机的数值计算,需要将信号离散化(时域采样)
谱分析最关心的两个问题,就是谱分析范围,和频率分辨率。
4. HTS数据准备流程
声学特征:是从RAW中的音频中提取出来的。
提取音高(pitch):lf0 = log(f0)
根据自己的样本设置f0是一个关键的步骤,毕竟f0设置的范围不适合,范围之外的特征将无法被提取,导致训练后的特征就是“嘶啦”的噪音。推荐使用 STRAIGHT vocoder(声码器)
lf0的默认A standard generic value is 75-600
音高提取工具
bap: if you are using STRAIGHT
提取mgc=广义梅尔倒谱特征(mel generalized cepstral features):表示音频的光谱特征
语言学特征(linguistic features)是从文本中提取出来,需要:
语言词典,pronunciation dictionaries
文本到语言特征的表示:在tts系统叫frontend:工具Festival,输出.utt格式的标签数据。HTS,可以将.utt格式的标签转化为.lab文件。
make cmp
把提取的音频特征组合成一个cmp文件中。
make lab
.utt to .lab
labels/full/*.lab, the fullcontext labels
labels/mono/*.lab, monophone labels for each utterance
make mlf
指向lab的文件
make list
full.list, full_all.list, and mono.list
make scp
这一步生成训练的文件存储路径和生成文件的存储路径:train.scp and gen.scp
If you ever want to train on just a subset of utterances, you only have to modify train.scp
Questions File
make questions
yourvoicedir/data/questions/questions_qst001.hed.可以根据这个添加自己的问题集,参考/proj/tts/examples/qfile/的代码指导
make_qfile_from_categories.py 生成问题集的文件
Errors and Solutions
make mgc
/proj/speech/tools/SPTK-3.6/installation/bin/x2x: 8: Syntax error: "(" unexpected
That's because you're trying to use a 64bit-compiled version of SPTK on a 32bit machine, or vice versa. Recompile SPTK using the machine on which you're running.
2. make lf0
shift: can't shift that many
There is a mismatch between the speaker list and the speaker f0 range list, i.e. you have more speakers than ranges listed, or the other way around. Fix the lists, then re-run.
Unable to open mixer /dev/mixer
This may happen on machines that are servers as opposed to desktops. This is safely ignored.
3. make label
WARNING
No default voice found in
("/proj/speech/tools/festival64/festival/lib/voices/")
These are safely ignored. You can also install festvox-kallpc16k if you don't want to see these.
[: 7: labels/mono/h1r/cu_us_bdc_h1r_0001.lab: unexpected operator
(with missing scp files under data/scp)
In data/Makefile under scp: you need to make sure those paths are pointing to the right place.
4.make list
[: 7: labels/mono/h1r/cu_us_bdc_h1r_0001.lab: unexpected operator
You are missing some .lab files, make sure they are there and being looked for in the right place.
sort: cannot read: tmp: No such file or directory
You are missing some .cmp files, make sure they are there and being looked for in the right place.
5.make scp
/bin/sh: 3: [: labels/mono/f3a/f3a_0001.lab: unexpected operator
Check the paths in each of the three parts! This happens when there is a typo in a path.
5. 4.voice training
1. Voice Training Error and solutions
如果觉得《音频数字信号处理以及歌声合成初学》对你有帮助,请点赞、收藏,并留下你的观点哦!