基于LabVIEW的变声器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于LabVIEW的变声器设计
摘要:数字信号处理技术在语音信号的处理中具有十分重要的意义,是语音变换的处理方法之一。基于在语音变换时的技术要求,本文介绍了一种在基音同步叠加(PSOLA)算法的前提下,结合重采样技术实现语音变调不变速的方法,在分析变换理论及具体算法的基础上,利用LabVIEW编程实现语音的多种频率变换以及男∕女声变换。
关键词:基音同步叠加(PSOLA)算法; 重采样; 频谱搬移; 语音转换LabVIEW-based variable sound design Abstract: Digital signal processing technology is of great significance in speech signal processing, is one of the processing method of voice transformation. Based on the technical requirements in the voice change, this paper describes a synchronous overlap in pitch (PSOLA) algorithm premise resampling technique combining voice tone does not shift method, based on the analysis of specific algorithms transform theory and on the use of LabVIEW programming a variety of voice frequency conversion and male / female transformation.
Keyword: PSOLA; resampling; spectrum shifting; V oice conversion
0 引言
在音频信号处理中,将源说话人语音中的个性特征转换成目标说话人语音的个性特征的语音信号处理技术,称为语音变换技术。人的语音说话特征分为音段特性与超音段特性以及语言特性,音段特征包括谱包络,谱激励;超音段特性包括基频,时长,幅度[1]。
近几年来,语音信号处理技术在实用化方面取得了很多突破性进展,例如,随着在对声学语音学统计模型的深入研究,像语音识别,基于语音段的建模方法等逐渐成为研究热点。在语音合成方面,基于基音同步叠加(PSOLA)算法的波形编辑和拼接技术得到广泛应用[2],PSOLA算法的优势在于能在不改变语音音段的音质的基础上,能改变体现语音自然度的韵律特征的变化,进而获得更高的清晰度。
语音技术的研究难在语音合成,基音同步叠加(PSOLA)就是最具有代表性的一种方法,它既能保持语音的音段特性,又能在拼接时调整它的基频,强度和时长等超音段特性。本设计通过LabVIEW设计一个变声仪器,利用PSOLA算法与重采样技术结合,实现音频的变调不变速,以及多种频段变调。
1 变声原理
变声即实现音频的变调,进行频谱搬移,改变音频的频率[3]。为了实现变调不变速,可以先对信号进行变速不变调处理,再进行重采样,由于重采样能够同时改变语音的语速和音调,只要变调因子取值合适,就能使语速恢复正常,只有音调改变,即达到变调不变速的目的。为此,变声的首要过程就是对信号的变速不变调的处理。要实现语音的变速不变调有两种方法:一个是,用窗口函数截取语音信号样本,用傅里叶变换将时域信号转换到频域,然后将信号的频率往低频段压缩,再用傅里叶反变换从频域转换到时域,最后进行重采样(主要是抽点),就可达到语音的变速不变调目的;另一个是,用傅里叶变换实现语音的压扩,即用傅里叶变换处理语音信号得到对应的频谱分布,然后利用频谱变换函数处理这个频谱分布,得到变换频谱,最后利用傅立叶反变换将信号从频域转换到时域,就能得到变速不变调的语音。本设计就是利用第二个方法最终实现变声目的。实现变声的流程框图如图1所示:
图1 变声流程图
2 基音同步叠加(PSOLA)算法
PSOLA算法是利用短时傅里叶变
换重构信号的叠接相加法,分为三个部分:基音同步分析,基音同步修改和基音同步合成[4]。
2.1 基音同步分析
设采集的音频信号为X(n),选择合适的时窗分析窗口)(n h m 对原始合成单元做加窗处理,得到一组短时信号)(n x m
)()()(n X n t h n x m m m -= (1)
式(1)中,m t 为基音标注点,)(n h m 一般采用Hamming 窗,窗长大于原始信号的一个基音周期,因此窗间有重叠,窗长一般取原始信号基音周期的2~4倍,于是有,
))(()(p n n h n h m μ= (2)
式(2)中,)(n h 为归一化窗长,为窗
覆盖基音周期数的比例系数,p 为基
音周期。通常情况下,取2=μ,能够使合成简化。若要提高基频,令p 取为原始分析基音周期;若要降低基频,令p 取为合成基音周期,这样能够使 得合成简化。
2.2 基音同步修改
基音同步修改分为两个方向,一个是在频域内对信号进行音高的修改,另一个是在时域内对原始拼接单
元进行时长的修改。具体地说,对语音基频的修改是通过对合成单元标记间隔的增加,减少进行的;对语音时长的修改是通过合成单元同步标记的插入,删除进行的。
首先,进行语音基频的修改:对短时分析信号)(n x m 进行傅里叶变换,得到短时分析傅里叶变换)(n X m ,即
N n j N n m N
n j m m e n x e
X n X ππ21
2)()()(--=∑== (3)
其中 )10(-≤≤N n 又有公式:
)()()(n V n E n X m = (4)
其中,)(n E 为分析音段激励源信号频谱;)(n V 为频谱的谱包络部分。然后,按照音高调整系数对音段激励源信号频谱)(n E 进行拉伸或压缩,得到合成
激励源频谱)('n E .将)('n E 与原始频谱
的谱包络)(n V 相乘得到短时合成傅立
叶频谱)('
n X m :
)()()(''
n V n E n X m = (5)
最后,进行语音时长的修改:首先对短时合成傅立叶频谱)('
n X m 进行傅立叶逆变换,得到中间短时合成信号)('
n x m 。然后对原始拼接单元时长进行修改,得到新的中间短时合成信号
)('
n x p ,这样,新的基音标注p t 就取代