首页 > 解决方案 > 如何使用 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)

我希望男声可以转换为女声,但这似乎只能实现成奇怪的声音。

标签: pythonspectrumlibrosa

解决方案


使用天真的音调变换方法将男性语音转换为女性语音(或反向)听起来总是很尴尬。需要的是一种语音感知方法,通常称为语音再合成。

Praat是一个很棒的免费开源库,用于处理语音。它可以从 Python 中使用,使用一个名为Parselmouth的库。他们的一个例子展示了如何进行音高操作,包括一些示例音频。


推荐阅读