セッション・ベースの音声認識インターフェースの使用に問題があります。具体的には、長いオーディオストリームを複数のチャンクに分割し、一度に1つずつアップロードし、最後に完全な解析済みテキストを受信しようとしています(単一のソースからチャンクされたオーディオをストリーミングするのではなく)。IBM Watsonのセッション・ベースの音声認識が「セッションが存在しません」というエラーで失敗するエラー
IBM Watson'sは、音声認識に対するステートレス・インターフェースとステートフル・インターフェースの両方を提供します。より一般的なステートレスプロトコルは、(チャンクされた)オーディオストリームを受け入れ、完了時に解析されたコンテンツを返します。セッションベースのアプローチでは、クライアントは永続セッションを確立し、マルチパートを使用してオーディオを複数のチャンクとしてアップロードし、結果を照会することができます。これにより、長いストリームの処理やマイク入力の処理に非常に役立ちます。
tutorialsとdiscussionsが見つかりましたが、いずれの例も正しく動作していないようです(インターフェイスが急速に進化しているので古いかもしれません)。
ここに代表的なサンプルがあります。以下のPOSTがセッションを作成します。次に
curl -X POST -u "user:password" -H "Content-Type: application/json" \
https://stream.watsonplatform.net/speech-to-text/api/v1/sessions -verbose -d ""
を、次の1は、前のコマンドが提供するエンドポイントを使用して、サービスを認識するための音声データの一部を提出してください:
curl -k -X POST -u "user:password" \
-H "content-type: audio/flac" --data-binary @temp.2.flac -H "Transfer-encoding: chunked" \
--cookie "SESSIONID=65097570295a0eccd15fd6dba326487416634371; Secure" \
https://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874/recognize -verbose
最後に、このコマンドは、結果を返す必要があります:
curl -k -X GET -u "user:password" \
--cookie "SESSIONID=65097570295a0eccd15fd6dba326487416634371; Secure" \
https://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874/observe_result -verbose
最初のコマンドは、ステータスを作成したHTTP 201だけでなく、合理的に探してエンドポイントを返して、何の問題もなく完了し、その後続の呼び出し:ただし
"recognize": "https://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874/recognize",
"recognizeWS": "wss://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874/recognize",
"observe_result": "https://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874/observe_result",
"session_id": "65097570295a0eccd15fd6dba3264874",
"new_session_uri": "https://stream.watsonplatform.net/speech-to-text/api/v1/sessions/65097570295a0eccd15fd6dba3264874"
ために(一緒にセッションIDクッキーと共に)使用され、2番目と3番目のコマンドの両方が404のHTTPコードで失敗「セッションが存在しません。」エラー。
どのようなカールまたはJavaのポインタや例も高く評価されます。
こんにちはRobertさん、このセッションを使用しないでください.Watson STTへのストリーミングにはウェブソケットが最適です。私の答えをここで見てください:http://stackoverflow.com/questions/37232560/stream-audio-from-mic-to-ibm-watson-speechtotext-web-service-using-java-sdk/38231774#38231774 –