首页 > 解决方案 > 如何用python播放声音而没有while循环

问题描述

我想通过我的 python 脚本播放声音:

我使用了 win_sound pyglet playsound 和 pygame 但它不想工作。

有没有办法做到这一点。

目录是 C:Users/Random/Folder/OtherFolder/Sound1

标签: python-3.xaudio

解决方案


您可以librosa用于加载音频数据和sounddevice播放音频。

像这样:

import time
import librosa
import sounddevice as sd


def play_audio(audio_path, sampling_rate=44100):

    audio, sampling_rate = librosa.load(audio_path, sr=sampling_rate)
    
    duration = librosa.core.get_duration(audio, sr=sampling_rate)
    
    # play the audio
    sd.play(audio, sampling_rate)
    # wait until the audio is done playing
    time.sleep(duration)



play_audio('./test.mp3')

此外,如果此函数导致程序的其余部分冻结(因为time.sleep),您需要像这里play_audio一样在单独的地方运行该函数。thread


推荐阅读