github.com/aavshr/aws-sdk-go@v1.41.3/service/transcribestreamingservice/eventstream_example_test.go (about)

     1  //go:build go1.7
     2  // +build go1.7
     3  
     4  package transcribestreamingservice
     5  
     6  import (
     7  	"context"
     8  	"io"
     9  	"log"
    10  
    11  	"github.com/aavshr/aws-sdk-go/aws"
    12  	"github.com/aavshr/aws-sdk-go/aws/session"
    13  )
    14  
    15  func 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  }