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ノードに結合することでカメラごとに 一定間隔で音声を保存することができます。