0

我正在使用 matlab 并录制了元音的样本。我希望利用我现有的样本来合成音高为 150Hz(持续 5 秒)的元音。我最初认为我只需要在给定频率下对我现有的元音声音进行采样,但显然,这实际上不起作用。

所以,现在,我很困惑如何真正合成元音?

4

1 回答 1

0

一种可能的方法是:

  1. 取一个周期的样本(目视识别)。重要的是它以 0 值(或非常接近)开始和结束,以避免由每个端点的不连续性引起的开裂噪声。
  2. 根据需要对步骤 1 中提取的波形进行上采样或下采样,以获得所需的音高。上采样降低音高,下采样增加它。例如,您可以使用resample函数。
  3. 一个接一个地修补许多这些周期,直到获得所需的 5 秒持续时间。您可以repmat为此使用功能。
  4. 将 5 秒波形逐个元素乘以具有所需形状的时间包络。包络形状通常是从 0 到 1 的线性斜坡形式的快速攻击,然后是一个长的恒定值,然后是一个向 0 的递减斜坡。

为了增加真实感,您可以在包络的“恒定”部分引入缓慢的幅度变化(颤音效果)。您还可以在步骤 1 中提取一段信号,该信号不包含一个波形周期,而是几个波形周期。这些周期不会完全相同,这会给声音增加“温暖”。

于 2013-11-11T16:17:43.107 回答