見出し画像

【Python】sounddeviceの再生のためのplay関数について知りたいときのための記事

`sounddevice` ライブラリのをimport sounddevice as sdとしたとき、play関数は`sd.play`として使用します。
`sd.play` 関数はオーディオデータの再生に使用されます。この関数を使って、NumPy配列に格納されたオーディオデータをスピーカーや他のオーディオ出力デバイスを通して再生することができます。

`sd.play` 関数の基本的な使用法

`sd.play` 関数は以下のように使用されます:

import sounddevice as sd

# 再生するオーディオデータ(NumPy配列)
myrecording = # ... ここにNumPy配列のオーディオデータをセット

# サンプリングレート(Hz)
fs = 44100

# オーディオ再生
sd.play(myrecording, fs)
sd.wait()  # 再生が完了するまで待機

パラメータ

  • `data`: 再生するオーディオデータ。このデータはNumPy配列で、通常は `sd.rec` 関数などで録音されたデータです。

  • `samplerate`: サンプリングレートをHz単位で指定します。データの録音時に使用したサンプリングレートと一致させる必要があります。

追加オプション

  • `device`: 再生デバイスを指定します。デフォルトではデフォルトの出力デバイスが使用されます。

  • `blocking`: 再生が非同期で行われるかどうかを指定します。`True` に設定すると、再生が完了するまで関数呼び出しがブロックされます。

注意点

  • `sd.wait()`: `blocking=False` が設定されている場合(デフォルト)、この関数を使って再生が完了するまでプログラムの実行を停止することができます。

  • 再生するオーディオデータは、適切にサンプリングレートとフォーマットが設定されたNumPy配列である必要があります。

  • オーディオデバイスや環境によっては、適切な再生設定を見つけるためにいくつかの試行錯誤が必要になる場合があります。

`sd.play` は手軽にオーディオデータを再生するための便利な関数ですが、正しいデータ形式と設定を用いることが重要です。

(なるほど。録音の時のsamplerateの値と再生のときの第二引数、つまりsamplerateの値が同じではないと、録音のときとは違った音声スピードとピッチになってしまうと! 試してみましたけど、確かにそうでした! だから、録音のときのrec関数で指定したsamplerateの値と同じ値を、play関数のsamplerateに指定しないと、音声の品質が損なわれると、そういうことみたいです!! なるほど!!)

ちなみに、録音のrec関数の記事はこちら。

  ということでした。お読みいただき、ありがとうございました。


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