私はニューラルネットワークを使って音声認識に取り組んでいます。そのためには、トレーニング用オーディオファイル(.wav)のスペクトログラムを取得する必要があります。どのようにそれらのスペクトログラムをPythonで入手するのですか?音声分析でスペクトログラムをプロットする
答えて
そうする方法はたくさんあります。最も簡単なのは、Kaggleの競技でKernelsで提案されている方法をチェックすることです。 This oneは、特に明確かつ単純であり、以下の機能を含む。入力は、wavファイルから抽出されたサンプルの数値ベクトル、サンプルレート、フレームのサイズ(ミリ秒単位)、ステップ(ストライドまたはスキップ)のサイズ(ミリ秒単位)および小さなオフセットです。よりさらに大きな大きな値を残し
from scipy.io import wavfile
from scipy import signal
import numpy as np
sample_rate, audio = wavfile.read(path_to_wav_file)
def log_specgram(audio, sample_rate, window_size=20,
step_size=10, eps=1e-10):
nperseg = int(round(window_size * sample_rate/1e3))
noverlap = int(round(step_size * sample_rate/1e3))
freqs, times, spec = signal.spectrogram(audio,
fs=sample_rate,
window='hann',
nperseg=nperseg,
noverlap=noverlap,
detrend=False)
return freqs, times, np.log(spec.T.astype(np.float32) + eps)
出力は、スペクトログラムが単調関数で再スケーリングされたことを除いて、SciPy manualで定義されているが(ログ())、これは、小さな値よりもはるかに大きな値を押下しますより小さい値。この方法では、仕様の極端な値が計算を支配することはありません。あるいは、いくつかの分位数で値を制限することもできますが、log(または平方根)を優先します。出力「いじめ」から極端な値を防ぐために、スペクトログラムの高さを正規化するために他の多くの方法、すなわちがあります:)
またfreq (f) : ndarray, Array of sample frequencies.
times (t) : ndarray, Array of segment times.
spec (Sxx) : ndarray, Spectrogram of x. By default, the last axis of Sxx corresponds to the segment times.
、あなたからgithub repoにtrain.pyとmodels.pyコードを確認することができますTensorflow example on audio recognition。
Here is another threadは、Pythonでスペクトログラムを構築する際の説明とコードを提供します。
あなたはfreqs、timesとspecによって返されるものを助けることができますか?私は文書を見たが、まだ混乱している。 @Oleg Melnikov – kks
@kks:出力の追加の説明を見てください:)それが助けてくれることを願っています。 –
あなたはスペクトログラムを作るためにnumpyの、scipyのダウンロードとmatplotlibのパッケージを使用することができます。以下の記事を参照してください。 http://www.frank-zalkow.de/en/code-snippets/create-audio-spectrograms-with-python.html
Scipyはこの目的に役立ちます。
import scipy
# Read the .wav file
sample_rate, data = scipy.io.wavfile.read('directory_path/file_name.wav')
# Spectrogram of .wav file
sample_freq, segment_time, spec_data = signal.spectrogram(data, sample_rate)
# Note sample_rate and sampling frequency values are same but theoretically they are different measures
使用matplotライブラリスペクトログラムを可視化する
import matplotlib.pyplot as plt
plt.pcolormesh(segment_time, sample_freq, spec_data)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()
- 1. フラッシュからAdobe CS4の音声分析を使用する
- 2. ビデオや音声を無音部分で分割する方法
- 3. 話し言葉や音声の音声ファイルを分析するためのライブラリはありますか?
- 4. Androidで音声から音声成分を検出する方法は?
- 5. Android音声テキスト音声音声
- 6. 音声数字の分類
- 7. 音声認識の音声を録音する
- 8. Javaで音楽を分析する
- 9. ブラウザで音声を録音する
- 10. Javaで音声を録音する
- 11. アプリケーションで音声合成音声を選択する方法
- 12. Twilio:Webアプリケーションで音声/音声会議機能を実装する
- 13. なぜ最近のニューラルネットワーク音声認識システムでスペクトログラムを使用するのですか?
- 14. Pythonでプロットを分析する
- 15. FASSTを使用した音声分離
- 16. 録音済みの音声を音声電話で再生する
- 17. 音声認識:通訳者の音声を音声から切り離す
- 18. Android音声保存テキスト音声
- 19. アンドロイド音声メディアプレーヤのIllegalStateExceptionが無音声
- 20. Googleの音声APIの音声
- 21. 音声認識音声認識 - Ionic 2
- 22. Android:音声レベルの視覚化による音声の録音
- 23. HTMLとJavascriptによる音声ストリーミングと音声録音
- 24. 音声録音アプリケーション
- 25. ウェブスピーチapi音声合成 - 音声リストを取得する
- 26. Androidで特定の音量で音声を録音するAPI
- 27. 音声、
- 28. すべての音声録音をアナログテレフォニーに送信する音声ロガー
- 29. Angular 5 + NodeJS + MongoDB - 音声/音声録音と再生を実装する方法
- 30. googleを使用してアプリケーションで音声録音を音声で録音できますか?
このPythonモジュールを参照してください:[音声認識](https://github.com/Uberi/speech_recognition) – jdoe
@kks、私の答えは貢献してきました君は? –
ええ...あなたの答えからいくつかの良いリソースを得ました。 @Oleg Meknikov – kks