spaudioモジュール
spAudio に基づくオーディオ入出力のpythonモジュールです.
サンプル
下記はフルデュプレックスオーディオ入出力を実現する例です(バージョン0.7.15以上).
import spaudio
with spaudio.open('rw', nchannels=2, samprate=44100, buffersize=2048) as a:
    nloop = 500
    b = bytearray(4096)
    for i in range(nloop):
        a.readraw(b)
        a.writeraw(b)
- class spaudio.SpAudio(drivername=None)[ソース]
- ベースクラス: - object- オーディオ入出力のためのクラスです. - パラメータ:
- drivername (str) -- 初期化するドライバー名を指定します. 
 - createarray(length, nframesflag=False)[ソース]
- 現在のデバイス設定に応じたdouble型配列を作成します. - パラメータ:
- length -- 配列の長さを指定します.この長さはいわゆるフレーム数とは異なりますのでご注意ください(length = nframes * nchannels).フレーム数を指定したい場合は第2引数に - Trueを指定します.
- nframesflag (bool, optional) -- 第1引数にフレーム数を指定したい場合は - Trueを指定します.
 
- 戻り値:
- 現在のデバイスの設定に応じたarrayクラスのオブジェクトが返ります. 
- 戻り値の型:
- array.array 
 
 - createndarray(length, nframesflag=False, channelwise=False)[ソース]
- 現在のデバイスの設定に応じたnumpyのdouble型配列を作成します. - パラメータ:
- length -- 配列の長さを指定します.この長さはいわゆるフレーム数とは異なりますのでご注意ください(length = nframes * nchannels).フレーム数を指定したい場合は第2引数に - Trueを指定します.
- nframesflag (bool, optional) -- 第1引数にフレーム数を指定したい場合は - Trueを指定します.
- channelwise (bool, optional) -- - Trueを指定すると出力配列が (nframes, nchannels) の行列にリサイズされます.この引数はバージョン0.7.16にて導入されました.
 
- 戻り値:
- 現在のデバイスの設定に応じたndarrayクラスのオブジェクトが返ります. 
- 戻り値の型:
- numpy.ndarray 
 
 - createrawarray(length, nframesflag=False)[ソース]
- 現在のデバイスの設定に応じたRaw形式配列を作成します. - パラメータ:
- length -- 配列の長さを指定します.この長さはいわゆるフレーム数とは異なりますのでご注意ください(length = nframes * nchannels).フレーム数を指定したい場合は第2引数に - Trueを指定します.
- nframesflag (bool, optional) -- 第1引数にフレーム数を指定したい場合は - Trueを指定します.
 
- 戻り値:
- 現在のデバイスの設定に応じたarrayクラスのオブジェクトが返ります. 
- 戻り値の型:
- array.array 
 
 - createrawndarray(length, nframesflag=False, channelwise=False)[ソース]
- 現在のデバイスの設定に応じたRaw形式のnumpyのndarrayを作成します. - パラメータ:
- length -- 配列の長さを指定します.この長さはいわゆるフレーム数とは異なりますのでご注意ください(length = nframes * nchannels).フレーム数を指定したい場合は第2引数に - Trueを指定します.
- nframesflag (bool, optional) -- 第1引数にフレーム数を指定したい場合は - Trueを指定します.
- channelwise (bool, optional) -- - Trueを指定すると出力配列が (nframes, nchannels) の行列にリサイズされます.この引数はバージョン0.7.16にて導入されました.
 
- 戻り値:
- 現在のデバイスの設定に応じたndarrayクラスのオブジェクトが返ります. 
- 戻り値の型:
- numpy.ndarray 
 
 - getarraytypecode()[ソース]
- double型配列を保持する場合の型コードを取得します. - 戻り値:
- 現在の設定に応じたdouble型配列の型コードが返ります. 
- 戻り値の型:
- char 
 
 - getblockingmode()[ソース]
- 現在のデバイスのブロッキングモードを取得します. - 戻り値:
- 0 = ブロッキングモード(デフォルト),1 = ノンブロッキングモード. 
- 戻り値の型:
- int 
 
 - getcompname(decodebytes=False)[ソース]
- 圧縮形式の詳細名が返ります.現在の所, - 'not compressed'(decodebytes =- Trueの場合) または- b'not compressed'(decodebytes =- Falseの場合) のいずれかになります.
 - getcomptype(decodebytes=False)[ソース]
- 圧縮形式が返ります.現在の所, - 'NONE'(decodebytes =- Trueの場合) または- b'NONE'(decodebytes =- Falseの場合) のいずれかになります.
 - getndarraydtype()[ソース]
- double型配列を保持するためのnumpyのndarray用のdtype文字列を取得します. - 戻り値:
- 現在の設定のdtype文字列が返ります. 
- 戻り値の型:
- string 
 
 - getparams()[ソース]
- 現在のデバイスの全てのパラメータをdictオブジェクトで取得します. - 戻り値:
- キーが - 'nchannels',- 'sampbit',- 'samprate',- 'blockingmode',- 'buffersize',- 'nbuffers'になっているdictオブジェクトが返ります.
- 戻り値の型:
- dict 
 
 - getparamstuple(decodebytes=False, nframes=0)[ソース]
- 現在のデバイスの全てのパラメータをnamedtupleオブジェクトで取得します. - パラメータ:
- decodebytes (bool, optional) -- - Trueの場合は,- 'comptype'及び- 'compname'用のbytesオブジェクトを文字列オブジェクトにデコードします.標準ライブラリのwave,sunauはデコードされた文字列オブジェクトを要求するのに対し,こちらも標準ライブラリのaifcはbytesオブジェクトを要求するため,この引数が用意されています.
- nframes (int, optional) -- 音声ファイルのフレーム数を指定します.指定がない場合は,出力されるtupleの第4要素は0になります. 
 
- 戻り値:
- 現在のデバイスの全てのパラメータを含むnamedtupleオブジェクトが返ります.このnamedtupleオブジェクトは,内容が - (nchannels, sampwidth, framerate, nframes, comptype, compname)になっており,aifc,wave,sunauの標準ライブラリにおける- setparams()の引数として与えることが可能です.
- 戻り値の型:
- namedtuple 
 
 - getrawarraytypecode()[ソース]
- Raw形式のデータを保持するためのpythonの配列の型コードを取得します. - 戻り値:
- 現在の設定の型コードが返ります. 
- 戻り値の型:
- char 
 
 - getrawndarraydtype()[ソース]
- Raw形式のデータを保持するためのnumpyのndarray用のdtype文字列を取得します. - 戻り値:
- 現在の設定のdtype文字列が返ります. 
- 戻り値の型:
- string 
 
 - open(mode, *, callback=None, deviceindex=-1, samprate=0, sampbit=0, nchannels=0, blockingmode=-1, buffersize=0, nbuffers=0, params=None)[ソース]
- 現在のデバイスを開きます - パラメータ:
- mode (str) -- デバイスを開く際のモードを指定します.読み込みモードの - 'r',書き込みモードの- 'w'があります.また,読み込み専用モードの- 'ro'と書き込み専用モードの- 'wo'も用意されており,これらのモードではいずれかのモードでしか開けなくなりますが,環境によっては処理が軽くなることがあります.
- callback (tuple, optional) -- コールバック関数などが含まれる, - setcallback()に与える全ての引数を含むtupleを指定します.
- deviceindex (int, optional) -- 選択したいオーディオデバイスのインデックスを指定します. 
- samprate (double, optional) -- 現在のデバイスのサンプルレートを設定します. 
- sampbit (int, optional) -- 現在のデバイスのビット/サンプルを設定します. 
- nchannels (int, optional) -- 現在のデバイスのチャネル数を設定します. 
- blockingmode (int, optional) -- 0 = ブロッキングモード(デフォルト),1 = ノンブロッキングモード. 
- buffersize (int, optional) -- 現在のデバイスのバッファサイズを設定します. 
- nbuffers (int, optional) -- 現在のデバイスのバッファ数を設定します. 
- params (dict, optional) -- 上記の samprate から nbuffers までの任意のパラメータが含まれ得るdictオブジェクトを指定します. 
 
 - 注釈 - キーワード引数のサポートはバージョン0.7.15で追加されました. 
 - read(data, weight=1.0, offset=0, length=0)[ソース]
- オーディオデバイスからdouble型配列にデータを読み込みます. - パラメータ:
- data (bytearray, array.array or numpy.ndarray) -- オーディオデバイスから読み込むためのdouble型配列を指定します. 
- weight (double, optional) -- 読み込み後のデータに乗じられる重み係数を指定します. 
- offset (int, optional) -- オプションの配列に対するオフセットを指定します. 
- length (int, optional) -- オプションの配列に対する読み込み長を指定します. 
 
- 戻り値:
- 成功した場合には読み込みサイズが返り,失敗した場合には-1が返ります. 
- 戻り値の型:
- int 
 - 注釈 - キーワード引数の offset と length はバージョン0.7.15で導入されました. 
 - readframes(nframes, weight=1.0, arraytype='ndarray', channelwise=False)[ソース]
- 次の nframes 分のデータを読み込み,double型配列を返します. - パラメータ:
- nframes (int) -- 読み込むフレーム数を指定します. 
- weight (double, optional) -- 読み込み後のデータに乗じられる重み係数を指定します. 
- arraytype (str, optional) -- 出力配列の型を指定します. - 'ndarray'(デフォルト),- 'array',- 'bytearray'のいずれかを指定します.
- channelwise (bool, optional) -- - Trueを指定すると出力のndarrayが (nframes, nchannels) の行列にリサイズされます.この引数は- 'ndarray'の場合にだけ有効となります.
 
- 戻り値:
- 読み込まれたデータが含まれる配列が返ります. 
- 戻り値の型:
- numpy.ndarray, array.array or bytearray 
 - 注釈 - この関数はバージョン0.7.16にて導入されました. 
 - readraw(data, offset=0, length=0)[ソース]
- オーディオデバイスからRaw形式のデータを読み込みます. - パラメータ:
- data (bytearray, array.array or numpy.ndarray) -- オーディオデバイスからRaw形式のデータを読み込むためのRaw形式配列を指定します. 
- offset (int, optional) -- オプションの配列に対するオフセットを指定します. 
- length (int, optional) -- オプションの配列に対する読み込み長を指定します. 
 
- 戻り値:
- 成功した場合には読み込みサイズが返り,失敗した場合には-1が返ります. 
- 戻り値の型:
- int 
 - 注釈 - キーワード引数の offset と length はバージョン0.7.15で導入されました. 
 - readrawframes(nframes, arraytype='ndarray', channelwise=False)[ソース]
- 次の nframes 分のデータを読み込み,Raw形式配列を返します. - パラメータ:
- nframes (int) -- 読み込むフレーム数を指定します. 
- arraytype (str, optional) -- 出力配列の型を指定します. - 'ndarray'(デフォルト),- 'array',- 'bytearray'のいずれかを指定します.
- channelwise (bool, optional) -- - Trueを指定すると出力のndarrayが (nframes, nchannels) の行列にリサイズされます.この引数は- 'ndarray'の場合にだけ有効となります.
 
- 戻り値:
- 読み込まれたデータが含まれる配列が返ります. 
- 戻り値の型:
- numpy.ndarray, array.array or bytearray 
 - 注釈 - この関数はバージョン0.7.16にて導入されました. 
 - selectdevice(deviceindex)[ソース]
- 指定されたインデックスと対応するオーディオデバイスを選択します. - パラメータ:
- deviceindex (int) -- オーディオデバイスのインデックスを指定します. 
- 例外:
- ValueError -- deviceindex がデバイス数以上の場合に発生します. 
- DriverError -- オーディオデバイスが選択できない場合に発生します. 
 
 
 - setblockingmode(mode)[ソース]
- 現在のデバイスのブロッキングモードを設定します. - パラメータ:
- mode (int) -- 0 = ブロッキングモード(デフォルト),1 = ノンブロッキングモード. 
 
 - setcallback(calltype, func, *args)[ソース]
- コールバック関数を設定します. - パラメータ:
- calltype (int) -- コールバックタイプのコンビネーションで指定します.現在は, - OUTPUT_POSITION_CALLBACKと- OUTPUT_BUFFER_CALLBACKがサポートされています.
- func (callable) -- コールバック関数を指定します.コールバック関数は, - callbacksignature()で説明されるシグネチャを持つ必要があります.
- *args -- コールバック関数に渡す可変長の引数リストを指定します. 
 
- 例外:
- DriverError -- コールバック関数が設定できなかった時に発生します. 
 
 - setparams(params)[ソース]
- サポートされている全てのパラメータを,dictオブジェクトもしくは namedtupleオブジェクトの形でデバイスに設定します. - パラメータ:
- params (dict) -- - 'nchannels',- 'sampbit',- 'samprate',- 'blockingmode',- 'buffersize',- 'nbuffers'のキーを持つdictオブジェクトを指定します.標準ライブラリのaifc,wave,sunauで用いられるnamedtupleオブジェクトを指定することもできます.
 
 - write(data, weight=1.0, offset=0, length=0)[ソース]
- double型配列のデータをオーディオデバイスへ書き込みます. - パラメータ:
- data (bytearray, array.array or numpy.ndarray) -- オーディオデバイスに書き込むためのdouble型配列を指定します. 
- weight (double, optional) -- 書き込み前のデータに乗じられる重み係数を指定します. 
- offset (int, optional) -- オプションの配列に対するオフセットを指定します. 
- length (int, optional) -- オプションの配列に対する書き込み長を指定します. 
 
- 戻り値:
- 成功した場合には書き込まれたサイズが返り,失敗した場合には-1が返ります. 
- 戻り値の型:
- int 
 - 注釈 - キーワード引数の offset と length はバージョン0.7.15で導入されました. 
 - writeframes(data, weight=1.0)[ソース]
- double型配列のデータをオーディオデバイスへ書き込みます. - パラメータ:
- data (bytearray, array.array or numpy.ndarray) -- オーディオデバイスに書き込むためのdouble型配列を指定します. 
- weight (double, optional) -- 書き込み前のデータに乗じられる重み係数を指定します. 
 
- 戻り値:
- 成功した場合には書き込まれたフレーム数が返り,失敗した場合には-1が返ります. 
- 戻り値の型:
- int 
 - 注釈 - この関数はバージョン0.7.16にて導入されました. 
 - writeraw(data, offset=0, length=0)[ソース]
- オーディオデバイスにRaw形式配列のデータを書き込みます. - パラメータ:
- data (bytearray, array.array or numpy.ndarray) -- オーディオデバイスに書き込むためのRaw形式配列を指定します. 
- offset (int, optional) -- オプションの配列に対するオフセットを指定します. 
- length (int, optional) -- オプションの配列に対する書き込み長を指定します. 
 
- 戻り値:
- 成功した場合には書き込まれたサイズが返り,失敗した場合には-1が返ります. 
- 戻り値の型:
- int 
 - 注釈 - キーワード引数の offset と length はバージョン0.7.15で導入されました. 
 
- spaudio.callbacksignature(audio, calltype, cbdata, args)[ソース]
- setcallback()で指定するコールバック関数のシグネチャです.- パラメータ:
- calltype (int) -- コールバックタイプです. - OUTPUT_POSITION_CALLBACKか- OUTPUT_BUFFER_CALLBACKになります.
- cbdata -- コールバック依存データです. - OUTPUT_POSITION_CALLBACKでは位置 (int) ,- OUTPUT_BUFFER_CALLBACKではバッファ (bytes) です.
- args -- - setcallback()にて指定された可変長の引数リストです.この関数内では, args には- *の接頭辞は必要ありません.
 
- 戻り値:
- コールバックをこれ以上呼び出したくない場合は, - Falseを返します.
- 戻り値の型:
- bool 
 
- spaudio.getdriverdevicename(index, drivername=None)[ソース]
- ドライバーにおけるオーディオデバイスの名前を取得します. - パラメータ:
- index (int) -- オーディオデバイスのインデックスを指定します. 
- drivername (str) -- オプションのドライバー名を指定します. 
 
- 戻り値:
- デバイス名が含まれる文字列が返ります. 
- 戻り値の型:
- string 
- 例外:
- ValueError -- index がデバイス数以上の場合に発生します. 
 
- spaudio.getdrivername(index)[ソース]
- 指定されたインデックスと対応するオーディオドライバーの名前を取得します. - パラメータ:
- index (int) -- オーディオドライバーのインデックスを指定します. 
- 戻り値:
- ドライバー名が含まれる文字列が返ります. 
- 戻り値の型:
- string 
- 例外:
- ValueError -- index がドライバー数以上の場合に発生します. 
 
- spaudio.open(mode, *, drivername=None, callback=None, deviceindex=-1, samprate=0, sampbit=0, nchannels=0, blockingmode=-1, buffersize=0, nbuffers=0, params=None)[ソース]
- 現在のデバイスを開きます.この関数は - with文の中で使うことを想定しています.- パラメータ:
- mode (str) -- デバイスを開く際のモードを指定します.読み込みモードの - 'r',書き込みモードの- 'w'があります.また,読み込み専用モードの- 'ro'と書き込み専用モードの- 'wo'も用意されており,これらのモードではいずれかのモードでしか開けなくなりますが,環境によっては処理が軽くなることがあります.この関数では,- 'r'モードの後に- 'w'で開く- 'rw'モードもサポートされています.
- drivername (str, optional) -- 初期化するドライバー名を指定します. 
- callback (tuple, optional) -- コールバック関数などが含まれる, - setcallback()に与える全ての引数を含むtupleを指定します.
- deviceindex (int, optional) -- 選択したいオーディオデバイスのインデックスを指定します. 
- samprate (double, optional) -- 現在のデバイスのサンプルレートを設定します. 
- sampbit (int, optional) -- 現在のデバイスのビット/サンプルを設定します. 
- nchannels (int, optional) -- 現在のデバイスのチャネル数を設定します. 
- blockingmode (int, optional) -- 0 = ブロッキングモード(デフォルト),1 = ノンブロッキングモード. 
- buffersize (int, optional) -- 現在のデバイスのバッファサイズを設定します. 
- nbuffers (int, optional) -- 現在のデバイスのバッファ数を設定します. 
- params (dict, optional) -- 上記の samprate から nbuffers までの任意のパラメータが含まれ得るdictオブジェクトを指定します. 
 
- 戻り値:
- SpAudioクラスのインスタンスが返ります.
- 戻り値の型:
 - 注釈 - この関数はバージョン0.7.15にて導入されました.