概要

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

機能一覧

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

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

オーディオデバイスにIDを割り当て、バックエンドに登録する機能です。

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

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

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

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

  • 音声データの保存

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

提供ノード一覧

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

  • ice mic

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

  • ice audio save

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

機能概要

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

デバイスの登録

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

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

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

Note

ONVIF対応カメラ連携用ノードにより登録されたデバイスアダプタかどうかは、以下の条件で判別可能です。
uniqueフィールドがnodered:で始まる
payload.camerasフィールドを持つ

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

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

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

Note

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

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

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

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

出力される音声データ

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

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

音声データの保存

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

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

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

  • Sony SNC-XM632