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

时间:2019-01-20 16:40:12

标签: python audio pygame audio-player frequency-analysis

我正在尝试播放女性的音频文件,并使用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)

1 个答案:

答案 0 :(得分:0)

jmp

$esxitest = Get-VMHost esxitest.test.local | Get-VMHostLatestVersion Write-Host "Version:" $esxitest 带有一个frequency参数。而且由于播放器默认为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()获取实际速度,元数据应该在文件中。

否则,只需执行22050,您就会在底部看到正确的频率。

要更改音频文件的频率以匹配相同的频率,可以使用ffmpeg重新编码文件。现在,我不是ffmpeg的魔术师-只是遵循以下原则:

music.load()

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

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