@@ -73,6 +73,7 @@ class GoogleSTT {
7373 const bufferStream = new PassThrough ( )
7474 bufferStream . pipe ( recognizeStream )
7575 const events = new EventEmitter ( )
76+ const eventHistory = [ ]
7677
7778 recognizeStream . on ( 'data' , ( data ) => {
7879 const alternative = data . results [ 0 ] && data . results [ 0 ] . alternatives [ 0 ]
@@ -88,13 +89,16 @@ class GoogleSTT {
8889 event . end = _ . round ( _ . toNumber ( alternative . words [ alternative . words . length - 1 ] . endTime . seconds ) + _ . toNumber ( alternative . words [ alternative . words . length - 1 ] . endTime . nanos ) / 1000000000 , 3 )
8990 }
9091 events . emit ( 'data' , event )
92+ eventHistory . push ( event )
9193 }
9294 } )
9395 recognizeStream . on ( 'error' , ( err ) => {
94- events . emit ( 'data' , {
96+ const event = {
9597 status : 'error' ,
96- err : `${ err . message } `
97- } )
98+ err : `Google STT failed: ${ err . message } `
99+ }
100+ events . emit ( 'data' , event )
101+ eventHistory . push ( event )
98102 } )
99103 recognizeStream . on ( 'close' , ( ) => {
100104 events . emit ( 'close' )
@@ -115,6 +119,11 @@ class GoogleSTT {
115119 recognizeStream . destroy ( )
116120 }
117121 recognizeStream = null
122+ } ,
123+ triggerHistoryEmit : ( ) => {
124+ for ( const eh of eventHistory ) {
125+ events . emit ( 'data' , eh )
126+ }
118127 }
119128 }
120129 }
0 commit comments