You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pydub播放音频无声音问题求助

解决pydub播放音频无声音的排查步骤
  • 确认ffmpeg环境变量配置
    虽然已安装ffmpeg,但需确保其bin目录路径已添加到系统PATH环境变量中。在终端输入ffmpeg -version,若能正常输出版本信息则配置正确;若不行,手动添加路径后重启VS Code和终端。

  • 验证pydub读取的音频数据是否正常
    先检查音频文件是否被正确加载,打印关键参数判断:

    from pydub import AudioSegment
    audio = AudioSegment.from_file("C:/Users/Sinscere/Desktop/Piano/a#6.ogg")
    print(f"时长: {audio.duration_seconds}s")
    print(f"采样率: {audio.frame_rate}Hz")
    print(f"声道数: {audio.channels}")
    

    若参数正常输出,说明读取环节无问题;若报错,需重新检查文件路径或ffmpeg配置。

  • 转换音频格式后重试播放
    将OGG文件转为WAV格式(pydub对WAV支持更稳定),再尝试播放:

    from pydub import AudioSegment
    from pydub.playback import play
    
    audio = AudioSegment.from_file("C:/Users/Sinscere/Desktop/Piano/a#6.ogg")
    audio.export("test.wav", format="wav")
    play(AudioSegment.from_file("test.wav"))
    
  • 更换播放后端
    避开pydub自带播放逻辑,直接用simpleaudio处理音频数据:

    from pydub import AudioSegment
    import simpleaudio as sa
    
    audio = AudioSegment.from_file("C:/Users/Sinscere/Desktop/Piano/a#6.ogg")
    # 转换为simpleaudio兼容的格式:16位整数、单声道
    audio_data = audio.set_sample_width(2).set_channels(1).raw_data
    play_obj = sa.play_buffer(audio_data, num_channels=1, bytes_per_sample=2, sample_rate=audio.frame_rate)
    play_obj.wait_done()
    

    或改用pygame播放:

    import pygame
    pygame.mixer.init()
    sound = pygame.mixer.Sound("C:/Users/Sinscere/Desktop/Piano/a#6.ogg")
    sound.play()
    pygame.time.wait(int(sound.get_length() * 1000))
    
  • 检查系统音频设置
    确认系统默认音频输出设备未静音、音量正常,且未意外切换到其他设备(如蓝牙耳机、显示器音频),可在Windows声音设置中切换到当前使用的扬声器。

  • 排查终端权限问题
    尝试以管理员身份运行VS Code,或在系统自带的命令提示符/Powershell中执行代码,排除终端权限限制导致的音频输出异常。

内容的提问来源于stack exchange,提问作者Sinscere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:17:24