2010年7月29日木曜日

逐次音声処理と一括音声処理










(名称は仮のものです)

【前提】
音声処理の所要時間のRTF(実時間係数)とは、処理時間を音声時間で割った値である。
以下におけるレイテンシの議論では、入力データレートがシステムの同時処理限界人数よりも小さい状態を仮定している。

【逐次音声処理】
逐次音声処理は、クライアント側が発声を開始してから逐次エンコーディング、サーバへの送信、音声処理を行っていく方法である。発声が完了しなくても音声処理を開始することが出来るため、発声終了から音声処理を開始するよりも応答時間が短くなる。

音声長を x、音声処理時間のRTF を k, ネットワークなどの固定レイテンシを L とおくと、発声終了からのレイテンシは k が 1.0 よりも大きい場合
    ≒ (k - 1.0)x + L
と定式化できる。

逆に、k の値が 1.0 より小さいか同程度である場合でも、発声が完了しないと実行できない処理もあるため、レイテンシは
    ≒ pkx + L
となる。p は音声処理のうち発声が完了してから開始される処理の所要時間の、全処理時間に対する比率 (0 ≦ p <1.0) ならば同時処理限界人数は
    ≒ n / k
となるが、一方 k ≦ 1.0 の場合、
    ≒ n
となり、サーバの台数以上に同時処理限界人数を増やすことは出来ない。

【一括音声処理】
一括音声処理では、クライアント側で発声が完了してから、一括でサーバに送信し、音声処理を始める方法である。この手法でのレイテンシは
    ≒ kx + L
となり、逐次音声処理よりもレイテンシが明らかに大きくなってしまう。これはリアルタイム音声処理では致命的である。

(RTF 1.3 ならば、10秒の音声に対して逐次だと 3+L 秒で済むところが、一括だと 13+L 秒もかかってしまう)

一方スループットは、k の大小に関わらず
   ≒ n / k
となり、これは RTF が 1.0 よりも小さい場合に同時処理人数が大きく向上することとなる。

つまり、一括音声処理の逐次音声処理に対するアドバンテージとは、音声処理の RTF を 1.0 よりも小さく出来るときに、スループットを向上させることが出来る、という点にあるといえる。

0 件のコメント:

コメントを投稿