谱包络之pysptk和pyworld

2023-10-12 12:50
文章标签 包络 pysptk pyworld

本文主要是介绍谱包络之pysptk和pyworld,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

谱包络之pysptk和pyworld

谱包络可以直接用于语音的合成,常用的两个计算谱包络的库pysptk和pyword。

先看看代码:

一段语音x,采样率16000Hz
pysptk

import pysptkframe_length = 1024
hop_length = 80
order = 25
alpha = 0.41
frames = librosa.util.frame(x, frame_length=frame_length, hop_length=hop_length).astype(np.float64).T# Windowing
frames *= pysptk.blackman(frame_length)# Convert mel-cesptrum to MLSADF coefficients
mc = pysptk.mcep(frames, order, alpha)
b = pysptk.mc2b(mc, alpha);synthesizer = Synthesizer(MLSADF(order=order, alpha=alpha), hop_length)y_synthesized = synthesizer.synthesis(source_excitation, b)

world

import pyworld as pwnum_dim =25
sp = pw.cheaptrick(x, f0, temporal_positions, fs)
ap = pw.d4c(x, f0, temporal_positions, fs)
coded_sp = pw.code_spectral_envelope(sp, fs,num_dim)#合成时需要解码
fftlen = pw.get_cheaptrick_fft_size(fs)
decoded_sp = pw.decode_spectral_envelope(coded_sp, fs, fftlen)
y_synthesized = pw.synthesize(praatf0, sp, ap, fs,  frame_period=5.0)

那这两个中的谱包络有什么区别呢?
pysptk中我们用到pysptk.mcep函数,pyworld中用到pyworld.code_spectral_envelope。

相关资料:https://github.com/r9y9/pysptk/issues/74

下面我们追溯到这两段代码的论文,来一探究竟。

pysptk.mcep

论文信息:
Tokuda, Keiichi et al. “Mel-generalized cepstral analysis - a unified approach to speech spectral estimation.” ICSLP (1994).

MCEP是一种广义的倒谱分析方法。
广义倒谱分析方法是对倒谱方法和线性预测方法的统一,其中模型谱根据参数γ的值从全极到倒谱连续变化。由于人耳在低频时具有高分辨率,引入了与模型频谱相似的特征,我们可以更有效地表示语音频谱。

基础理论
线性预测是一种公认的获得语音全极表示的方法。然而,在某些情况下,谱零点也很重要,需要更一般的建模过程。虽然倒谱建模可以用相等的权重表示极点和零点,但使用少量倒谱系数的倒谱方法高估了共振峰的带宽。为了克服这一问题,我们提出了广义倒谱分析方法。当参数γ分别为0和-1时,广义倒谱系数与倒谱系数和AR系数相同。因此,利用广义倒谱表示,我们可以根据γ的值得到连续变化模型谱,从全极谱到倒谱表示的谱。
由于人耳在低频时具有高分辨率,我们引入了与模型频谱相似的特征,可以更有效地表示语音频谱。梅尔广义倒谱表示的频谱,即变换后的广义倒谱,在适当选择参数α值的情况下,具有与人耳相似的频率分辨率。因此,我们期望混合广义倒谱系数对语音频谱表示有用。

在这里插入图片描述

谱模型及其规范

广义对数函数[6]是对数函数的自然推广:
在这里插入图片描述

实序列x(n)的倒谱c(m)定义为,对数谱的傅里叶反变换,而广义倒谱Cα,γ(m)定义为在规整频率标度βα(ω)上计算的广义对数谱的傅里叶反变换。
广义倒谱:
在这里插入图片描述

其中X(ejω)是X(n)的傅里叶变换。规整频率尺度βα(ω)定义为全通系统的相位响应。
在这里插入图片描述

其中,
在这里插入图片描述

相位响应βα(ω)在适当选择α时,可以很好地近似于听觉频率尺度。

在本文中,我们假设一个语音频谱H(ejω)可以用M + 1维的 mel广义倒谱系数来建模,如下所示:

在这里插入图片描述

可以看出,
当(α,γ) =(0,1)时,模型谱采用全极表示形式,当(α,γ) =(0,-1)时,就是全零点。
当(α,γ) =(0,0)时,模型谱与倒谱表示的谱相同。(倒谱)

模型谱的形式与(α,γ)值的关系:
在这里插入图片描述

所以当α,γ取不同的值,可以得到更适合的谱模型。

采样率1KHz,α=0.35;
采样率16KHz,α=0.41;
其他采样率,α=0.5;

pyworld.code_spectral_envelope

论文信息:
Morise, Masanori et al. “Low-Dimensional Representation of Spectral Envelope Without Deterioration for Full-Band Speech Analysis/Synthesis System.” Interspeech (2017).

全频带语音是指采样频率在40khz以上,其奈奎斯特频率覆盖可听频率范围的语音。在以往的工作中,语音编码一般集中在采样频率低于16khz的窄带语音上。另一方面,统计参数语音合成目前使用的是全频带语音,使用的是语音参数的低维表示。本研究的目的在于实现全频带语音的无损编码。我们专注于高质量的语音分析/合成系统和梅尔-倒谱分析使用频率规整。在频率规整函数中,我们直接使用了三个听觉尺度。我们使用WORLD声码器进行了主观评估,发现最佳的维度数是50左右。频率规整对音质的影响不显著。

频谱包络中的语音编码
窄带语音编码的研究已经取得了一些进展。线性预测编码(Linear predictive coding, LPC)[11]是其中的主要算法之一,线谱对(line spectral pairs, LSP)[12]在电信系统中得到了广泛的应用。倒频谱[13]也是一种基本算法,以及几种改进算法。首先,提出了广义倒谱分析[14],几年后又提出了梅尔-倒谱分析[15,16]。
mel -广义倒谱分析[17]广泛应用于语音合成研究。它有一个频率规整参数,用户可以优化窄带语音的参数。在全频带语音的SPSS中,也有关于规整线性预测的研究[18]。提出了GlottDNN[7]。
在梅尔倒谱分析中,梅尔对数谱近似(mel-log spectrum approximation, MLSA)滤波器[19]可以直接从梅尔倒谱合成语音波形。相反,在基于声码器的合成中,我们是从解码的频谱包络线合成语音。因此,我们建议在听觉尺度的基础上直接使用频率规整函数。编码的目的是为全频带语音分析/合成系统获得无损的频谱包络。

具体流程:
在这里插入图片描述

1.在频率规整中,有三种基于听觉尺度(梅尔、BARK、ERB尺度)的规整函数。

(1) Mel尺度:是最流行的尺度,是对音高的感知音阶。
在这里插入图片描述

(2)BARK尺度:是一种主观测量响度的心理声学量表。

在这里插入图片描述
(3)等效矩形带宽(ERB)尺度:也是一种心理声学量表,它给出了人类听觉系统中过滤器带宽的近似值。
在这里插入图片描述
这三种规整函数与对数规整函数相似,但主要区别在于低频段,图2显示了它们之间的区别。垂直轴被归一化为在20khz频率下表示1.0。规整函数决定了从低频到高频的分辨率分布。
在这里插入图片描述
2.在规整的频率轴上进行等间隔采样
在规整的频率轴上以等间隔采样。这一步有三个参数:下限和上限频率以及采样次数。我们设置下限频率为40(跟根据F0的下限为40Hz),设置频率上限为20000Hz,这是人类可听到的频率范围的上限。
采样次数与梅尔倒谱维数的最大值有关,并影响解码频谱包络的精度。我们使用WORLD,全频带语音的FFT大小为2048。根据抽样理论,我们知道有效值是1025,所以我们使用1024,它接近这个值。用简单线性插值法计算采样所用频率处的值。

3.谱包络的低维表示
对采样序列进行离散余弦变换(DCT),然后进行提升提取低维系数。提取的维数是决定编码效率的参数。当维数设置为N时,提取0 ~ N-1的系数,也就是将谱包络压缩到N/1025。提取的系数通过反向DCT变换到规整频率轴上的对数谱包络。通过规整函数的反函数将规整的频谱包络重新扭曲到线性频率轴上。

4.输入功率谱
梅尔倒谱分析的输入通常是由FFT计算的对数功率谱。然而,即使谱包络是时间不变的,计算的功率谱也取决于时间位置[24]。在语音分析/合成系统中,这种时变分量会导致音质恶化。为了克服这个问题,提出了一种时域静态的谱包络表示。
STRAIGHT[5]是最流行的声码器之一,它具有获得时间静态频谱包络的算法,它利用补偿时间窗去除时变分量。TANDEM- straight[24,25]和WORLD分别使用TANDEM窗口和CheapTrick[26,27]。其他算法,如f0自适应多帧积分分析[28]也被提出去除了时变成分。
本文展示基于功率谱谱包络提取,与由STRAIGHT和WORLD估计的频谱包络提取相比,该表征获得了最好的音质。

总结

一个是mel广义谱表示,转换成MLSA声码器能够合成的语音参数,就能直接合成语音;一个是对语音频谱包络进行编码,需要再解码成普参数再合成语音。

这篇关于谱包络之pysptk和pyworld的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195958

相关文章

希尔伯特 包络证明 未出现模态混合现象 是啥?

希尔伯特变换在信号处理中常用于求信号的包络,它是一种线性运算,能够将实数信号转换为其解析信号,即包含原信号及其希尔伯特变换的复数信号。解析信号的实部是原信号,虚部是原信号的希尔伯特变换。 包络证明 在信号处理中,"包络证明"通常指的是使用希尔伯特变换来估计信号的包络的过程,并且在这个过程中没有出现所谓的“模态混合”现象。 希尔伯特变换求包络: 信号的希尔伯特变换可以表示为解析信号的虚部,记作

【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第六篇)——“散布熵”及其MATLAB实现

今天讲散布熵,之前用了几篇文章分别讲述了功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、模糊熵、排列熵、包络熵这8种类型的熵: Mr.看海:【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量熵) Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——“近似熵”及其MATLAB实现 Mr.看海:【熵与特征提取】从

skimage求凸包、包络

给一幅分割 label,求某个物体的凸包(convex hull)[1]和包络(polygon)[2],所得是一幅 0/1 的 mask。凸包、包络都是包含物体的,分别在于包络不要求凸,可以更细致地勾勒物体形状。例: 从左到右:此物体的 segmentation mask、包络 mask、凸包 mask。包络、凸包两 mask 或可用于 masked dice loss[3]。 Code

Python环境下信号的包络谱分析

通过信号的频域分析可以获得轴承振动信号在频域内的频率成分分布,即信号的频谱,从中能够提取与轴承故障相关的频率成分幅值与相位,是信号分析中最根本的方法之一。常见的频域分析方法一般有:傅里叶谱分析、解调谱分析和倒频谱分析等。 傅里叶谱分析是可以直观展示信号在整个谱频率域分布状态的方法。通过傅里叶变换后,将信号从时域转换到频域,获得信号在频域上的分布特点,从而观察信号中的频率特征。在对轴承进行故障诊断

振动解调用的包络谱计算

1缘起 在振动分析中,对于一些高频频点的分析计算,使用包络谱技术,进而得到特化谱是最适宜的。我们看matlab信号分析中提供的一个实例: https://www.mathworks.com/help/signal/ug/compute-envelope-spectrum.html 轴承故障有4个故障频点,示例中模拟了一个外圈故障的数据,然后对BPFO附近的谱线进行分解,最终用于分析的BPFO

信号处理--matlab绘制包络谱图

包络谱图是一种描述信号振动特征的频谱图,它可以显示出信号振动的主要频率成分和振幅变化情况。在机械系统故障诊断和健康监测等领域中,绘制包络谱图是一种常用的分析方法,其主要作用有以下几个方面: 检测故障特征频率:包络谱图可以清晰地显示出信号中的故障特征频率,从而帮助工程师确定机械系统故障的类型和位置。举例来说,对于轴承故障诊断来说,包络谱图可以显示轴承外圈或内圈的特征频率,进而判断轴承是否存在故障

蜣螂优化算法(DBO)优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码

蜣螂优化算法是华大学沈波教授团队,继麻雀搜索算法(Sparrow Search Algorithm,SSA)之后,于2022年11月27日又提出的一种全新的群体智能优化算法。已有很多学者将算法用于实际工程问题中,今天咱们用蜣螂优化算法优化一下VMD参数。 同样以西储大学数据集为例,选用105.mat中的X105_BA_time.mat数据中1000个数据点。没有数据的看我这篇文章。西储大学轴承数

EMD+包络谱故障诊断

EMD是一种信号处理方法,用于将信号分解成多个本征模态函数(Intrinsic Mode Functions,IMF),每个IMF代表信号中的一个固有振动模式。VMD在处理非平稳信号和非线性信号方面具有较好的性能。 包络谱峭度是一种用于描述信号包络频谱形状的特征。它通过对信号包络谱的谱线斜率进行测量,反映了信号包络的变化程度。结合VMD和包络谱峭度,可以提取故障声音中的有用特征。 以下是基于V

通信原理包络是什么意思_低成本太赫兹收发器传输速度达115吉比特/秒 有望用于6G通信...

太赫兹频段是一种新的频率资源,有望用于未来的超高速无线通信——如第六代(6G)通信技术。德国和美国科学家研制出一种新型低成本太赫兹接收器,由一个二极管和一个专用的信号处理器组成,能在110米范围内以115吉比特(Gb)/秒的速率、0.3太赫兹(THz)的载波频率传输数据。相关论文发表于最新一期的《自然·光子学》杂志。第五代(5G)移动通信技术之后是6G。从网络性能指标看,6G无论是传输速率、端

多平面包络的圆柱体参数估计

多平面包络的圆柱体参数估计 场景 现有多个空间平面包络一个柱体,从圆柱顶端俯视如图所示: 中心位置为圆柱实际所在位置。现在已知这些平面的参数(每个平面的方程均为ax+by+cz+d=0形式, 参数为a,b,c,d),希望求解它们包络的这个圆柱的几何信息。 分析 三维空间中,圆柱的几何信息有两类表达方式: 圆柱中轴的方向向量 ( u , v , 1 ) (u,v,1) (u,v,1)和中