2017-09-03 12 views
1

iOSネイティブアプリクライアントは、直接対話モードのWebソケットを使用してBluemix speech2textサービスを呼び出します(非常に速く、非常に短い待ち時間)。しかし、私たちはオーディオストリームのコピーを保持する必要があります。ほとんどのオーディオクリップは短いです(< 60秒)。それを行う簡単な方法はありますか?WebSocketからの音声をBluemix speech2textサービスに呼び出す方法を教えてください。

私たちは確かに、クライアントがオーディオクリップをバッファリングし、都合の良いときにアップロードすることができます。これにより、特に長いクリップの場合、メモリ占有量が増加する可能性があります。また、慎重に行わないと、アプリのパフォーマンスに影響を与えます。

また、プロキシ経由でHTTPインターフェイスとリレーを使用して、コピーを保持することもできます。ここで懸念しているのは、メインコールスレッドで余分なホップが発生するため、待ち時間が長くなる可能性があるということです。

洞察が得られるでしょう。

+0

プロキシを使用し、SDKでプロキシURLを指定します。プロキシがJavaのようなマルチスレッド言語を使用することを確認する必要があります。多くのI/Oを実行するため、 –

+0

の2つの主要なオプションがあります。1)WebSocketプロキシを使用して、Watson STT 。 2)メモリに問題が発生しないように、オーディオをストレージソリューションにストリームとしてチャンクした転送エンコードでPOSTを実行します。これはバックグラウンドスレッドで行われ、非常に安価でなければなりません。 –

+0

私は秘密裏に、Watson STTの最後のオーディオクリップを何らかの形で入手する方法があると思っていました。その短い、両方のプロキシの提案は合法的だと思う - 私たちは彼らに試してみましょう。どうも。 –

答えて

0

私の2セント-rg

....

私はあなたのユーザーのために物事が厳しい行った場合、その後、彼らはあなたのアプリを使用することはありませんし、把握し、HTTPインタフェースに切り替えます物事をする良い方法。アプリケーションを書き直す必要はありません。単に通信だけでなく、そのようなオーディオストリームを「キャッシュ」するようなサーバー側アプリケーションを用意する必要があります。

別の方法として、アプリケーションをそのままの状態にしておき、別のスレッドで音声ファイルをテキストに送信した後に、いくつかのリポジトリにオーディオファイルを送信するステップを追加するだけです。この場合、オーディオファイルだけでなくテキスト翻訳も保存できます。

1

私たちは、Amazon S3 TransferUtility Mobile SDKをiOS用に使用して解決しました。これは、単一のオブジェクト内にデータチャンクとマルチスレッドをカプセル化し、iOSがアプリケーションを中断した後にバックグラウンドで転送を完了さえします。

http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transferutility.html

主な利点は、我々は、次を参照してください。

  • 既存のコードには影響ありません - 単に転送
  • プロキシサーバーを実装し、維持する必要を開始しないように呼び出しを追加しました複雑さを軽減する

BluemixはS3と同様のクラウドオブジェクトを提供しますが、anytをサポートするiOS SDKは見つかりませんでした私たちは当初は「Swift」のサポートを見るために驚いていましたが、それは用語の偶然の使用であることが判明しています。

関連する問題