Python | librosaを用いて信号を生成する(toneとchirp)

Python | librosaを用いて信号を生成する(toneとchirp)

今回は「信号の生成」として「tone」と「chirp」を使ってみます。

librosa.tone(特定のHzのcos波を生成)

公式ページはこちら

特定のHzのsin波を生成します。

# 440Hzを1秒間流す
tone = librosa.tone(440, duration=1)
IPython.display.Audio(data=tone, rate=sr)

サンプリングレートが 22050Hzの場合に、lengthを22050とすれば、1秒間の音声を生成することができます。(要は上記プログラムと同様)

# 440Hzを1秒間流す
tone = librosa.tone(440, sr=22050, length=22050)
IPython.display.Audio(data=tone, rate=sr)

librosa.chirp(特定のHzのcos波を生成)

「チャープ」または「サインスイープ」信号を構築します。

※チャープ信号:時間経過で周波数が大きく(小さく)なる信号(wiki

指数関数的なチャープ信号

指数関数的に音が上がります。

# 指数関数的なチャープ信号の生成(110Hzから7040Hz へ 3秒間で上昇)
chirp = librosa.chirp(fmin=110, fmax=110*64, duration=3)
IPython.display.Audio(data=chirp, rate=sr)

線形関数的なチャープ信号

線形関数的に音が上がります。

# 線形関数的なチャープ信号の生成(110Hzから7040Hz へ 3秒間で上昇)
chirp = librosa.chirp(fmin=110, fmax=110*64, duration=3, linear=True)
IPython.display.Audio(data=chirp, rate=sr)

今回は以上です。