Pythonで音声解析をしよう
本記事では,Pythonの音声解析のいろはを順を追って紹介していきます.
事前条件
- Pythonがインストール済み
- cmdからpyまたはpythonでpythonのインタプリタが起動できる
私の環境
- Windows10 Home 64bit
- Python3.7.4
- Visual Studio Code(VSCode)
- Vim(マジで好き)
必要なPythonライブラリ
- numpy
- wave
- matplotlib.pyplot
インポート設定
import numpy as np
import matplotlib.pyplot as plt
第一章 ~データの用意~
適当な音声データを読み込んで解析するのが流れとしては良いと思いますが,まずは簡単のためにデータを作成します.正弦波を以下のようにして作ってみましょう.
正弦波の作成
def make_wave():
fs = 48000 # サンプリングレート
f = 10 # 周波数
t = np.linspace(0,1,fs) # 1秒を48,000分割
y = np.sin(2*np.pi*f*t) # 正弦波を作成
return y
後に再利用したいので,関数にしておきます.
第二章 ~プロットしてみよう~
では,用意した波をプロットして外観を見てみましょう.
プロット
sig = make_wave()
plt.plot(sig)
plt.show()
たしかに,10回振動する波が作成されていますね.
このとき,横軸は単純にデータ数なので,0~48,000まであります.
第三章 ~解析編の前に~
ここまでのコードをまとめると,以下のようになります.
まとめ
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
def make_wave():
fs = 48000
f = 10
t = np.linspace(0,1,fs)
y = np.sin(2*np.pi*f*t)
return y
def main():
sig = make_wave()
plt.plot(sig)
plt.show()
if __name__ == '__main__':
main()
非常に単純なコードですが,これだけでデータの作成,確認ができちゃいます.
pythonって便利ですね.
次回,解析についてまとめるので,今回は短いですが以上で失礼します.
次章 ~Fast Fourier Transform~
高速フーリエ変換について