1//go:build go1.7 2// +build go1.7 3 4package transcribestreamingservice 5 6import ( 7 "context" 8 "io" 9 "log" 10 11 "github.com/aws/aws-sdk-go/aws" 12 "github.com/aws/aws-sdk-go/aws/session" 13) 14 15func ExampleTranscribeStreamingService_StartStreamTranscription_streamAudio() { 16 sess, err := session.NewSession() 17 if err != nil { 18 log.Fatalf("failed to load SDK configuration, %v", err) 19 } 20 21 client := New(sess) 22 resp, err := client.StartStreamTranscription(&StartStreamTranscriptionInput{ 23 LanguageCode: aws.String(LanguageCodeEnUs), 24 MediaEncoding: aws.String(MediaEncodingPcm), 25 MediaSampleRateHertz: aws.Int64(16000), 26 }) 27 if err != nil { 28 log.Fatalf("failed to start streaming, %v", err) 29 } 30 stream := resp.GetStream() 31 defer stream.Close() 32 33 var audio io.Reader 34 // TODO Set audio to an io.Reader to stream audio bytes from. 35 go StreamAudioFromReader(context.Background(), stream.Writer, 10*1024, audio) 36 37 for event := range stream.Events() { 38 switch e := event.(type) { 39 case *TranscriptEvent: 40 log.Printf("got event, %v results", len(e.Transcript.Results)) 41 for _, res := range e.Transcript.Results { 42 for _, alt := range res.Alternatives { 43 log.Printf("* %s", aws.StringValue(alt.Transcript)) 44 } 45 } 46 default: 47 log.Fatalf("unexpected event, %T", event) 48 } 49 } 50 51 if err := stream.Err(); err != nil { 52 log.Fatalf("expect no error from stream, got %v", err) 53 } 54} 55