2016-09-05 23 views
0

音声を音声認識サービスにストリーミングしようとしている間に遅延があります。Pythonで録音を開始する前の音声認識ストリーミング遅延

私はこのタスクを処理する2つの関数を持っています。 alsaaudioを使用し、データを呼び出し関数に返す最初のものがあります。 と、ヘッダーと録音機能をurlに渡すリクエストを使用する2番目の機能です。

私はそれがここに半秒

についての音声を録音し始めるまで、私は要求機能を呼び出し、瞬間から遅れを持っている問題は、擬似コードです:

def listen(): 
    stream = audiostream() 
    while user_speak: 
     yield stream.read(chunksize) 

def stream_speech(): 
    response = requests.post(url, data=listen(), headers, stream=true) 

    if response.status_code == 200: 
     print(response) 

私は問題は、要求がサーバーへの接続を開いているときに遅れていると思うし、リッスン機能を呼び出すだけです。

なので、チャンクをキューに記録するスレッドを開いて、メインスレッドがキューの要求機能を呼び出すと思っていた可能性があります。 しかし、私はこれを実装する方法を知らない、多分誰かが私を助けることができます。

答えて

1

まあ、asyncoreのような非同期のものを含め、多くの下位レベルのAPIがあります。スレッドをまったく使用せずにやりとりすることができます。

私は単純にalsaudioのバッファサイズをsetperiodsizeで0.5秒のように増やして、より大きなバッファを使用します。次に、録音を開始してから接続を待ってから、alsaが最初のバッファを準備します。

+0

私はスレッドのことをやったし、それはあなたのメソッドを実装しようとします。ありがとう – LichKing