Skip to content

Problem with custom endpoint when auto detecting the language #2

@adriensas

Description

@adriensas

This issue is for a:

- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

I'm trying to use an autoDetectConfig with custom model endpoint, I've modified sttFromMic in src/App.js as follow :

   async sttFromMic() {
        const tokenObj = await getTokenOrRefresh();
        const speechConfig = speechsdk.SpeechConfig.fromAuthorizationToken(tokenObj.authToken, tokenObj.region);
        
        var enLanguageConfig = speechsdk.SourceLanguageConfig.fromLanguage("en-US");
        var frLanguageConfig = speechsdk.SourceLanguageConfig.fromLanguage("fr-FR", "b9a605f6-0a51-4ffa-9bda-c9ca9e951cb2");
        var autoDetectConfig = speechsdk.AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs([enLanguageConfig, frLanguageConfig]);
        
        const audioConfig = speechsdk.AudioConfig.fromDefaultMicrophoneInput();
        const recognizer = speechsdk.SpeechRecognizer.FromConfig(speechConfig, autoDetectConfig, audioConfig);

        this.setState({
            displayText: 'speak into your microphone...'
        });

        recognizer.recognizeOnceAsync(result => {
            let displayText;
            if (result.reason === ResultReason.RecognizedSpeech) {
                displayText = `RECOGNIZED: Text=${result.text}`
            } else {
                displayText = 'ERROR: Speech was cancelled or could not be recognized. Ensure your microphone is working properly.';
            }

            this.setState({
                displayText: displayText
            });
        });
    }

But it does not seems to use my custom model in french : I don't get the correct transcription (I have the standard transcription not the one from my custom model) and I don't get the corresponding logs in my custom model.
I tried in python with the same auth token and it works (I get the correct transcription :

import azure.cognitiveservices.speech as speechsdk

def from_mic():
    en_language_config = speechsdk.languageconfig.SourceLanguageConfig("en-US")
    fr_language_config = speechsdk.languageconfig.SourceLanguageConfig("fr-FR", 'b9a605f6-0a51-4ffa-9bda-c9ca9e951cb2')
    auto_detect_source_language_config = speechsdk.languageconfig.AutoDetectSourceLanguageConfig(sourceLanguageConfigs=[en_language_config, fr_language_config])
    #speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    speech_config = speechsdk.SpeechConfig(auth_token=token, region=service_region)
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, auto_detect_source_language_config=auto_detect_source_language_config)
    
    print("Speak into your microphone.")
    result = speech_recognizer.recognize_once_async().get()
    print(result.text)

from_mic()

Any log messages given by the failure

I don't get any log or error

Expected/desired behavior

When detecting french it should use my custom model as described in https://docs.microsoft.com/fr-fr/azure/cognitive-services/speech-service/how-to-automatic-language-detection?pivots=programming-language-javascript

OS and Version?

Mac OS Big Sur

Versions

"microsoft-cognitiveservices-speech-sdk": "^1.17.0"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions