主要内容

在Simulink中使用相位声码器进行音调移动和时间膨胀

这个例子展示了如何使用相位声码器来实现音频信号的时间膨胀和音调移动。

示例模型

本例中的相位声码器由分析部分、相位计算部分和合成部分组成。分析部分由重叠的短时间窗口FFT组成。要转换的每一帧的开始时间比前一帧延迟一定的量跳数分析参数。合成部分由短时间带窗的IFFT和结果帧的重叠添加组成。合成过程中的重叠大小由合成啤酒花大小参数。

声码器输出的采样率与其输入的采样率不同。输出与输入采样率之比为合成啤酒花大小除以跳数分析.如果输出以输入采样率播放,则根据该比率延长或减少时间。如果输出以输出采样率播放,则声音持续时间与输入相同,但音调向上或向下移动。

为了防止失真,在相位计算部分对频域信号的相位进行了修改。在频域中,信号被分成幅度分量和相位分量。对于每个bin,计算帧之间的相位差,然后由bin的标称相位归一化。相位修改首先要求将归一化相位差展开。打开的差异乘以合成啤酒花大小除以跳数分析.逐帧累积差值,以恢复相位分量。然后将幅度和相位分量重新组合。

探索示例

在运行模型时,一旦模拟完成,音高比例的信号就会自动播放。Audio Playback块允许您在以下选项中进行选择距变化时间膨胀模式。

双击相位声码器块。改变合成hop-size参数设置为64,与分析hop-size参数。运行模拟并收听三个信号。音高缩放后的信号与原始信号具有相同的音高,时间拉伸后的信号与原始信号具有相同的速度。

接下来改变合成hop-size参数为48,小于分析hop-size参数。运行模拟并收听三个信号。音高标度信号的音高比原始信号低。经过时间拉伸后的信号比原始信号快。

要查看实现,右键单击相位声码器块并选择面具>面具下看

参考文献

A. D. Gotzen, N. Bernardini和D. Arfib。“相位声码器的传统实现:交易的技巧,”数字音频效果研讨会(DAFX-00)论文集.2000年12月7日至9日,意大利维罗纳。

Baidu
map