VS语音信号处理(6) C语言调用SoundTouch进行变速不变调工程实例
前言
语音识别相关算法一般在MATLAB上进行仿真验证与实验,在工程上一般还是在VS中进行实现落地,本系列将介绍语音信号处理在C语言中的一系列应用,后期将以此为基础,再落地移植到嵌入式平台。
今天介绍SoundTouch语音变速不变调算法的工程应用。SoundTouch是一个支持音频倍速播放的开源库。支持变速(加速减速)、变调、变速同时变调等三类功能模块,能够对流媒体实时操作,也能对音频文件操作。采用 32 位浮点或者 16 位定点,支持单声道或者双声道,采样率范围为 8k~48k。
自己之前应用sonic进行变速不变调处理时,也得到了了一定的效果,但相比于SoundTouch,整体效果确实差了一些,网上此前有同学也做过对比,但sonic实现简单,所以一开始采用的是sonic变速不变调,但后期主要由于sonic合成的时长控制,语音数据都不及SoundTouch,这次跑通了SoundTouch的变速不变调实例,做一下记录,网上资料主要基于 android或者是其他编译平台的经验介绍,自己的需求是需要C++进行调用,所以本工程基于SoundTouch的C源码实现的,(原工程已经迭代到VS2019,自己在VS2015上亲测可以跑通),话不多说,开干!
一. 源码下载即链接库准备
SoundTouch官网
SoundTouch地址:http://soundtouch.surina.net