#python #speech-recognition #azure-speech
#python #распознавание речи #azure-речь
Вопрос:
Я пытаюсь создать пользовательское wakeword с использованием Azure cognitive services и Python. Я следую руководству по быстрому запуску —
Я сгенерировал модель ключевых слов с помощью 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 .
- Можем ли мы использовать класс распознавания и метод start_keyword_recognition из коробки.
- Если нет, пожалуйста, предоставьте мне какие-либо указания о том, как я могу это реализовать.
Пожалуйста, дайте мне знать, если потребуется дополнительная информация.
@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 является —