6.1.1 AudioStreamFromMic

6.1.1.1 モジュールの概要

マイクロホンアレーからマルチチャネル音声波形データを取り込む. サポートするオーディオインタフェースデバイスは, システムインフロンティア製 RASP シリーズ, 東京エレクトロンデバイス製 TD-BD-16ADUSB, ALSA ベースのデバイス (例,RME Hammerfall DSP Multiface シリーズ) である. また,デバイス以外にも, IEEE Float形式のマルチチャネルの音響信号の raw データを TCP/IP ソケット接続で受信することも可能である. 各種デバイスの導入は,第 章を参照のこと.

6.1.1.2 必要なファイル

無し.

6.1.1.3 使用方法

どんなときに使うのか

このモジュールは,HARK システムへの入力として, マイクロホンアレイから得られた音声波形データを用いる場合に使用する.

典型的な接続例

6.1 , 6.2AudioStreamFromMic モジュールの使用例を示す.

\includegraphics[width=.8\textwidth ]{fig/modules/AudioStreamFromMic}
Figure 6.1: AudioStreamFromMic の接続例: LOOP0 の内部

\includegraphics[width=.4\textwidth ]{fig/modules/AudioStreamFromMic-2}
Figure 6.2: AudioStreamFromMic の接続例: MAIN

デバイスの写真

AudioStreamFromMic モジュールがサポートするデバイスのうち,以下を写真で紹介する.

  1. 無線 RASP

  2. RME Hammerfall DSP シリーズ Multiface (ALSA 対応デバイス)

6.1.1.3.1 1.無線 RASP

6.3 は無線 RASP の外観である. HARK システムとの接続には,無線 LAN による Ethernet を通じて行う. 無線 RASP への電源供給は,付属のACアダプタで行う.

無線 RASP は,プラグインパワーに対応しており, プラグインパワー供給のマイクロホンをそのまま端子に接続できる. マイクロホンプリアンプを使用せずに手軽に録音ができる利点がある.

\includegraphics[width=.5\textwidth ]{fig/modules/AD/AD-WL-RASP}
Figure 6.3: 無線 RASP

6.1.1.3.2 2.RME Hammerfall DSP Multiface シリーズ

6.46.5 は RME Hammerfall DSP シリーズ Multiface の外観である. 32bit CardBus を通じてホスト PC と通信を行う. 6.3 mm TRS 端子を通じてマイクロホンを接続できるが,入力レベルを確保するために,別途マイクロホンアンプを使用する (図 6.5). 例えば,マイクロホンを RME OctaMic II に接続し,OctaMic II と Multiface を接続する. OctaMic II は,ファンタム電源供給をサポートしており, ファンタム電源を必要とするコンデンサマイクロホン(例えば,DPA 社 4060-BM)を直接接続可能である.

しかし,プラグインパワー供給機能がないため,プラグインパワー供給型のマイクロホンを接続するためには, 別途プラグインワパー用の電池ボックスが必要である. 例えば,電池ボックスは Sony EMC-C115 や audio-technica AT9903 に附属している.

\includegraphics[width=.5\textwidth ]{fig/modules/AD/AD-RME}
Figure 6.4: RME Hammerfall DSP Multiface の正面

\includegraphics[width=.5\textwidth ]{fig/modules/AD/AD-RME-back}
Figure 6.5: RME Hammerfall DSP Multiface の背面

6.1.1.4 モジュールの入出力とプロパティ

Table 6.2: AudioStreamFromMic のパラメータ表

パラメータ名

デフォルト値

単位

説明

LENGTH

int 

512

[pt]

処理を行う基本単位となるフレームの長さ.

ADVANCE

int 

160

[pt]

フレームのシフト長.

CHANNEL_COUNT

int 

8

[ch]

使用するデバイスのマイクロホン入力チャネル数.

SAMPLING_RATE

int 

16000

[Hz]

取り込む音声波形データのサンプリング周波数.

DEVICETYPE

string 

WS

 

使用するデバイスの種類.

GAIN

string 

0dB

 

RASP を使用する場合のゲイン.

DEVICE

string 

127.0.0.1

 

デバイスへのアクセスに必要な文字列. "plughw:0,1" などのデバイス名や,RASP を使用する時は IP アドレスなど.

入力

無し.

出力

AUDIO

: Matrix<float> 型. 行番号がチャネルのインデックス,列番号がサンプルのインデックスである,マルチチャネル音声波形データ. 列の大きさはパラメータ LENGTH に等しい.

NOT_EOF

: bool 型. まだ波形の入力があるかどうかを表す. 録音波形に対する繰り返し処理の終了フラグとして用いる. trueのとき,波形の取り込みを続行し,falseのとき,読み込みを終える. 常に trueを出力する.

パラメータ

LENGTH

: int 型. 512 がデフォルト値. 処理の基本単位であるフレームの長さをサンプル数で指定する. 値を大きくすれば,周波数解像度が上がる一方,時間解像度は下がる. 音声波形の分析には,$20 \sim 40$ [ms] に相当する長さが適切であると言われている. サンプリング周波数が 16000 [Hz] のとき,デフォルト値は 32 [ms] に相当する.

ADVANCE

: int 型. 160 がデフォルト値. フレームのシフト長をサンプル数で指定する. サンプリング周波数が 16000 [Hz] のとき,デフォルト値はフレーム周波数 10 [ms] に相当する.

CHANNEL_COUNT

: int 型. 使用するデバイスのチャネル数.

SAMPLING_RATE

: int 型. 16000 がデフォルト値. 取り込む波形のサンプリング周波数を指定する. 処理の中で $\omega $ [Hz] までの周波数が必要な場合, サンプリング周波数は $2\omega $ [Hz] 以上の値を指定する. サンプリング周波数を大きくとると,一般にデータ処理量が増えるので,実時間処理が困難になる.

DEVICETYPE

: string 型. ALSA, RASP, WS, TDBD16ADUSB, RASP24-16, RASP24-32, RASP-LC, NETWORK から選択する. ALSA ベースのドライバをサポートするデバイスを使用する場合には ALSA を選択する. RASP-2 を使用する場合には RASP を選択する. 無線 RASP を使用する場合は WS を選択する. TD-BD-16ADUSB を使用する場合には TDBD16ADUSB を選択する. RASP-24 を 16bit 量子化ビット数の録音モードで使用する場合には RASP24-16 を選択する. RASP-24 を 24bit 量子化ビット数の録音モードで使用する場合には RASP24-32 を選択する. RASP-LC を PC と無線 LAN による接続で使用する場合には RASP-LC を選択する. (RASP-LC を PC に直接 USB 接続する場合は ALSA で構わない.) TCP/IP 接続を介して IEEE float 形式の raw データを受信したい場合は NETWORK を選択する.

GAIN

: string 型. 0dB がデフォルト値. マイクの録音ゲインを設定する. 0dB, 12dB, 24dB, 36dB, 48dB の中から選択する. RASP-24 を録音デバイスとして利用する時のみ有効になる.

DEVICE

: string 型. 入力に用いるデバイスへのアクセスに必要な識別名. DEVICETYPE 毎に入力内容が異なるため,以下の説明を参考のこと.

6.1.1.5 モジュールの詳細

HARK がサポートするオーディオデバイスは,以下の通り.

  1. システムインフロンティア製 RASP シリーズ

    • RASP-2

    • 無線 RASP

    • RASP-24

    • RASP-LC

  2. 東京エレクトロンデバイス製 TD-BD-16ADUSB.

  3. ALSA ベースのデバイス.以下は例.

    • Microsoft 製 Kinect Xbox

    • Sony 製 PlayStation Eye

    • Dev-Audio 製 Microcone

    • RME Hammerfall DSP シリーズ Multiface

  4. TCP/IP ソケット接続で送られる音響信号 (IEEE float wav 形式)

以下ではそれぞれのデバイスを用いる際のパラメータ設定を記す.

RASP シリーズ:

CHANNEL_COUNT

8

DEVICETYPE

WS

DEVICE

RASP-2 の IP アドレス

CHANNEL_COUNT

16

DEVICETYPE

WS

DEVICE

無線 RASP の IP アドレス

備考

RASP シリーズはモデルによって 16チャネル中 マイクロホン入力とライン入力が混在しているものがある. 混在する場合には,ChannelSelector モジュールを, AudioStreamFromMic モジュールの AUDIO 出力に 接続しマイクロホン入力チャネルだけを選択する必要がある.

CHANNEL_COUNT

9 の倍数

DEVICETYPE

RASP24-16 または RASP24-32

DEVICE

RASP-24 の IP アドレス

備考

録音の量子化ビット数を 16bit にする場合は DEVICETYPE=RASP24-16 を, 量子化ビット数を 24bit にする場合は DEVICETYPE=RASP24-32 を指定する. CHANNEL_COUNT は,9 の倍数を指定する. 録音チャネルは 0 番目〜 7 番目のチャネルはマイクロホン入力, 8 番目のチャネルはライン入力となる. マイクアレイ処理には,ChannelSelector モジュールを, AudioStreamFromMic モジュールの AUDIO 出力の後段に 接続しマイクロホン入力チャネルだけを選択する必要がある.

CHANNEL_COUNT

8

DEVICETYPE

ALSA または RASP-LC

DEVICE

DEVICETYPE=ALSA に指定した場合は plughw:a,b と指定する. 設定の詳細は下記の ALSA 対応デバイスを参照. DEVICETYPE=RASP-LC に指定した場合は RASP-LC の IP アドレスを指定する.

備考

RASP-LC の USB インターフェイスを直接 PC に接続する場合は DEVICETYPE=ALSA に設定する. RASP-LC を 無線 LAN を通じて PC と接続する場合は DEVICETYPE=RASP-LC に設定する. 録音チャネルは全てマイクロホン入力となる.

東京エレクトロンデバイス製デバイス:

CHANNEL_COUNT

16

DEVICETYPE

TDBD16ADUSB

DEVICE

TDBD16ADUSB

ALSA 対応デバイス:

ALSA 対応デバイスの場合,DEVICE パラメータは plughw:a,b と指定する.a と b には正の整数が入る. a には,arecord -l で表示されるカード番号を入れる. 音声入力デバイスが複数接続されている場合には,カード番号が複数表示される.使用するカード番号を入れる. b には arecord -l で表示されるサブデバイス番号を入れる. サブデバイスが複数あるデバイスの場合,使用するサブデバイスの番号を入れる. サブデバイスが複数ある場合の例としては,アナログ入力とディジタル入力を持ったデバイスが該当する.

CHANNEL_COUNT

4

DEVICETYPE

ALSA

DEVICE

plughw:a,b

CHANNEL_COUNT

4

DEVICETYPE

ALSA

DEVICE

plughw:a,b

CHANNEL_COUNT

7

DEVICETYPE

ALSA

DEVICE

plughw:a,b

CHANNEL_COUNT

8

DEVICETYPE

ALSA

DEVICE

plughw:a,b

ソケット接続 ( DEVICETYPE=NETWORK を選択した場合):

DEVICE パラメータは音響信号を送信する側のマシンの IP アドレスを指定する. その他のパラメータは送られてくる音響信号に合わせる必要がある. 送信したい音響信号が $M$ チャネルで,1 フレーム毎に $T$ サンプルのデータを取得できる場合, 以下のように送信すれば良い.

WHILE(1){
    
    X = Get_Audio_Stream (Suppose X is a T-by-M matrix.)

    FOR t = 1 to T

        FOR m = 1 to M

            DATA[M * t + m] = X[t][m]

        ENDFOR

    ENDFOR

    send(soket_id, (char*)DATA, M * T * sizeof(float), 0)
  
}
  

ここで,$X$ は IEEE float wav 形式であり, $-1 \leq X \leq 1$ である.

Windows 版 DirectSound 対応デバイス:

Windows 版 HARK では,無線 RASP,RASP-24,ソケット接続に加えて DirectSound に対応したオーディオインタフェースデバイスを使用できる. DEVICE パラメータにデバイス名を入力することでデバイスの指定が可能である. DEVICE パラメータへのマルチバイト文字の入力には対応していない.

デバイス名の確認方法は, デバイスマネージャなど使う方法と, Windows 版 HARK で提供している Sound Device List をつかう方法がある. 後者の場合は, [スタート]→[プログラム]→[HARK] にある Input Sound Device List をクリックすると, 図6.6 に示すように現在接続中のデバイス名が表示される. DEVICE パラメータは部分一致でも設定可能となっているので, 図6.6 の場合は単に "Hammerfall" を設定するだけでもよい. このとき, 複数のデバイス名が部分一致した場合は上位に表示されているデバイスが選択される.

また, Kinect Xbox, PlayStation Eye,Microcone,RASP-ZX に関しては, 正確なデバイス名を入力しなくとも 下記に示すパラメータを設定することで利用できる.

ただし,RASP-ZX については Windows7 使用時に限りオートゲインがかかってしまうため注意が必要である.

Windows 版 ASIO 対応デバイス:

ASIO 対応デバイス, たとえば Microcone や RME Hammerfall DSP シリーズ Multifaceを利用したい場合は, HARK の ASIO プラグインを HARK ウェブページからダウンロードしてインストールする必要がある. また,ASIO 対応デバイスはWindows 標準のドライバでは認識しないため,デバイスメーカが配布するドライバをインストールする必要がある.

ASIO 対応デバイスでは AudioStreamFromMic のかわりに AudioStreamFromASIO を使用する.

CHANNEL_COUNT

4

DEVICETYPE

DS

DEVICE

kinect

CHANNEL_COUNT

4

DEVICETYPE

DS

DEVICE

pseye

CHANNEL_COUNT

7

DEVICETYPE

ASIO

DEVICE

microcone

CHANNEL_COUNT

8

DEVICETYPE

DS

DEVICE

TAMAGO or tamago

CHANNEL_COUNT

8 or 16

DEVICETYPE

DS

DEVICE

rasp

CHANNEL_COUNT

8

DEVICETYPE

ASIO

DEVICE

ASIO Hammerfall DSP

\includegraphics[width=.7\textwidth ]{fig/modules/DeviceList}
Figure 6.6: デバイス名の確認