谱包络之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声码器能够合成的语音参数,就能直接合成语音;一个是对语音频谱包络进行编码,需要再解码成普参数再合成语音。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/86320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个保新标 | 《信息安全技术 敏感个人信息处理安全要求》(征求意见稿)发布

8 月 9 日,全国信息安全标准化技术委员会公开发布关于国家标准《信息安全技术 敏感个人信息处理安全要求》(征求意见稿)(以下简称《标准》)的通知,面向社会广泛征求意见。 《标准》的制定背景是为支撑《个人…

k8s pod启动报错: no route to host

k8s pod kuboard启动报错 查看pod命令 kubectl get pods -A kubectl get pods --all-namespaces查看报错pod日志 命令: kubectl logs -f -n namespace nametime"2023-08-09T13:40:3608:00" levelerror msg"不能获取 AgentEndpointsGet \"http:/…

【论文阅读】基于深度学习的时序预测——FEDformer

系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…

如何实现Excel中多级数据联动

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在类Excel表格应用中,常用的需求场景是根据单元格之间的数据联动&…

计算机视觉的应用10-图片中的表格结构识别与提取实战

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用10-图片中的表格结构识别与提取实战,表格结构识别在信息处理领域中具有广泛应用,但由于表格的多样性和复杂性,以及难以准确解析的布局和格式,传统的方…

读《Flask Web开发实战》(狼书)笔记 | 第1、2章

前言 2023-8-11 以前对网站开发萌生了想法,又有些急于求成,在B站照着视频敲了一个基于flask的博客系统。但对于程序的代码难免有些囫囵吞枣,存在许多模糊或不太理解的地方,只会照葫芦画瓢。 而当自己想开发一个什么网站的时&…

ad+硬件每日学习十个知识点(26)23.8.6 (DCDC的降压电路、升压电路、降压-升压电路,同步整流,选型考虑同步、隔离)

文章目录 1.DCDC的降压原理2.DCDC的升压原理3.DCDC的升压和降压原理4.什么是肖特基二极管造成的死区电压?5.MOS管有死区电压么?6.DCDC的同步整流(用MOS管取代整流二极管,避免死区电压的影响)7.DCDC选型——同步与非同步…

分清性能测试,负载测试,压力测试这三个的区别

做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …

AI:02-基于深度学习的动物图像检索算法的研究

文章目录 一、算法原理二、代码实现三、实验结果四、总结深度学习在计算机视觉领域中的应用越来越广泛,其中动物图像检索算法是一个重要的应用场景。本文将介绍一种基于深度学习的动物图像检索算法,并提供相应的代码实现。 一、算法原理 本算法采用卷积神经网络(Convolutio…

Selenium 根据元素文本内容定位

使用xpath定位元素时,有时候担心元素位置会变,可以考虑使用文本内容来定位的方式。 例如图中的【股市】按钮,只有按钮文本没变,即使位置变化也可以定位到该元素。 xpath内容样例: # 文本内容完全匹配 //button[text(…

勘探开发人工智能技术:机器学习(6)

0 提纲 7.1 循环神经网络RNN 7.2 LSTM 7.3 Transformer 7.4 U-Net 1 循环神经网络RNN 把上一时刻的输出作为下一时刻的输入之一. 1.1 全连接神经网络的缺点 现在的任务是要利用如下语料来给apple打标签: 第一句话:I like eating apple!(我喜欢吃苹…

Mac M1 安装Oracle Java 与 IEDA

文章目录 1 官网下载2 安装IDEA参考 1 官网下载 https://www.oracle.com/ 使用finder中的拖拽进行安装即可 2 安装IDEA https://www.jetbrains.com/zh-cn/idea/download/?sectionmac 同样的,下载完后拖拽安装即可 参考 Mac M1 安装Java 开发环境 https://blog.…

倒数纪念日-生日提醒事项时间管理倒计时软件

倒数纪念日​​​​​​​是一款功能强大的时间管理、事项提醒软件。帮你更好的管理倒数日、纪念日、生日、节假日、还款日等各种重要日子,通知提醒,让你不再错过生命中的每一个重要日子。 【功能简介】 分类管理:倒数日、纪念日、自定义分类…

【VB6|第22期】用SQL的方式读取Excel数据

日期:2023年8月7日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

4.1 Windows终端安全

数据参考:CISP官方 目录 安全安装保护账户安全本地安全策略安全中心系统服务安全其他安全设置软件安全获取 一、安全安装(以安装windows系统为例) 选择合适的版本 商业版本:家庭版、专业版、专业工作站版、企业版特殊版本&…

哪些CRM的报价公开且透明?

企业在选型时,会发现很多品牌的CRM系统价格并不透明,往往都是需要跟产品顾问沟通后才能了解。下面推荐一款价格实在的CRM系统,所有报价公开透明,那就是Zoho CRM。 Zoho CRM是什么? Zoho CRM是一款在线CRM软件&#x…

音视频研发分享:关键帧截图+wasm快照--我又做了一件有益于社会的事情

音视频研发分享:关键帧截图wasm快照--我又做了一件有益于社会的事情 简单的一个视频设备快照功能到底有多费事多费电?新的方法有方法! 省了多少电? 简单的一个视频设备快照功能到底有多费事多费电? 以前,我…

leetcode24. 两两交换链表中的节点

题目:leetcode24. 两两交换链表中的节点 描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 思路&…

MapReduce基础原理、MR与MPP区别

MapReduce概述 MapReduce(MR)本质上是一种用于数据处理的编程模型;MapReduce用于海量数据的计算,HDFS用于海量数据的存储(Hadoop Distributed File System,Hadoop分布式文件系统)。Hadoop MapR…

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个链表数组,数组里的链表都是升序的,让我们合并这些链表,要求合并之后还是升序的。 最简…