gpt4 book ai didi

python - 如何避免Pygame将女性声音转换为男性

转载 作者:行者123 更新时间:2023-12-03 00:28:06 25 4
gpt4 key购买 nike

我正在尝试播放女性的音频文件,并使用python中的pygame库在印地语中说些什么。当我手动单击音频文件并收听时,它是一种女性声音,但是当我通过以下脚本播放它时,我得到了男性声音。我想这正在将女性频率转换为男性频率。为什么会这样,如何避免呢?

注意:我在Raspberry Pi上使用Raspbian。

这是音频文件的链接:https://drive.google.com/open?id=18pLBoCMxWZzB-RO3qqVmi0zREgJckb3M

我的编码:

import pygame.time
from pygame.mixer import *
pre_init()
init()
filename = 'speech.wav'
music.load(filename)
music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)

最佳答案

import pygame.time
from pygame.mixer import *
pre_init()
init(frequency=32000)
filename = 'speech.wav'
music.load(filename)
music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
pygame.mixer.init()采用 frequency参数。而且由于播放器默认为 22050,因此播放速度会很慢-使其听起来有所不同。您可以通过手动更改速度来规避此问题,或者可以从 music.load()获取实际速度,元数据应位于文件中。

否则,只需执行 ffmpeg -i speech.wav,您就会在底部看到正确的频率。

要更改音频文件的频率以匹配相同的频率,可以使用ffmpeg重新编码文件。现在,我不是ffmpeg的魔术师-只是遵循以下原则:
ffmpeg -i speech.wav -af asetrate="32000*1.38125,atempo=1/1.38125" output.wav

或使用Audacity或其他推荐的工具: https://superuser.com/questions/292833/how-to-change-audio-frequency

更改播放器频率的第二种方法是,在每个媒体文件之后调用 pygame.mixer.quit(),然后使用与您的新文件匹配的新频率重新启动它。或者最后,阅读文档,看看是否有可能在已经初始化的混频器实例上更改频率播放。这是我所不知道的。我只知道您原来的根本问题是:)

关于python - 如何避免Pygame将女性声音转换为男性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com