I am encountering an Illegal invocation
error when trying to use microsoft-cognitiveservices-speech-sdk
within a Cloudflare Workers environment. The same code works as expected in a Node.js environment, but it fails when deployed to Cloudflare Workers.
let audioStream = sdk.AudioInputStream.createPushStream();
const res = await fetch("https://cdn.openai.com/API/docs/audio/alloy.wav");
const arrayBuffer= await res.arrayBuffer();
audioStream.write(arrBuf);
audioStream.close();
var audioConfig = sdk.AudioConfig.fromStreamInput(audioStream);
var speechConfig = sdk.SpeechConfig.fromSubscription( "","");
speechConfig.speechRecognitionLanguage = "en-US";
var reco = new sdk.SpeechRecognizer(speechConfig, audioConfig);
reco.recognizing = (s, e) => {
var str =
"(recognizing) Reason: " +
sdk.ResultReason[e.result.reason] +
" Text: " +
e.result.text;
console.log(str);
};
reco.recognized = (s, e) => {
var str =
"(recognized) Reason: " +
sdk.ResultReason[e.result.reason] +
" Text: " +
e.result.text;
console.log(str);
};
reco.canceled = (s, e) => {
var str = "(cancel) Reason: " + sdk.CancellationReason[e.reason];
if (e.reason === sdk.CancellationReason.Error) {
str += ": " + e.errorDetails;
}
console.log("(cancel) Error Details:" + e.errorDetails);
console.log(
"(cancel) Reason Error Code:" +
sdk.CancellationErrorCode[e.errorCode]
);
console.log("(cancel) Reason:" + e.reason);
};
reco.sessionStarted = (s, e) => {
var str = "(sessionStarted) SessionId: " + e.sessionId;
console.log(str);
};
reco.sessionStopped = (s, e) => {
var str = "(sessionStopped) SessionId: " + e.sessionId;
console.log(str);
};
reco.speechStartDetected = (s, e) => {
var str = "(speechStartDetected) SessionId: " + e.sessionId;
console.log(str);
};
reco.speechEndDetected = (s, e) => {
var str = "(speechStartDetected) SessionId: " + e.sessionId;
console.log(str);
reco.stopContinuousRecognitionAsync();
};
reco.speechEndDetected = (s, e) => {
var str = "(speechEndDetected) SessionId: " + e.sessionId;
console.log(str);
};
reco.startContinuousRecognitionAsync();