Reply To: streamの遅延時間について

HARK FORUM streamの遅延時間について Reply To: streamの遅延時間について

#790

お問い合わせありがとうございます。

遅延量について:
ご利用になるノード(及びパラメータの値)の組み合わせにより遅延量は変化します。

例えば、平滑化を行うノードでは複数フレームのデータを必要とします。
50フレーム(1フレーム=10msとした時、500ms)で平滑化を掛けた場合には
50フレームバッファするという事ですので500ms分の遅延が発生します。
パラメータで10フレーム分の平滑化に設定を変更すると100msになります。
また、FFTを例に挙げるとサンプリング周波数16kHzのデータを512サンプル
のウィンドウ幅で処理する場合には約32ms(16000/512)の遅延があるという
事になります。
つまり、ユーザが設定されたネットワークによって遅延量が決定しますので
設計上の遅延というものは定めていません。
一方で、オンラインで処理が可能であると謳っているノードについては
推奨スペックの環境でノードを初期パラメータのまま使用する条件において
1フレーム分の処理を1フレーム以内に終える事が出来る仕様です。
各ノードの遅延量の合計に1フレームの時間を加えた時間が総遅延量となります。

遅延量の測定方法について(タイムスタンプの処理について):
現在、分離音を送信しているHarkDataStreamSenderノードの”TIEMSTAMP”
端子は何も接続していない状態としてください。
何も接続していない場合は、ヘッダ送信(TCPソケットへwriteを開始する)
直前のタイムスタンプが入ります。
また、AudioStreamFromMicの出力端子として”TIMESTAMP”(すべて大文字)
を追加して頂き、もう一つHarkDataStreamSenderノードを追加した上で
“TIMESTAMP”端子に接続してください。
“TIMESTAMP”端子に接続がある場合、接続したノード(音響信号入力ノード)
から送られたタイムスタンプが入ります。
2つのタイムスタンプの差分を取る事で遅延量を測定する事が可能です。

VAD情報について:
分離処理をされているとの事ですが、LocalizeMUSICによって定位処理を
行った場合には定位している区間(HDH_SrcInfoでsrc_idの出現から消失まで)
が有音区間(発話区間)となります。
SourceTrackerやSourceIntervalExtender等から出力されるSource情報を
HarkDataStreamSenderの”SRC_INFO”端子に接続されているかと存じますが
分離音と共に得られていませんでしょうか。

https://www.hark.jp/document/hark-document-ja/subsec-HarkDataStreamSender.html
より、”HDH_SrcInfo”の項目をご参照ください。

また、マイクアレイの収録時刻と同期して発話開始時刻、発話終了時刻を得たい
ということでしたら遅延量測定のところで記載したようにAudioStreamFromMic
に”TIMESTAMP”端子を追加し、HarkDataStreamSenderに接続する事で実現可能です。

あるいは、ネットワークの外でVADを行って区間抽出したいという要望でしたら
分離方向が既知であれば、ConstantLocalizationノードを用いる事で
常に指定した音源方向で分離したストリームを送信し続ける事が可能です。

以上、宜しくお願い致します。