当前位置:   article > 正文

python调音_调音和分贝

python 计算语音分贝值

虽然pydub没有直接停止audioSegment播放的方法,但根据this documentation的说法,它将音频分成半秒钟的块,以便于键盘中断。在

因此,如果我们获取音频并在一个try-except块中运行while loop,我们应该能够使用“Ctrl+c”中断播放

下面是一个工作示例代码,它根据here中的文档将音频平移到左声道或右声道,然后使用上述逻辑在“Ctrl+c”上停止播放from pydub import AudioSegment

from pydub.playback import play

song = AudioSegment.from_wav("music.wav")

# pan the sound 15% to the right

panned_right = song.pan(+0.15)

# pan the sound 50% to the left

panned_left = song.pan(-0.50)

#Play panned left audio

while True:

try:

play(panned_left)

except KeyboardInterrupt:

print "Stopping playing"

break

我们从播放循环中断时得到空闲会话提示。你可以根据自己的需要量身定做。在

^{pr2}$

这使您可以轻松地在pydub内使用内置的平移方法,还可以中断播放的中间流。希望这能帮你解决问题。在

编辑-1

上述解决方案可能会遇到while循环将无限期播放的问题(如果您不中断它)。它可能只对测试有用。在

另一个选择是使用pythonmultiprocess模块生成一个进程,该进程在不需要时播放音频片段terminate。这样可以在播放过程中提供更多的控制。在

这里有一个例子。在from multiprocessing import Process

def play_audio(seg):

play(seg)

if __name__ == '__main__':

p = Process(target=play_audio, args=(panned_left,))

p.start()

当您需要停止音频时,只需在IDE或程序中调用p.terminate()。在Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32

Type "copyright", "credits" or "license()" for more information.

>>> ================================ RESTART ================================

>>>

>>> p.terminate()

>>>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/354905
推荐阅读
相关标签
  

闽ICP备14008679号