我现在正在学习构建一个基于 Tacotron-2 的 TTS 项目。
这里,函数中的原始代码save_wav(wav, path, sr)有一个步骤,通过使用将 numpy 数组保存到 .wav 文件
wav *= 32767 / max(0.01, np.max(np.abs(wav)))
scipy.io.wavfile.write(path, hparams.sample_rate, wav.astype(np.int16))
Run Code Online (Sandbox Code Playgroud)
但是,在使用 获得 numpy 数组后wav *= 32767 / max(0.01, np.max(np.abs(wav))),我想将其转换为 .mp3 文件,以便更容易将其作为流响应发送回来。
现在,我可以将 .wav bytes 对象转换为 .mp3 文件,但问题是我不知道如何将 numpy 数组转换为 .wav bytes 对象。
我搜索了一下,发现我似乎需要为 numpy 数组设置一个标头,但在我研究的几乎所有帖子中都表明使用像scipy.io.waveand之类的模块audioop,它首先将 numpy 数组保存到 .wav 文件,然后with open('filename.wav', 'rb')。
(这是scipy.io.wavfile.write 模块的链接filename,其中参数应该是字符串或打开文件句柄,根据我的理解,生成的 .wav 文件将保存在磁盘上。)
谁能就如何实现这一目标提出任何建议?
我是音频编辑库 - Pydub 的新学习者。我想使用 Pydub(比如 .wav/mp3 格式文件)更改一些音频文件的播放速度,但我不知道如何制作。我看到的唯一可能解决这个问题的模块是 effect.py 中的加速模块。但是,没有解释我应该如何称呼它。
谁能解释一下如何在 Pydub 中完成这项任务?非常感谢!
(一个相关的问题:Pydub - 如何在不改变播放速度的情况下改变帧速率,但我想要做的是在不改变音频质量的情况下改变播放速度。)