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
相关产品推荐
相关产品推荐

