開発環境
OS Windows10のWSL (Windows Subsystem for Linux)
anacondaの仮想環境の**python **3.6.6
前提・実現したいこと
pythonで学ぶ実践画像・音声処理入門という書籍(リンク先)をもとに本書3ページに記載してある、
プログラム1-1(正弦波の生成)
python
1>>> import numpy as np 2>>> import matplotlib.pyplot as plt 3>>> import cis 4>>> t=np.arange(0,1,1/8000) 5>>> a=0.8 6>>> f=440 7>>> y=a*np.sin(2*np.pi*f*t)
を順番に実行しました。ちなみに、import cisのcisはは本書のサンプルプログラム用のパッケージ(リンク先)で、そのリンクをコピーして、自分自身のいるフォルダ内でcis.pyとして利用しました。
その後、作成した音データを出力するための関数である、
python
1>>> cis.audioplay(y,8000)
を実行したところ、
↓ ↓ ↓
発生している問題・エラーメッセージ
ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4693:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4693:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4693:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5181:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/mnt/c/Users/myusername/audiopractice0/cis.py", line 7, in audioplay play_obj = sa.play_buffer(yout, y.ndim, 2, fs) File "/home/myusername/.pyenv/versions/anaconda3-2020.02/envs/audio-practice0/lib/python3.6/site-packages/simpleaudio/shiny.py", line 61, in play_buffer sample_rate) _simpleaudio.SimpleaudioError: Error opening PCM device. -- CODE: -2 -- MSG: No such file or directory
と表示され、音は流れませんでした。(書籍によると、周波数440Hzのㇻの音が一秒聞こえるみたいです。)
試したこと
上記の
python
1>>> cis.audioplay(y,8000)
のcis.audioplayは、リンク先に書かれてある
python
1import numpy as np 2import simpleaudio as sa 3 4def audioplay(y,fs): 5 yout = np.iinfo(np.int16).max/np.max(np.abs(y))*y 6 yout = yout.astype(np.int16) 7 play_obj = sa.play_buffer(yout, y.ndim, 2, fs)
のaudioplay関数が実行されているので、
pythonインタプリンタでaudioplay関数内の実行
python
1>>> import numpy as np 2>>> import matplotlib.pyplot as plt 3>>> import cis 4>>> import simpleaudio as sa 5>>> t=np.arange(0,1,1/8000) 6>>> a=0.8 7>>> f=440 8>>> y=a*np.sin(2*np.pi*f*t) 9///ここから関数内の処理 10>>> yout = np.iinfo(np.int16).max/np.max(np.abs(y))*y 11>>> yout = yout.astype(np.int16) 12>>> play_obj = sa.play_buffer(yout, y.ndim, 2, fs)
したところ、最後の行のplay_obj = sa.play_buffer(yout, y.ndim, 2, fs)の実行後に上記と同じ
、発生している問題・エラーメッセージが表示され、エラーの原因がここにあることはわかりました。
しかし、これ以降が今のところ進展がありません。
どうか問題解決にご協力いただければと思っています。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。