Integrate Microsoft Azure Speech Services API in Node.js
- Ensure you have installed the necessary packages. Use the `azure-cognitiveservices-speech` package for integrating with Speech Services in Node.js.
npm install @azure/cognitiveservices-speech-sdk
- Import the library within your Node.js application using `require`. This library will allow you to connect and use various Azure Speech Services functionalities.
const sdk = require("microsoft-cognitiveservices-speech-sdk");
- Create a configuration setup by instantiating a `SpeechConfig` object with your Azure Subscription Key and Service Region. This step is crucial to authorize the requests to Azure.
const subscriptionKey = 'YOUR_SUBSCRIPTION_KEY';
const serviceRegion = 'YOUR_SERVICE_REGION';
const speechConfig = sdk.SpeechConfig.fromSubscription(subscriptionKey, serviceRegion);
- Set up the audio input source by creating an `AudioConfig` object. This can be linked to a microphone or an audio file as per your requirements.
const audioConfig = sdk.AudioConfig.fromDefaultMicrophoneInput();
- Create a speech recognizer or synthesizer object, depending on your intended functionality. For speech recognition:
const recognizer = new sdk.SpeechRecognizer(speechConfig, audioConfig);
- Set up event handlers to manage different outcomes such as recognized speech, errors, or the end of the session.
recognizer.recognized = (s, e) => {
console.log(`RECOGNIZED: Text=${e.result.text}`);
};
recognizer.canceled = (s, e) => {
console.log(`CANCELED: Reason=${e.reason}`);
};
recognizer.sessionStopped = (s, e) => {
console.log("\n Session stopped event.");
};
- Start the recognizer or synthesizer to enable the specified functionality. For instance, start speech recognition:
recognizer.startContinuousRecognitionAsync();
- Alternatively, if you are interested in speech synthesis (converting text to speech), utilize the `SpeechSynthesizer` class:
const synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig);
synthesizer.speakTextAsync("Hello World!",
result => {
if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) {
console.log("synthesis finished.");
} else {
console.error(`Speech synthesis canceled, ${result.errorDetails}`);
}
synthesizer.close();
},
error => {
console.error("Error - " + error);
synthesizer.close();
}
);
- Ensure you handle any exceptions or errors that may occur while running your application to provide smooth end-user experience.
- Close any opened connections after you finish operations with the Speech API to free up resources effectively.
recognizer.stopContinuousRecognitionAsync(() => console.log("\n Stopped recognition."));
- Test your application thoroughly to ensure all speech functionalities integrate seamlessly and perform as expected.
By implementing these steps, you should be able to successfully integrate Microsoft Azure Speech Services API into your Node.js application.