语音调节 变调不变速
前面记录了语音变速不变调,之后我又把变调不变速实现了一下
这里先说一下大概流程,类似于变速不变调,首先函数传入三个值,分别为调节系数、语音的pcm数据、基因周期标记点
首先说升高频率: 降低频率我们可以通过先增加周期、再降采样、
降低频率:先减少周期、然后两个点之间加平均值
def pitch_adjust(cor, wave_data, point):wave_data = list(wave_data)wa = []# 小于1,代表降低频率,调低音调,则添加点,删除周期if cor < 1:decrease_num = len(point) - (len(point) // cor)desc = len(wave_data) - (len(wave_data) // cor)every = int(len(point) // decrease_num)for i in range(len(point) - 1):start = point[i]end = point[i + 1]if i % every == 0:continueelse:wa.extend(wave_data[start:end])every1 = int(len(wa) // desc)for j in range(len(wa)-2,1,-1):if j%every1 == 0:wa.insert(j,(wa[j-1]+wa[j+1])/2)else:continue# count = 0# for i in range(len(point) - 1):# if point[i] <= count:# count = 0# continue# start = point[i]# end = point[i + 1]# wa_da = wave_data[start:end]# add_num = len(wa_da)/cor - len(wa_da)# every = len(wa_da)/add_num## for j in range(len([wa_da][:])-1, 1, -1):# if j%every == 0:# count+=1# wa_da.insert(j, (wa_da[j-1]+wa_da[j+1])/2)# wa.extend(wa_da)elif cor == 1:return wave_dataelse:wa1 = []desc_num = len(point) - len(point) / cordesc1 = len(wave_data) - len(wave_data)/corevery = int(len(point)//desc_num)for i in range(len(point) - 1):start = point[i]end = point[i + 1]if i % every == 0:wa1.extend(wave_data[start:end])wa1.extend(wave_data[start:end])else:wa1.extend(wave_data[start:end])every1 = int(len(wa1)//desc1)print(desc1)print(len(wa1))for j in range(len(wa1)):if j%every1 == 0:continueelse:wa.append(wa1[j])wa = np.array(wa, dtype="int16")return wa
语音调节 变调不变速相关推荐
- 基于Matlab的语音变调不变速的实现(男声变女声、女声变男声)
最近遇到一个实现语音变调不变速的项目,查了很多资料,最后发现Matlab已经内置了一个非常简单的函数:"shiftPitch(wav,n)",可以实现男声女声之间的相互转化. 这里 ...
- python 音频变调不变速方法
变调的方法也可以分为三类:时域法.频域法.参量法. 1. 时域法 时域法中,Crochiere等人于1983年提出了重采样的方法,该方法是实现变速变调最简单.最常用的方法之一. 实际应用中,libro ...
- php升降调_升调降调、变调变速、变调不变速、变速不变调、添加回音、调节奏节拍教程...
利用变调变速功能,可实现音乐升调降调.变调变速.变调不变速.变速不变调.调整音乐节奏.调整音乐节拍.添加回音等处理,下面介绍操作方法.打开dts音效大师(官网下载:https://www.dts007 ...
- 【数字信号处理】MATLAB OLA(Overlap-Add)实现变调不变速/变速不变调
最近在做数字信号处理实验的大作业~发现很多变调不变速/变速不变调的文章都讲的没有很清楚,记录一下自己看了很多文章之后整理的思路. 第一步:分帧加窗 分帧: 设每一帧长度为NNN个点,总长度为LLL个点 ...
- 如何实现音频变速不变调、变调不变速、变速又变调?
变速和变调相关的音频处理库有SoundTouch,Sonic,RubberBand(https://breakfastquay.com/rubberband/). RubberBand暂时没有调试成功 ...
- Matlab音频变速不变调、变调不变速(Phase Vocoder)
其他文章有讲过一些方法,有OLA.WSOLA算法.LSEE-MSTFTM.Phase Vocoder(相位声码器)等等,但都是讲了个大概,没一个能说清楚的,代码就更没有了.找了一个国外的Phase V ...
- Phase Vocoder的补充完善,Matlab音频变速不变调、变调不变速
之前有站内朋友介绍了国外的Phase Vocoder,Matlab音频变速不变调.变调不变速(Phase Vocoder)_cyz0612的博客-CSDN博客_matlab变调不变速代码参考这篇文章, ...
- soundtouch之变调、变速、节拍
前一段日子在做变调不变速的算法,通过频域实现,谁知道到相位同步一直搞不定了,声音效果比较差.后来去偶然看到了soundtouch,这个强大的库让我为之振奋,现在已经完成,并做成了一个实时播放的demo ...
- 语音调节 变速不变调
这里贴出了 语音变速的代码 首先我们通过计算周期.然后进行标记,这两点在我的上一篇文章已经说过 这里讲一下得到基音标记点后预处理的内容 这里 首先对相邻比较近的点进行删除.我设置的阈值为 计算出的周期 ...
最新文章
- 一句话的设计模式(转)
- Codeforces 777E:Hanoi Factory(贪心+栈)
- 更改Tomcat虚拟内存大小
- 【转】构建Android平台Google Map应用
- Hexo 双线部署到 Coding Pages 和 GitHub Pages 并实现全站 HTTPS
- 「今天沾一口野味,明天地府相会!」AI如何抗击「野味肺炎」
- 【ES】ES 7.6 fuzzy 搜索 (模糊搜索)
- 用python把unix格式转换成windows格式
- deb 中标麒麟_注意:银河麒麟和中标麒麟不是同一个操作系统
- 【必修】人工智能原理 学习笔记(二)chapter 2 产生式系统
- 单片机无线视频监控系统设计
- 计算机键盘中英文,电脑键盘中英文切换键
- debian linux ntfs,让Debian支持ntfs文件系统读写
- python误差修正模型_误差修正模型ECM_eviews误差修正模型
- Android 主线程子线程执行关系
- AutoSAR系列讲解(实践篇)7.1-DaVinci Developer使用初探
- dna计算机开发,科学家正在开发DNA电脑
- 跨境电商| FaceBook 群发消息
- One-Hot Encoding
- 大数据告诉你何时何地买手机最划算!
热门文章
- 计算机体系结构 第三章 流水线(Pipeline)技术
- [码尚教育]Python全栈自动化VIP课程对标大厂标准(挑战年薪40万)
- CAN转光纤以太网设备的典型应用
- zabbix监控物理网卡流量
- Boot Camp 支持软件与系统要求对照表——用于手工下载Window 支持软件(驱动)
- 仿Bilibili iOS客户端 练习案例源码
- FBI 花 3 年暴力破解 iPhone X 密码,竟成一场空?法院:搜查令已过期,证据无效...
- 计算机软件可分为什么两类,软件系统一般分为()和应用软件两类。-问答题库...
- Arduino L293D电机驱动器扩展板教程
- 米家扫地机器人是石头代工的_扫地机器人哪个牌子好?推荐备受消费者喜爱的五大品牌...