@@ -39,7 +39,7 @@ describe('speech_to_text', function() {
3939 session_id : 'foo' ,
4040 new_session_uri : '#' ,
4141 recognize : '#' ,
42- observe_result : '#' ,
42+ observe_result : '#'
4343 } ,
4444 new_session_with_cookie = extend ( { } , new_session , { cookie_session : 'foobar' } ) ;
4545
@@ -226,6 +226,75 @@ describe('speech_to_text', function() {
226226 } ) ;
227227 } ) ;
228228
229+ describe ( 'recognizeStream()' , function ( ) {
230+ var path = '/v1/sessions/foo/recognize' ,
231+ payload = {
232+ session_id : 'foo' ,
233+ cookie_session : 'foobar' ,
234+ content_type : 'audio/l16; rate=41100'
235+ } ,
236+ service_response = {
237+ result : [ {
238+ alternative : [ {
239+ transcript : 'one two three'
240+ } ] ,
241+ 'final' : true
242+ } ] ,
243+ result_index : 0
244+ } ;
245+
246+ var options = {
247+ content_type : 'audio/l16;rate=41100' ,
248+ "continuous" : true ,
249+ "timestamps" :true ,
250+ "inactivity_timeout" : - 1 ,
251+ "max_alternatives" : 1 ,
252+ "interim_results" : false ,
253+ "keywords" : [ 'one' , 'Three' ] ,
254+ "keywords_threshold" : 0.9 ,
255+ "word_alternatives_threshold" : 0.25
256+ } ;
257+ var recognizeStream = speech_to_text . createRecognizeStream ( options ) ;
258+ var DEBUG = fs . createReadStream ( __dirname + '/resources/audio.wav' ) . pipe ( recognizeStream ) ;
259+ recognizeStream . setEncoding ( 'utf8' ) ;
260+
261+ it ( 'should have expected _events' , function ( done ) {
262+ assert . equal ( true , recognizeStream . hasOwnProperty ( '_events' ) ) ;
263+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'connect' ) ) ;
264+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'end' ) ) ;
265+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'results' ) ) ;
266+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'error' ) ) ;
267+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'finish' ) ) ;
268+ assert . equal ( true , recognizeStream . _events . hasOwnProperty ( 'listening' ) ) ;
269+ done ( ) ;
270+ } ) ;
271+
272+ recognizeStream . on ( 'connect' , function ( socket ) {
273+ it ( 'should have a socket connection with a correct config' , function ( done ) {
274+ assert . notStrictEqual ( socket , socket . config , socket . config . fragmentOutgoingMessages ) ;
275+ assert . notStrictEqual ( socket , socket . config , socket . config . fragmentOutgoingMessages ) ;
276+ done ( ) ;
277+ } ) ;
278+ } ) ;
279+
280+ recognizeStream . on ( 'error' , function ( err ) {
281+ it ( 'should throw ECONNRESET with bad credentials' , function ( done ) {
282+ assert . equal ( err . code , 'ECONNRESET' ) ;
283+ assert . equal ( err . errno , 'ECONNRESET' ) ;
284+ done ( ) ;
285+ } ) ;
286+ } ) ;
287+
288+ recognizeStream . on ( 'results' , function ( obj ) {
289+ console . log ( JSON . stringify ( obj ) ) ;
290+ it ( 'should generate a valid response' , function ( done ) {
291+ assert . equal ( obj , service_response ) ;
292+ done ( ) ;
293+ } ) ;
294+ } ) ;
295+ } ) ;
296+
297+
229298 describe ( 'recognizeLive()' , function ( ) {
230299 var path = '/v1/sessions/foo/recognize' ,
231300 payload = {
0 commit comments