A client for Amazon Transcribe using the websocket interface
npm install aws-transcribeA client for Amazon Transcribe using the websocket interface
> _WARNING:_ This module is now deprecated and will no longer be maintained. Please use the official package provided by amazon, it can be found here
With NPM install the module with: npm install aws-transcribe --save
With YARN install the module with: yarn add aws-transcribe
An example of streaming from microphone can be found in src/examples/stream-from-microphone.ts
``typescript
import { AwsTranscribe, StreamingClient, TranscriptEvent } from "aws-transcribe"
const client = new AwsTranscribe({
// if these aren't provided, they will be taken from the environment
accessKeyId: "ACCESS KEY HERE",
secretAccessKey: "SECRET KEY HERE",
})
const transcribeStream = client
.createStreamingClient({
region: "eu-west-1",
sampleRate: 16000,
languageCode: "en-US",
})
// enums for returning the event names which the stream will emit
.on(StreamingClient.EVENTS.OPEN, () => console.log(transcribe connection opened))transcribe connection closed
.on(StreamingClient.EVENTS.ERROR, console.error)
.on(StreamingClient.EVENTS.CLOSE, () => console.log())
.on(StreamingClient.EVENTS.DATA, (data: TranscriptEvent) => {
const results = data.Transcript.Results
if (!results || results.length === 0) {
return
}
const result = results[0]
const final = !result.IsPartial
const prefix = final ? "recognized" : "recognizing"
const text = result.Alternatives[0].Transcript
console.log(${prefix} text: ${text})
})
yourStream.pipe(transcribeStream)
`
This creates a service wrapper which can then be used to create a streaming client
The clientConfig is optional and can be provided with the following properties:
- accessKeyId if not provided, the package will look for AWS_ACCESS_KEY_ID environment variablesecretAccessKey
- if not provided, the package will look for AWS_SECRET_ACCESS_KEY environment variable
This will create a presigned url using the config and return an instance of StreamingClient which is a wrapper around the websocket. It will decode binary messages coming from AWS and encode messages to binary when sending them
The transcribeStreamConfig is required and must have the following properties:
- region must be one of "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ca-central-1", "eu-west-1"languageCode
- must be one of "en-US", "en-AU", "en-GB", "fr-CA", "fr-FR", "es-US"sampleRate
- must be between 8000 and 44100 - the supported sample rate differs depending on the language code being used. For more information, go here
It may also optionally include:
- showSpeakerLabel - when true, speaker identification will be enabled
- open - when the socket to aws is openederror
- - any errors sent as part of websocket message or websocket errordata
- - emits the transcription objectclose
- - when the socket to aws closes
set environment variable to below when running your application.
`cli``
DEBUG=aws-transcribe:\*
If you discover a bug, please raise an issue on Github. https://github.com/qasim9872/aws-transcribe/issues
Pull requests are very welcome. Please:
- ensure all tests pass before submitting PR
- add tests for new features
- document new functionality/API additions in README.md
Copyright (c) 2020 Muhammad Qasim. Licensed under the MIT license.