首页 > 解决方案 > SimpleaudioError:打开 PCM 设备时出错

问题描述

我想使用 python 来播放某些音符,具体取决于我在代码中获得的一些结果。我正在使用 pydub,并在我的 google colab 文档中下载了一些 .wav 声音。但是,我有一个无法解决的错误。这是我的代码

from pydub import AudioSegment
from pydub.playback import play

note_do = AudioSegment.from_wav(r"/95328__ramas26__c.wav")
note_re = AudioSegment.from_wav(r"/95329__ramas26__d.wav")
note_mi = AudioSegment.from_wav(r"/95330__ramas26__e.wav")
note_fa = AudioSegment.from_wav(r"/95331__ramas26__f.wav")
note_sol = AudioSegment.from_wav(r"/95332__ramas26__g.wav")
note_la = AudioSegment.from_wav(r"/68437__pinkyfinger__piano-a.wav")
note_si = AudioSegment.from_wav(r"/95327__ramas26__b.wav")

for i in range(len(notes_fin)):
  if notes_fin[i]==0:
    play(note_do)
  if notes_fin[i]==1:
    play(note_re)
  if notes_fin[i]==2:
    play(note_mi)
  if notes_fin[i]==3:
    play(note_fa)
  if notes_fin[i]==4:
    play(note_sol)
  if notes_fin[i]==5:
    play(note_la)
  if notes_fin[i]==6:
    play(note_si)

if 语句基于我早期在代码中的内容。这是我遇到的错误:

SimpleaudioError                          Traceback (most recent call last)
<ipython-input-39-4842dad5bfc2> in <module>()
     12 for i in range(len(notes_fin)):
     13   if notes_fin[i]==0:
---> 14     play(note_do)
     15   if notes_fin[i]==1:
     16     play(note_re)

2 frames
/usr/local/lib/python3.6/dist-packages/simpleaudio/shiny.py in play_buffer(audio_data, num_channels, bytes_per_sample, sample_rate)
     59 def play_buffer(audio_data, num_channels, bytes_per_sample, sample_rate):
     60     play_id = _sa._play_buffer(audio_data, num_channels, bytes_per_sample,
---> 61                                sample_rate)
     62     return PlayObject(play_id)

SimpleaudioError: Error opening PCM device. -- CODE: -2 -- MSG: No such file or directory

谢谢!:)

标签: pythongoogle-colaboratoryplaybackpydub

解决方案


推荐阅读