Изменение языка SpeechRecognizer в Azure Cognitive Services - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь использовать когнитивную службу Azure Speech to Text по примеру Github в Python: https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/258949599ec32c8a7b03fb38a53f2033010b6b26/samples/python/console/speech_sample.py#L203

Я не смог найти в документации, как изменить распознавание языка говорящего, по умолчанию используется английский, и я хочу транскрибировать звук на испанском языке.

Я думаю, что это с функцией SpeechRecognizer, но я не понимаю, как правильно ее использовать.

Это пример кода Github, который я использую:

def speech_recognize_continuous_from_file():
    """performs continuous speech recognition with input from an audio file"""
    # <SpeechContinuousRecognitionWithFile>
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    audio_config = speechsdk.audio.AudioConfig(filename=weatherfilename)

    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)

    done = False

    def stop_cb(evt):
        """callback that stops continuous recognition upon receiving an event `evt`"""
        print('CLOSING on {}'.format(evt))
        speech_recognizer.stop_continuous_recognition()
        nonlocal done
        done = True

    # Connect callbacks to the events fired by the speech recognizer
    speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
    speech_recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
    speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
    speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
    speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
    # stop continuous recognition on either session stopped or canceled events
    speech_recognizer.session_stopped.connect(stop_cb)
    speech_recognizer.canceled.connect(stop_cb)

    # Start continuous speech recognition
    speech_recognizer.start_continuous_recognition()
    while not done:
        time.sleep(.5)
    # </SpeechContinuousRecognitionWithFile>

1 Ответ

0 голосов
/ 05 июня 2019

Конструктор SpeechConfig принимает аргумент speech_recognition_language. Вы должны указать язык в формате BCP-47.

language = 'es-ES' # or perhaps es-MX?

speech_config = speechsdk.SpeechConfig(subscription=speech_key,
                                       region=service_region,
                                       speech_recognition_language=language) 

Дополнительная документация для класса здесь .

...