缠禅可禅 / 算法合成 / 音频数字信号处理以及歌声合成初学

0 0

   

音频数字信号处理以及歌声合成初学

原创
2020-03-26  缠禅可禅

一、DSP数字信号处理

1. 1.基本知识

  1. 响度(loudness):人主观上感觉声音的大小(俗称音量),由“振幅”(amplitude)和人离声源的距离决定,振幅越大响度越大,人和声源的距离越小,响度越大。(单位:分贝dB)

  2. 音调(pitch):声音的高低(高音、低音),由“频率”(frequency)决定,频率越高音调越高(频率单位Hz(hertz),赫兹[/url,人耳听觉范围20~20000Hz。20Hz以下称为次声波,20000Hz以上称为超声波和f0 即lf0有关系,

  3. 频率是每秒经过一给定点的声波数量,它的测量单位为赫兹

  4. 1千赫或1000赫表示每秒经过一给定点的声波有1000个周期,1兆赫就是每秒钟有1,000,000个周期,

  5. 音色(Timbre):又称音品,波形决定了声音的音色。声音因不同物体材料的特性而具有不同特性,音色本身是一种抽象的东西,但波形是把这个抽象直观的表现。音色不同,波形则不同。典型的音色波形有方波,锯齿波,正弦波,脉冲波等。不同的音色,通过波形,完全可以分辨的。MGC有关系,

  6. 乐音:有规则的让人愉悦的声音。噪音:从物理学的角度看,由发声体作无规则振动时发出的声音;从环境保护角度看,凡是干扰人们正常工作、学习和休息的声音,以及对人们要听的声音起干扰作用的声音。

  7. 频域:频域图中横坐标是时间,纵坐标是频率。而颜色越亮的地方代表位于该频率的分量值比較大

  8. 采样频率:採样率是44.1kHz的,依据奈奎斯特抽样定律。频率的最大值不能超过44.1k/2=22.05kHz,所以纵坐标的最大值是22.05Khz

  9. FFT滤波器

  10. DSP:(digital singnal proceses)

  11. 语音信号的离散表示基本上可以分为两大类:波形表示和参数表示。

  12. 1.参数表示,首先必须对语音进行采样和量化,然后再进一步处理以得到语音产生模型的参数。语音产生模型的参数一般可分为两大类:一类是激励参数;另一类是声道参数。声码器:实验语音编码的设备

  13. 特定说话人(speaker dependent)语音识别、多说话人语音识别和非特定说话人(speaker independent)语音识别。

  14. 截取具有短时平稳性的一段语音进行分析处理,这一段语音通常称为一“帧”(frame)语音,语音段的长度称为帧长,语音的帧长一般取 10~30ms

  15. 语音的基本的单元是音素,语音就是一连串的音素所组成的。这些音素及其相互间的过渡就是代表信息的符号。音素的排列是由语音的规则所控制的。

  16. 对于这些规则以及在人类通信中的含义的研究属于语言学的范畴,而对语音中的音素的分类和研究成为语音学。

  17. 汉语语音的基础是汉语拼音,由 10 个元音和 22 个辅音组成,共计 21 个声母和 38 个韵母。

  18. 声调的曲线或轨迹开始于韵母的起始端,结束于韵母的终止端。

2. 2.时域离散信号

  1. 信号分析的方法有两种:时域信号分析和频域信号分析

  2. 1.频域信号分析:傅里叶变换或者拉普拉斯变换,信号用傅里叶变换或者Z变换表示。

  3. 2.在模拟领域一般是用连续变量时间的函数,系统则用微分方程表示。

  4. 在时域信号和系统中,信号用时域离散信号表示。系统用差分方程表示。

3. 3.快速傅里叶变换(fast Fourier Transform )

  1. 所谓的谱分析就是指信号的傅里叶变换,连续信号不适合计算机的数值计算,需要将信号离散化(时域采样)

  2. 谱分析最关心的两个问题,就是谱分析范围,和频率分辨率。

4. HTS数据准备流程

  1. 声学特征:是从RAW中的音频中提取出来的。

  2. 提取音高(pitch):lf0 = log(f0)

  1. 根据自己的样本设置f0是一个关键的步骤,毕竟f0设置的范围不适合,范围之外的特征将无法被提取,导致训练后的特征就是“嘶啦”的噪音。推荐使用 STRAIGHT vocoder(声码器)

  2. lf0的默认A standard generic value is 75-600

  3. 音高提取工具

  • bap: if you are using STRAIGHT

  • 提取mgc=广义梅尔倒谱特征(mel generalized cepstral features):表示音频的光谱特征

  • 语言学特征(linguistic features)是从文本中提取出来,需要:

  1. 语言词典,pronunciation dictionaries

  2. 文本到语言特征的表示:在tts系统叫frontend:工具Festival,输出.utt格式的标签数据。HTS,可以将.utt格式的标签转化为.lab文件。

  • make cmp

  1. 把提取的音频特征组合成一个cmp文件中。

  • make lab

  1. .utt to .lab

  1. labels/full/*.lab, the fullcontext labels

  2. labels/mono/*.lab, monophone labels for each utterance

  • make mlf

  1. 指向lab的文件

  • make list

  1. full.list, full_all.list, and mono.list

  • make scp

  1. 这一步生成训练的文件存储路径和生成文件的存储路径:train.scp and gen.scp

  2. 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

  1. 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

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多