5.5.1. 概要

ONVIF対応IPカメラ及びalsaドライバを経由してアクセス可能なUSBマイク(これらを総称してオーディオデバイスと呼びます)から音声を取得し、 Node-REDフロー上で様々に活用することができます。

5.5.2. 機能一覧

主な機能を以下に列挙します。

  • オーディオデバイスの登録

    オーディオデバイスにIDを割り当て、ICE Backendに登録する機能です。

  • ONVIF対応IPカメラからの自動音声取得

    ONVIF対応カメラ連携用ノードと連携をすることで、 自動発見したカメラから音声取得することが可能です。

  • 指定のIPカメラ・USBマイク・オンボードマイクの音声取得

    接続先が既知であるIPカメラ及びオーディオデバイスを指定して、指定されたデバイスから音声を取得することも可能です。

  • 音声データの保存

    オーディオデバイスから取得した音声データをファイルに保存する機能です。

5.5.3. 提供ノード一覧

本機能を使用するためにNode-REDエディタから利用可能なノードを提供しています。 詳細はオーディオデバイス音声取得用ノードを参照ください。

  • ice mic

    指定したマイクの音声をNode-REDフローに出力するためのノード。

  • ice audio save

    入力された音声データをファイルに保存するためのノード。

5.5.4. 機能概要

オーディオデバイス音声取得用ノードを使用して実行できる機能について以下で説明します。

5.5.4.1. デバイスの登録

オーディオデバイスに対してObject IDを割り当て、ICE Backendへデバイスの登録を行います。 Object IDはICE Backendでオーディオデバイスからのイベントデータを識別するために利用できます。

ただし、ONVIF対応カメラ連携用ノードで登録したデバイスについては、登録をせず、 ONVIF対応カメラ連携用ノードで振り出したObject IDを使用します。 (ice micノードにpayload.object_idが入力された場合に限ります)

なお、オーディオデバイス接続台数分のデバイスアダプタが自動的にICE Backendに登録されます。 ONVIF対応カメラ連携用ノードで自動発見されたオーディオデバイス(IPカメラ)に対しては2つのデバイスアダプタが登録されますが、 この場合、ONVIF対応カメラ連携用ノードにより登録されたデバイスアダプタを、 ICE Backend APIを利用する際のパラメータに使用してください。

5.5.4.2. ONVIF対応IPカメラからの自動音声取得

ice onvif discoveryノードとice micノードを接続することで、 自動発見されたIPカメラからの音声取得を開始できます。 複数のカメラが発見された場合、最後に発見されたカメラからのみ音声が取得されます。 複数のカメラから映像を取得したい場合には、ice onvif discoveryノードの出力を swithノード等を用いて振り分け、それぞれ別のice micノードと接続してください。

接続するプロトコルはデフォルトではRTSPのみ対応しています。 また、音声を取得する際の音声コーデックはデフォルトではFFMPEGにおけるpcm_s16le, pcm_mulawに対応しており、 音声取得時に自動判別して適切にデコードされます。 非対応のコーデックの場合には音声を取得しません。

注釈

ONVIF対応カメラ連携用ノードを利用する場合には、事前にカメラに対してユーザ名、パスワードの設定をお願いします。

5.5.4.3. 指定のIPカメラ・USBマイク・オンボードマイクの音声取得

ice micの入力端子に対してデバイスのアドレスを入力すると、 指定されたデバイスからの音声を取得します。 指定できるデバイスのアドレスはrtsp://...で開始するIPカメラのストリーム用URLと、 hw:0,1等で指定されるalsaドライバ経由でアクセス可能なオーディオデバイスになります。

音声を取得する際の音声コーデックはデフォルトではFFMPEGにおけるpcm_s16le, pcm_mulawに対応しており、 音声取得時に自動判別して適切にデコードされます。 非対応のコーデックの場合には音声を取得しません。

5.5.4.4. 出力される音声データ

ice micノードはOutput Typeで指定されたStream, Bufferのいずれかに合わせて、 音声を定期的にemitするReadable Streamをカメラ発見時に出力するか、 音声データを格納したBuffer形式を定期的に出力します。 Readable Streamを出力する場合には、後段のノードでストリーム処理をするリスナを登録してください。 Readable Streamの場合は、オーディオデバイスから音声取得を開始するタイミングごとに1度だけSteamを、 Bufferの場合は各フレームごとに音声データを出力します。

出力される音声は1チャンネルのリニアPCM(signed intのリトルエンディアン)形式で、 サンプリング周波数が44.1kHz,量子化ビットが16bitとなります。

5.5.4.5. 音声データの保存

ice micノードの出力をice audio saveノードに結合することでカメラごとに 一定間隔で音声を保存することができます。

5.5.4.6. 動作確認済みマイク・カメラ

以下のカメラで動作確認を行っています。

  • Sony SNC-XM632