@@ -210,7 +210,34 @@ SpeakerStream.prototype.buildMessage = function() {
210210 alt . timestamps = utterance . timestamps ;
211211 // overwrite the final value
212212 result . final = final ;
213- // todo: split up words_alternatives, keywords, etc and copy to appropriate result for time
213+
214+ var start = utterance . timestamps [ 0 ] [ 1 ] ;
215+ var end = utterance . timestamps [ utterance . timestamps . length - 1 ] [ 2 ] ;
216+
217+ // overwrite the word_alternatives
218+ if ( utterance . result . word_alternatives ) {
219+ var alts = utterance . result . word_alternatives . filter ( function ( walt ) {
220+ return walt . start_time >= start && walt . end_time <= end ;
221+ } ) ;
222+ result . word_alternatives = alts ;
223+ }
224+
225+ // overwrite the keywords spotted
226+ /* eslint-disable camelcase */
227+ var original_keywords_result = utterance . result . keywords_result ;
228+ if ( original_keywords_result ) {
229+ var keywords_result = { } ;
230+ Object . keys ( original_keywords_result ) . forEach ( function ( keyword ) {
231+ var spottings = original_keywords_result [ keyword ] . filter ( function ( spotting ) {
232+ return spotting . start_time >= start && spotting . end_time <= end ;
233+ } ) ;
234+ if ( spottings . length ) {
235+ keywords_result [ keyword ] = spottings ;
236+ }
237+ } ) ;
238+ result . keywords_result = keywords_result ;
239+ }
240+ /* eslint-enable camelcase */
214241
215242 return result ;
216243 } ) ;
0 commit comments