DSP

数字信号处理、音频特征的提取DSP

2019-07-13 16:09发布

一, DSP数字信号处理

1. 1.基本知识

  1. 时域
  2. 频域:频域图中横坐标是时间,纵坐标是频率而颜 {MOD}越亮的地方代表位于该频率的分量值比较大
  3. 波形图:声谱图(Spectrogram)
     
  4. 采样频率:采样率是44.1kHz的的,依据奈奎斯特抽样定律频率的最大值不能超过44.1K / 2 = 22.05kHz时,所以纵坐标的最大值是22.05kHz时
  5. FFT滤波器
  6. DSP :(数字信号处理)
  7. 语音信号的离散表示基本上可以分为两大类:波形表示和参数表示。
  8. 1.参数表示,首先必须对语音进行采样和量化,然后再进一步处理以得到语音产生模型的参数语音产生模型的参数一般可分为两大类:一类是激励参数;另一类是声道参数。
  9.  
  10. 声码器:实验语音编码的设备
  11. 特定说话人(说话者依赖)语音识别,多说话人语音识别和非特定说话人(独立于说话者)语音识别。
  12. 截取具有短时平稳性的一段语音进行分析处理,这一段语音通常称为一“帧”(帧)语音,语音段的长度称为帧长,语音的帧长一般取10~30ms
  13. 语音的基本的单元是音素,语音就是一连串的音素所组成的。这些音素及其相互间的过渡就是代表信息的符号。音素的排列是由语音的规则所控制的。
  14. 对于这些规则以及在人类通信中的含义的研究属于语言学的范畴,而对语音中的音素的分类和研究成为语音学。
  15. 汉语语音的基础是汉语拼音,由10个元音和22个辅音组成,共计21个声母和38个韵母。

2. 2.时域离散信号

  1. 信号分析的方法有两种:时域信号分析和频域信号分析
  2. 1.频域信号分析:傅里叶变换或者拉普拉斯变换,信号用傅里叶变换或者Ž变换表示。
  3. 2.在模拟领域一般是用连续变量时间的函数,系统则用微分方程表示。
  4. 在时域信号和系统中,信号用时域离散信号表示。系统用差分方程表示。
  5.  

3. 3.快速傅里叶变换(快速傅立叶变换)

  1. 所谓的谱分析就是指信号的傅里叶变换,连续信号不适合计算机的数值计算,需要将信号离散化(时域采样)
  2. 谱分析最关心的两个问题,就是谱分析范围,和频率分辨率。
  3.  

4. HTS数据准备流程

  1. 声学特征:是从RAW中的音频中提取出来的。
    1. 提取音高(pitch):lf0 = log(f0)
      1. 根据自己的样本设置f0是一个关键的步骤,毕竟f0设置的范围不适合,范围之外的特征将无法被提取,导致训练后的特征就是“嘶啦”的噪音。推荐使用STRAIGHT声码器(声码)器)
      2. lf0的默认标准通用值是75-600
      3. 音高提取工具
    2. bap:如果你正在使用STRAIGHT
    3. 提取mgc =广义梅尔倒谱特征(mel generalized cepstral features):表示音频的光谱特征
    4. 语言学特征(语言特征)是从文本中提取出来,需要:
      1. 语言词典,发音词典
      2. 文本到语言特征的表示:在TTS系统叫前端:工具节,输出.utt格式的标签数据.HTS,可以将.utt格式的标签转化为.lab文件。
    5. 制作cmp
      1. 把提取的音频特征组合成一个CMP文件中。
    6. 做实验室
      1. .utt到.lab
        1. labels / full / * .lab,fullcontext标签
        2. 标签/单声道/ *。实验室,每个话语的单声道标签
    7. 做mlf
      1. 指向实验室的文件
    8. 列表
      1. full.list,full_all.list和mono.list
    9. 制作scp
      1. 这一步生成训练的文件存储路径和生成文件的存储路径:train.scp和gen.scp
      2. 如果您只想训练一部分话语,您只需要修改train.scp
    10. 问题档案
    11. 提出问题
    12. yourvoicedir/data/questions/questions_qst001.hed.可以根据这个添加自己的问题集,参考/凸出/ TTS /示例/ QFile时/的代码指导
    13. make_qfile_from_categories.py生成问题集的文件
  2. 错误和解决方案
    1. 制作mgc
/proj/speech/tools/SPTK-3.6/installation/bin/x2x:8:语法错误:“(”意外的
那是因为你试图在32位机器上使用64位编译版本的SPTK,反之亦然。使用您正在运行的机器重新编译SPTK.2。
使lf0 
shift:不能移动那么多
扬声器列表和扬声器f0范围列表之间不匹配,即您的扬声器多于列出的范围,或者另外一种方法。修复列表,然后重新运行。
无法打开混音器/ dev / mixer 
这可能发生在服务器而不是桌面的机器上。这是安全忽略的
.3。制作标签
警告
没有找到默认语音
( “/凸出/语音/工具/ festival64 /节/ lib目录/声音/”)
这些被安全地忽略了。如果你不想看到这些,你也可以安装festvox-kallpc16k。
[:7:labels / mono / h1r / cu_us_bdc_h1r_0001.lab:意外的操作符
(在data / scp下缺少scp文件)
在scp下的data / Makefile中:您需要确保这些路径指向正确的位置。
4.制作清单
[:7:labels / mono / h1r / cu_us_bdc_h1r_0001.lab:意外的运算符
你缺少一些.lab文件,确保它们在那里并在正确的地方寻找。
sort:无法读取:tmp:没有这样的文件或目录
你缺少一些.cmp文件,确保它们在那里并在正确的地方寻找。
5.make scp 
/ bin / sh:3:[:labels / mono / f3a / f3a_0001.lab:意外操作员
检查三个部分中的路径!当路径中存在拼写错误时会发生这种情况。