python - 如何使用 librosa 将女性声音转换为男性声音?
问题描述
如何使用 librosa 将男声转换为女声?
我试图将男声转换为女声。我先用 librosa 读取 wav 文件,然后用 STFT 处理音频时间序列,希望可以调整频谱(增加低频部分)以达到目的。
import matplotlib
matplotlib.use('TkAgg')
import librosa.display
y, sr = librosa.load("/Users/wu4mac/PycharmProjects/SpeechRecognition/weather.wav")
a = librosa.stft(y)
length = len(a)
r_a = a[10:length-10]
b = librosa.istft(r_a)
librosa.output.write_wav("stft.wav", b, sr)
我希望男声可以转换为女声,但这似乎只能实现成奇怪的声音。
解决方案
使用天真的音调变换方法将男性语音转换为女性语音(或反向)听起来总是很尴尬。需要的是一种语音感知方法,通常称为语音再合成。
Praat是一个很棒的免费开源库,用于处理语音。它可以从 Python 中使用,使用一个名为Parselmouth的库。他们的一个例子展示了如何进行音高操作,包括一些示例音频。
推荐阅读
- javascript - 为什么 vscode 不将反应代码识别为反应 javascript 而是将其格式化为 vanilla javascript
- python - 当我运行 Celery worker 时出现 AttributeError
- tsql - 查询表中的1到1条记录
- java - 当日期保存为字符串时,来自 Firebase 实时数据库的基于日期的查询
- oracle-apex - 调用 APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS 时出错
- docker - 具有外部包依赖的Golang测试没有通过Gitlab Ci,而是通过本地
- c++ - 在 xcode 中使用 djinni 时“使用未声明的标识符”“noreturn”
- winapi - 如何只安装 mt.exe?
- rest - 使用 REST 返回一个值
- reactjs - nextjs中“页面”内的CSS