Azure Speech SDK | Python | Реализация распознавания ключевых слов

#python #speech-recognition #azure-speech

#python #распознавание речи #azure-речь

Вопрос:

Я пытаюсь создать пользовательское wakeword с использованием Azure cognitive services и Python. Я следую руководству по быстрому запуску —

azure quickstart

Я сгенерировал модель ключевых слов с помощью speech Studio и теперь пытаюсь реализовать ее на Python. В quickstart есть пример C #, в котором используются когнитивные сервисы.Речь, когнитивные сервисы.Речь.Аудио. В .NET есть класс KeywordRecognizer, который реализует распознавание ключевых слов.

В Python нет класса KeywordRecognizer, однако есть распознаватель, у него есть метод start_keyword_recognition.

Изначально я использовал его, как показано ниже —

 keywordModel = speechsdk.KeywordRecognitionModel("hello_raven.table")
#audioConfig = audiosdk.AudioConfig(use_default_microphone = True)
keywordRecognizer = speechsdk.Recognizer()
result = keywordRecognizer.start_keyword_recognition(keywordModel)
  

Когда я его выполнил, я получил следующую ошибку —

Ошибка атрибута: объект ‘Recognizer’ не имеет атрибута ‘_impl’

когда я ссылался на speech.py он имеет следующую реализацию распознавания ключевых слов —

 def start_keyword_recognition(self, model: KeywordRecognitionModel):
    """
    Synchronously initiates keyword recognition operation.

    :param model: the keyword recognition model that specifies the keyword to be recognized.
    """
    return self._impl.start_keyword_recognition(model._impl)
  

Класс recognizer имеет статический метод, который возвращает _impl, но он использует метод _from_config, который я не могу найти в speech.py .

  1. Можем ли мы использовать класс распознавания и метод start_keyword_recognition из коробки.
  2. Если нет, пожалуйста, предоставьте мне какие-либо указания о том, как я могу это реализовать.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

  @staticmethod
    def _get_impl(reco_type, speech_config, audio_config):
        if audio_config is not None:
            _impl = reco_type._from_config(speech_config._impl, audio_config._impl)
        else:
            _impl = reco_type._from_config(speech_config._impl, None)

        return _impl
  

Ответ №1:

Команда Azure загрузила образцы почти для всех случаев, и я получил решение оттуда.

Фрагмент кода с сайта Github —

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

# Creates an instance of a keyword recognition model. Update this to
# point to the location of your keyword recognition model.
model = speechsdk.KeywordRecognitionModel("YourKeywordRecognitionModelFile.table")

# The phrase your keyword recognition model triggers on.
keyword = "YourKeyword"

speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)

done = False

def stop_cb(evt):
    """callback that signals to stop continuous recognition upon receiving an event `evt`"""
..........
..........

# Start keyword recognition
speech_recognizer.start_keyword_recognition(model)
print('Say something starting with "{}" followed by whatever you want...'.format(keyword))
while not done:
    time.sleep(.5)

speech_recognizer.stop_keyword_recognition()
  

Ссылка на сайт github является —

Примеры Github Azure