見出し画像

【Python】音声の録音と再生をするsounddeviceを使ってみる記事。(サンプルプログラムあり)

`sounddevice` モジュールはオーディオの録音と再生に使用されるライブラリです。以下に、`sounddevice` を使った簡単なプログラムの例を示します。この例では、マイクから数秒間のオーディオを録音し、その後すぐに再生するプログラムを作成します。

オーディオ録音と再生の基本的なプログラム

import sounddevice as sd
import numpy as np

# 録音設定
fs = 44100  # サンプリングレート(Hz)
duration = 5  # 録音時間(秒)

print("録音を開始します...")
myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)
sd.wait()  # 録音が終了するまで待機
print("録音が完了しました。再生を開始します...")

# 録音データの再生
sd.play(myrecording, fs)
sd.wait()  # 再生が終了するまで待機

このプログラムは、次の手順で動作します:

  1. `sounddevice` モジュールをインポートします。

  2. サンプリングレート(一秒あたりのサンプル数)と録音時間を設定します。

  3. `sd.rec` 関数を使ってオーディオを録音します。この関数は NumPy 配列にオーディオデータを保存します。

  4. `sd.wait` 関数を使って録音が終了するまでプログラムの実行を待機します。

  5. 録音されたオーディオデータを `sd.play` 関数で再生します。

  6. 再生が終了するまで再び待機します。

注意点

  • このプログラムを実行するには、`sounddevice` モジュールがインストールされている必要があります。これは `pip install sounddevice` コマンドでインストールできます。

  • オーディオインターフェイスやマイクの設定によっては、追加の設定が必要になる場合があります。

  • 録音と再生には、コンピュータにマイクとスピーカーが接続されている必要があります。

(プログラムを実行すると最初にprint関数が実行されて「録音を開始します...」と出力されます。そこから5秒間、録音されるので、なにか喋ってみます。それから録音終了後に、再度、print関数が実行されます「録音が完了しました。再生を開始します...」。その後に、さきほど喋った音声が同じ品質(音声のスピードとピッチが同じ)で、再生されます。すごい! 便利! なんか、すごいっすね、sounddevice!!)


よろしくお願いしますッ!