语音变速和变调的实现

本文介绍了实现语音变速变调的PSOLA算法,包括基音同步分析和标注、基音同步修改以及基音同步叠加的过程。通过对基音周期的调整,达到改变音高和音长的效果,可用于语音变声。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现变声的效果主要有两种方式,一种是对语音的本身进行修改,通过修改语音的一些特性达到变声的效果;另一种则是语音克隆,直接将输入语音特性转化成模板的语音特性。这里我们介绍第一种方式,语音克隆后面有机会再介绍。其实如果没有特定的变声需求,直接用不同的采样率读取原来的文件就会产生变声效果。

基音同步叠加(Pitch Synchronous Overlap Add, PSOLA, 发音是:劈死欧拉)是一种将语音在频域(FD-PSOLA)或者时域(TD-PSOLA)进行调整的算法,经常用于语音波形合成,这里将其稍微修改用于语音变声。其主要原理是通过改变基频间隔的时间长度来调整音高,通过重复或者省略一些基音片段来调整音长,达到变速和变调的效果改变语音。PSOLA算法分为基音同步分析和标注、基音同步修改和基音同步叠加几个部分。下面分别进行介绍。

基音同步分析和标注

基音同步分析和标注是为了确定语音单元基音周期的位置,语音分为清音段和浊音段,对于不同的语音段标注方式也不同。对于浊音段进行正常的标注,对于清音段直接将其基音周期设定一个确定的常数。进行基音标注首先要求基音周期,这部分内容在花式估计基音周期里面已经介绍过了,这里就不再赘述。一般基音周期估计后一般会经过中值滤波进行平滑处理。至此,基音同步分析的过程就结束了。

下面介绍基于动态规划的标注过程。再获得每一帧的基音周期后,可以根据基音周期的值直接将语音分为浊音段和清音段。对每个浊音段进行如下的操作:

  • 找出浊音段的最大峰值,该峰值对应的位置t就是一个基音脉冲的标注点

  • 取出该浊音段最大峰值对应的基音周期T

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值