質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

2081閲覧

[Raspberry Pi]ALSAのエラー

退会済みユーザー

退会済みユーザー

総合スコア0

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/23 04:43

前提・実現したいこと

Python3でのリアルタイム音声プロット
ネットに落ちているコードを参考にし、pyqtgraph+PyAudioを使い実現しようとしています
しかし、以下のエラーに悩まされています。

発生している問題・エラーメッセージ

エラーメッセージ Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924 ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device' ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device' ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: No such file or directory ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock qt5ct: using qt5ct plugin Segmentation fault

該当のソースコード

Python3

1#プロット関係のライブラリ 2import pyqtgraph as pg 3from pyqtgraph.Qt import QtCore, QtGui 4import numpy as np 5import sys 6 7#音声関係のライブラリ 8import pyaudio 9import struct 10 11class PlotWindow: 12 def __init__(self): 13 #マイクインプット設定 14 self.CHUNK =1024*4 # 1度に読み取る音声のデータ幅 15 self.RATE = 48000 # サンプリング周波数 16 self.update_seconds = 50 # 更新時間[ms] 17 self.audio = pyaudio.PyAudio() 18 self.stream = self.audio.open(format=pyaudio.paInt16, 19 channels=1, 20 rate=self.RATE, 21 input=True, 22 frames_per_buffer=self.CHUNK) 23 24 #音声データの格納場所(プロットデータ) 25 self.data = np.zeros(self.CHUNK) 26 self.axis = np.fft.fftfreq(len(self.data), d=1.0/self.RATE) 27 28 #プロット初期設定 29 self.win = pg.GraphicsWindow() 30 self.win.setWindowTitle("SpectrumAnalyzer") 31 self.plt = self.win.addPlot() # プロットのビジュアル関係 32 self.plt.setYRange(0, 30) # y軸の制限 33 34 #アップデート時間設定 35 self.timer = QtCore.QTimer() 36 self.timer.timeout.connect(self.update) 37 self.timer.start(self.update_seconds) # 10msごとにupdateを呼び出し 38 39 def update(self): 40 self.data = np.append(self.data, self.AudioInput()) 41 if len(self.data)/1024 > 10: 42 self.data = self.data[1024:] 43 self.fft_data = self.FFT_AMP(self.data) 44 self.axis = np.fft.fftfreq(len(self.data), d=1.0/self.RATE) 45 # symbol="o", symbolPen="y", symbolBrush="b") 46 self.plt.plot(x=self.axis, y=self.fft_data, clear=True, pen="y") 47 48 def AudioInput(self): 49 ret = self.stream.read(self.CHUNK) # 音声の読み取り(バイナリ) CHUNKが大きいとここで時間かかる 50 #バイナリ → 数値(int16)に変換 51 #32768.0=2^16で割ってるのは正規化(絶対値を1以下にすること) 52 ret = np.frombuffer(ret, dtype="int16")/32768.0 53 return ret 54 55 def FFT_AMP(self, data): 56 data = np.hamming(len(data))*data 57 data = np.fft.fft(data) 58 data = np.abs(data) 59 return data 60 61 62if __name__ == "__main__": 63 plotwin = PlotWindow() 64 if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): 65 QtGui.QApplication.instance().exec_() 66 67

試したこと

プログラムを実行するには、sudo権限が必要とのことでしたので、実行時sudoをつけて実行しています
1)https://www.raspberrypi.org/forums/viewtopic.php?p=1166213

補足情報(FW/ツールのバージョンなど)

プログラミング初心者ですので、根本的に間違っている箇所があるかもしれません。

Raspberry Pi 3 で開発を行っています

よろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/04/23 05:06

質問は編集できます 追記修正しましょう teratailのバグで、内容が正常にアップロードされない時があるので、編集して保存しなおせばいいです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問