使用Librosa生成chirp音频无声音输出的问题求助
问题:VS环境下运行Librosa音频代码无声音输出
在Visual Studio中运行以下Python代码时,无法听到任何声音:
import librosa from IPython.display import Audio sr = 22050 y_sweep = librosa.chirp(fmin=librosa.note_to_hz('C3'), fmax=librosa.note_to_hz('C5'), sr=sr, duration=5) Audio(data=y_sweep, rate=sr)
- Windows扬声器正常,音量已调至最大,Windows Media Player可正常播放音频
- 代码无报错信息
- 调用
librosa.display.specshow的代码功能正常,但同样无声音输出 - 该代码取自Librosa官方示例,官网示例的播放按钮可正常发声
解决方案
核心原因:IPython.display.Audio仅适配IPython环境
IPython.display.Audio是为Jupyter Notebook/Lab等IPython交互式环境设计的,在Visual Studio的普通Python脚本运行环境中,它无法直接触发系统音频播放。
可行解决方法:
方法1:使用第三方音频播放库替代
用simpleaudio这类专门的音频播放库,示例代码:import librosa import simpleaudio as sa sr = 22050 y_sweep = librosa.chirp(fmin=librosa.note_to_hz('C3'), fmax=librosa.note_to_hz('C5'), sr=sr, duration=5) # 将音频数据转换为16位整数格式(simpleaudio要求的格式) audio_data = (y_sweep * 32767).astype('int16') # 播放音频 play_obj = sa.play_buffer(audio_data, 1, 2, sr) # 等待播放完成 play_obj.wait_done()安装依赖:
pip install simpleaudio方法2:在VS的Jupyter Notebook环境中运行代码
在Visual Studio中创建Jupyter Notebook文件(.ipynb),将代码复制到笔记本单元格中运行,此时IPython.display.Audio会生成播放按钮,点击即可正常播放。方法3:将音频保存为文件后播放
用Librosa配合soundfile将生成的音频保存为WAV文件,再用系统播放器打开:import librosa import soundfile as sf sr = 22050 y_sweep = librosa.chirp(fmin=librosa.note_to_hz('C3'), fmax=librosa.note_to_hz('C5'), sr=sr, duration=5) # 保存为WAV文件 sf.write('sweep_audio.wav', y_sweep, sr)安装依赖:
pip install soundfile
内容的提问来源于stack exchange,提问作者Jacob Stern
相关产品推荐
相关产品推荐

