🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

Q&A

解決済

1回答

553閲覧

pythonで音響解析で時間をより細かく表示したい

iwakuratomomi50

総合スコア8

Python 3.x

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

0グッド

1クリップ

投稿2019/11/29 04:20

編集2019/11/29 04:27

前提・実現したいこと

特定の周波数のパワーが他と比べて大きくなった瞬間の時間を取得したいです.
録音したファイルをスペクトログラムにし表示させたいのですが,サンプリングレート96000で録音したファイルだと,最大1/96000秒間隔で表示できると考えています.
いかし現状,時間間隔が 0.001333程度であり,この時間間隔をより細かくできる方法があればご教示しただけると幸いです.

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

Pxx, freqs, bins, im = plt.specgram(left, Fs=fs, cmap = 'jet', mode='magnitude') の部分で変換しているようで,このうちのbinsに時間が格納されており,現状 0.0013333333333333333,0.0026666666666666666... のようになっています.この間隔を狭くしたいのです.

該当のソースコード

python

1#スペクトログラム 2import matplotlib.pyplot as plt 3import soundfile as sf 4from scipy.io.wavfile import read 5 6 7if __name__ == "__main__": 8 wavfile = "sample.wav" 9 10 fs, data = read(wavfile) 11 12 print ("Sampling rate :", fs) 13 14 if (data.shape[1] == 2):#配列が2つある間だけ 15 left = data[:, 0] 16 right = data[:, 1 ] 17 18 19 20 plt.figure("FFT解析",figsize=(12,7)) 21 plt.subplots_adjust(wspace=0.4, hspace=0.6)#空白作成 22 23 plt.subplot(211) 24 plt.title('1-mic(based surface)', size=20) 25 Pxx, freqs, bins, im = plt.specgram(left, Fs=fs, cmap = 'jet', mode='magnitude') 26 x1, x2, y1, y2 = plt.axis() 27 plt.axis((x1, x2, y1, y2)) 28 plt.xlabel("time[s]") 29 plt.ylabel("Frequency [Hz]") 30 31 plt.subplot(212) 32 plt.title('2-mic', size=20) 33 Pxx, freqs, bins, im = plt.specgram(right, Fs=fs, cmap = 'jet', mode='magnitude') 34 x1, x2, y1, y2 = plt.axis() 35 plt.axis((x1, x2, y1, y2)) 36 plt.xlabel("time[s]") 37 plt.ylabel("Frequency [Hz]") 38 39 plt.show() 40 plt.close()

補足

厚かましくて申し訳ありませんがリアルタイムで録音しながら上記のことが可能な方法をご存じの方おられましたらそちらも教えていただけると幸いです.

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

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

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

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

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

guest

回答1

0

ベストアンサー

そもそも周波数スペクトルってのはある程度の波形データの蓄積がないと出しよーがない話で、細分化してしまうとどんどん精度がなくなってきてしまうわけですが。

まあ、計算上は出せるかもしれないけど、それを出したところで、どんだけ意味があるのか考えたらどうでしょう

投稿2019/11/29 04:36

y_waiwai

総合スコア88038

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

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

y_waiwai

2019/11/29 04:40

まあ、ナイキスト周波数定理、って出したほうが説明はかんたんですなw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問