7171import com .ibm .watson .developer_cloud .speech_to_text .v1 .model .UpgradeLanguageModelOptions ;
7272import com .ibm .watson .developer_cloud .speech_to_text .v1 .model .Word ;
7373import com .ibm .watson .developer_cloud .speech_to_text .v1 .model .Words ;
74- import com .ibm .watson .developer_cloud .speech_to_text .v1 .websocket .RecognizeCallback ;
75- import com .ibm .watson .developer_cloud .speech_to_text .v1 .websocket .SpeechToTextWebSocketListener ;
7674import com .ibm .watson .developer_cloud .util .GsonSingleton ;
7775import com .ibm .watson .developer_cloud .util .RequestUtils ;
7876import com .ibm .watson .developer_cloud .util .ResponseConverterUtils ;
7977import com .ibm .watson .developer_cloud .util .Validator ;
80- import okhttp3 .HttpUrl ;
8178import okhttp3 .MediaType ;
8279import okhttp3 .MultipartBody ;
83- import okhttp3 .OkHttpClient ;
84- import okhttp3 .Request ;
8580import okhttp3 .RequestBody ;
86- import okhttp3 .WebSocket ;
8781
8882/**
8983 * The IBM® Speech to Text service provides an API that uses IBM's speech-recognition capabilities to produce
@@ -308,8 +302,7 @@ public ServiceCall<SpeechRecognitionResults> recognize(RecognizeOptions recogniz
308302 builder .query ("max_alternatives" , String .valueOf (recognizeOptions .maxAlternatives ()));
309303 }
310304 if (recognizeOptions .wordAlternativesThreshold () != null ) {
311- builder .query ("word_alternatives_threshold" , String .valueOf (recognizeOptions
312- .wordAlternativesThreshold ()));
305+ builder .query ("word_alternatives_threshold" , String .valueOf (recognizeOptions .wordAlternativesThreshold ()));
313306 }
314307 if (recognizeOptions .wordConfidence () != null ) {
315308 builder .query ("word_confidence" , String .valueOf (recognizeOptions .wordConfidence ()));
@@ -326,60 +319,11 @@ public ServiceCall<SpeechRecognitionResults> recognize(RecognizeOptions recogniz
326319 if (recognizeOptions .speakerLabels () != null ) {
327320 builder .query ("speaker_labels" , String .valueOf (recognizeOptions .speakerLabels ()));
328321 }
329- builder .body (InputStreamRequestBody .create (MediaType .parse (recognizeOptions .contentType ()),
330- recognizeOptions .audio ()));
322+ builder .body (InputStreamRequestBody .create (MediaType .parse (recognizeOptions .contentType ()), recognizeOptions
323+ .audio ()));
331324 return createServiceCall (builder .build (), ResponseConverterUtils .getObject (SpeechRecognitionResults .class ));
332325 }
333326
334- /**
335- * Sends audio and returns transcription results for recognition requests over a WebSocket connection. Requests and
336- * responses are enabled over a single TCP connection that abstracts much of the complexity of the request to offer
337- * efficient implementation, low latency, high throughput, and an asynchronous response. By default, only final
338- * results are returned for any request; to enable interim results, set the interimResults parameter to true.
339- *
340- * The service imposes a data size limit of 100 MB per utterance (per recognition request). You can send multiple
341- * utterances over a single WebSocket connection. The service automatically detects the endianness of the incoming
342- * audio and, for audio that includes multiple channels, downmixes the audio to one-channel mono during transcoding.
343- * (For the audio/l16 format, you can specify the endianness.)
344- *
345- * @param recognizeOptions the recognize options
346- * @param callback the {@link RecognizeCallback} instance where results will be sent
347- * @return the {@link WebSocket}
348- */
349- public WebSocket recognizeUsingWebSocket (RecognizeOptions recognizeOptions , RecognizeCallback callback ) {
350- Validator .notNull (recognizeOptions , "recognizeOptions cannot be null" );
351- Validator .notNull (recognizeOptions .audio (), "audio cannot be null" );
352- Validator .notNull (callback , "callback cannot be null" );
353-
354- HttpUrl .Builder urlBuilder = HttpUrl .parse (getEndPoint () + "/v1/recognize" ).newBuilder ();
355-
356- if (recognizeOptions .model () != null ) {
357- urlBuilder .addQueryParameter ("model" , recognizeOptions .model ());
358- }
359- if (recognizeOptions .customizationId () != null ) {
360- urlBuilder .addQueryParameter ("customization_id" , recognizeOptions .customizationId ());
361- }
362- if (recognizeOptions .acousticCustomizationId () != null ) {
363- urlBuilder .addQueryParameter ("acoustic_customization_id" , recognizeOptions .acousticCustomizationId ());
364- }
365- if (recognizeOptions .baseModelVersion () != null ) {
366- urlBuilder .addQueryParameter ("base_model_version" , recognizeOptions .baseModelVersion ());
367- }
368- if (recognizeOptions .customizationWeight () != null ) {
369- urlBuilder .addQueryParameter ("customization_weight" ,
370- String .valueOf (recognizeOptions .customizationWeight ()));
371- }
372-
373- String url = urlBuilder .toString ().replace ("https://" , "wss://" );
374- Request .Builder builder = new Request .Builder ().url (url );
375-
376- setAuthentication (builder );
377- setDefaultHeaders (builder );
378-
379- OkHttpClient client = configureHttpClient ();
380- return client .newWebSocket (builder .build (), new SpeechToTextWebSocketListener (recognizeOptions , callback ));
381- }
382-
383327 /**
384328 * Check a job.
385329 *
@@ -887,9 +831,7 @@ public ServiceCall<Void> addCorpus(AddCorpusOptions addCorpusOptions) {
887831 }
888832 MultipartBody .Builder multipartBuilder = new MultipartBody .Builder ();
889833 multipartBuilder .setType (MultipartBody .FORM );
890- String corpusFileContentType = addCorpusOptions .corpusFileContentType () == null
891- ? "text/plain" : addCorpusOptions .corpusFileContentType ();
892- RequestBody corpusFileBody = RequestUtils .inputStreamBody (addCorpusOptions .corpusFile (), corpusFileContentType );
834+ RequestBody corpusFileBody = RequestUtils .inputStreamBody (addCorpusOptions .corpusFile (), "text/plain" );
893835 multipartBuilder .addFormDataPart ("corpus_file" , addCorpusOptions .corpusFilename (), corpusFileBody );
894836 builder .body (multipartBuilder .build ());
895837 return createServiceCall (builder .build (), ResponseConverterUtils .getVoid ());
0 commit comments