source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSRecordingTask.java [304:356]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    String contactId, TranscribeStreamingRetryClient client,
    TranscribedSegmentWriter transcribedSegmentWriter,
    String tableName, String channel) {
    return client.startStreamTranscription(
        // since we're definitely working with telephony audio, we know that's 8 kHz
        getRequest(8000, languageCode),
        new KVSAudioStreamPublisher(
            kvsStreamTrackObject.getStreamingMkvReader(),
            contactId,
            kvsStreamTrackObject.getOutputStream(),
            kvsStreamTrackObject.getTagProcessor(),
            kvsStreamTrackObject.getFragmentVisitor(),
            kvsStreamTrackObject.getTrackName()),
        new StreamTranscriptionBehaviorImpl(transcribedSegmentWriter, tableName),
        channel
    );
}

/**
 * Write the kvs stream to the output buffer
 *
 * @param kvsStreamTrackObject
 * @param contactId
 * @throws Exception
 */
private void writeAudioBytesToKvsStream(KVSStreamTrackObject kvsStreamTrackObject, String contactId) throws Exception {

    ByteBuffer audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(),
        kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName());

    while (audioBuffer.remaining() > 0) {
        byte[] audioBytes = new byte[audioBuffer.remaining()];
        audioBuffer.get(audioBytes);
        kvsStreamTrackObject.getOutputStream().write(audioBytes);
        audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(),
            kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName());
    }
}

/**
 * @return AWS credentials to be used to connect to s3 (for fetching and uploading audio) and KVS
 */
private static AWSCredentialsProvider getAWSCredentials() {
    return DefaultAWSCredentialsProviderChain.getInstance();
}

/**
 * @return AWS credentials to be used to connect to Transcribe service. This example uses the default credentials
 * provider, which looks for environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) or a credentials
 * file on the system running this program.
 */
private static AwsCredentialsProvider getTranscribeCredentials() {
    return DefaultCredentialsProvider.create();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



source/kvs_transcribe_streaming_lambda/src/main/java/com/amazonaws/kvstranscribestreaming/KVSTranscribeStreamingLambda.java [314:366]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                                                         String contactId, TranscribeStreamingRetryClient client,
                                                                         TranscribedSegmentWriter transcribedSegmentWriter,
                                                                         String tableName, String channel) {
        return client.startStreamTranscription(
                // since we're definitely working with telephony audio, we know that's 8 kHz
                getRequest(8000, languageCode),
                new KVSAudioStreamPublisher(
                        kvsStreamTrackObject.getStreamingMkvReader(),
                        contactId,
                        kvsStreamTrackObject.getOutputStream(),
                        kvsStreamTrackObject.getTagProcessor(),
                        kvsStreamTrackObject.getFragmentVisitor(),
                        kvsStreamTrackObject.getTrackName()),
                new StreamTranscriptionBehaviorImpl(transcribedSegmentWriter, tableName),
                channel
        );
    }

    /**
     * Write the kvs stream to the output buffer
     *
     * @param kvsStreamTrackObject
     * @param contactId
     * @throws Exception
     */
    private void writeAudioBytesToKvsStream(KVSStreamTrackObject kvsStreamTrackObject, String contactId) throws Exception {

        ByteBuffer audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(),
                kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName());

        while (audioBuffer.remaining() > 0) {
            byte[] audioBytes = new byte[audioBuffer.remaining()];
            audioBuffer.get(audioBytes);
            kvsStreamTrackObject.getOutputStream().write(audioBytes);
            audioBuffer = KVSUtils.getByteBufferFromStream(kvsStreamTrackObject.getStreamingMkvReader(),
                    kvsStreamTrackObject.getFragmentVisitor(), kvsStreamTrackObject.getTagProcessor(), contactId, kvsStreamTrackObject.getTrackName());
        }
    }

    /**
     * @return AWS credentials to be used to connect to s3 (for fetching and uploading audio) and KVS
     */
    private static AWSCredentialsProvider getAWSCredentials() {
        return DefaultAWSCredentialsProviderChain.getInstance();
    }

    /**
     * @return AWS credentials to be used to connect to Transcribe service. This example uses the default credentials
     * provider, which looks for environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) or a credentials
     * file on the system running this program.
     */
    private static AwsCredentialsProvider getTranscribeCredentials() {
        return DefaultCredentialsProvider.create();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



