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

PyCharm中用IPython.display.Audio无法播放音频,Jupyter可行求助

PyCharm中播放音频的解决方法

直接用IPython.display.Audio在PyCharm普通运行环境里没反应,是因为这个组件是为Jupyter Notebook/Lab设计的,依赖Jupyter的前端渲染能力生成播放界面,PyCharm的常规脚本运行环境不支持这种交互渲染,所以代码不报错但没有音频播放或界面显示。

下面是几种可行的解决办法:

方法1:使用PyCharm内置的Jupyter Notebook功能

PyCharm自带对Jupyter Notebook的支持,直接在PyCharm里创建.ipynb文件运行代码即可获得和Jupyter一样的音频播放界面:

  • 右键你的项目 → 选择New → Jupyter Notebook
  • 将原代码粘贴到新建的Notebook单元格中,运行单元格就能看到音频播放控件。

方法2:将音频保存为文件后播放

通过第三方库把生成的音频数据保存为WAV文件,再调用音频播放库直接播放,或者手动打开保存的文件:

示例代码(使用soundfile+simpleaudio)

import numpy as np
import soundfile as sf
import simpleaudio as sa

seconds = 1
sample_rate = 4000
t = np.arange(int(seconds * sample_rate)) / sample_rate
x = np.sin(2 * np.pi * 440 * t)
# 转换为音频常用的16位整数格式
x = (x * 32767).astype(np.int16)

# 保存为WAV文件
sf.write("test_audio.wav", x, sample_rate)

# 直接播放音频
play_obj = sa.play_buffer(x, 1, 2, sample_rate)
play_obj.wait_done()  # 阻塞直到播放完成

运行前需要安装依赖库:

pip install soundfile simpleaudio

示例代码(使用pygame)

import numpy as np
import pygame

seconds = 1
sample_rate = 4000
t = np.arange(int(seconds * sample_rate)) / sample_rate
x = np.sin(2 * np.pi * 440 * t)
x = (x * 32767).astype(np.int16)

# 初始化pygame音频 mixer
pygame.mixer.init(frequency=sample_rate, size=-16, channels=1)
sound = pygame.sndarray.make_sound(x)
sound.play()
# 等待播放结束
pygame.time.wait(int(seconds * 1000))
pygame.quit()

安装依赖:

pip install pygame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:25:19