import time
import azure.cognitiveservices.speech as speechsdk
import logging
# Configure logging
logging.basicConfig(level=logging.INFO)
# The phrase your keyword recognition model triggers on.
KEYWORD = "KEYWORD"
def recognize_keyword_from_wav_file(wav_file_path):
"""Performs keyword-triggered speech recognition with a WAV file."""
global true_positives, false_positives, false_negatives
try:
speech_config = speechsdk.SpeechConfig(subscription='xyz', region='westeurope')
model = speechsdk.KeywordRecognitionModel("./keyword.table")
audio_config = speechsdk.audio.AudioConfig(filename=wav_file_path)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
except Exception as e:
logging.error(f"Failed to initialize speech recognizer: {e}")
return
def recognizing_cb(evt):
"""Callback for recognizing event."""
try:
if evt.result.reason == speechsdk.ResultReason.RecognizingKeyword:
logging.info(f'RECOGNIZING KEYWORD: {evt}')
elif evt.result.reason == speechsdk.ResultReason.RecognizingSpeech:
logging.info(f'RECOGNIZING: {evt}')
except Exception as e:
logging.error(f"Error in recognizing callback: {e}")
def recognized_cb(evt):
"""Callback for recognized event."""
try:
if evt.result.reason == speechsdk.ResultReason.RecognizedKeyword:
logging.info(f'RECOGNIZED KEYWORD: {evt}')
elif evt.result.reason == speechsdk.ResultReason.RecognizedSpeech:
logging.info(f'RECOGNIZED: {evt}')
except Exception as e:
logging.error(f"Error in recognized callback: {e}")
try:
speech_recognizer.recognizing.connect(recognizing_cb)
speech_recognizer.recognized.connect(recognized_cb)
speech_recognizer.session_started.connect(lambda evt: logging.info(f'SESSION STARTED: {evt}'))
speech_recognizer.session_stopped.connect(lambda evt: logging.info(f'SESSION STOPPED {evt}'))
speech_recognizer.canceled.connect(lambda evt: logging.info(f'CANCELED {evt}'))
speech_recognizer.start_keyword_recognition(model)
logging.info(f'Say something starting with "{KEYWORD}" followed by whatever you want...')
speech_recognizer.recognize_once()
speech_recognizer.stop_keyword_recognition()
except Exception as e:
logging.error(f"Error during speech recognition: {e}")
# Example usage:
if __name__ == "__main__":
wav_file_path = "./output01.wav"
recognize_keyword_from_wav_file(wav_file_path)
Это дает мне только RecouncedSpeech, но не RecouncedKeyword. Это происходит при использовании звуковых файлов в качестве входных данных для модели распознавания ключевых слов вместо микрофона по умолчанию, передаваемого с помощью: audio_config = Speechsdk.audio.AudioConfig(use_default_microphone=True), который работает нормально. Есть идеи?
# The phrase your keyword recognition model triggers on. KEYWORD = "KEYWORD"
def recognize_keyword_from_wav_file(wav_file_path): """Performs keyword-triggered speech recognition with a WAV file.""" global true_positives, false_positives, false_negatives
try: speech_config = speechsdk.SpeechConfig(subscription='xyz', region='westeurope') model = speechsdk.KeywordRecognitionModel("./keyword.table") audio_config = speechsdk.audio.AudioConfig(filename=wav_file_path) speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) except Exception as e: logging.error(f"Failed to initialize speech recognizer: {e}") return
def recognizing_cb(evt): """Callback for recognizing event."""
try: if evt.result.reason == speechsdk.ResultReason.RecognizingKeyword: logging.info(f'RECOGNIZING KEYWORD: {evt}') elif evt.result.reason == speechsdk.ResultReason.RecognizingSpeech: logging.info(f'RECOGNIZING: {evt}') except Exception as e: logging.error(f"Error in recognizing callback: {e}")
def recognized_cb(evt): """Callback for recognized event."""
try: if evt.result.reason == speechsdk.ResultReason.RecognizedKeyword: logging.info(f'RECOGNIZED KEYWORD: {evt}') elif evt.result.reason == speechsdk.ResultReason.RecognizedSpeech: logging.info(f'RECOGNIZED: {evt}') except Exception as e: logging.error(f"Error in recognized callback: {e}")
speech_recognizer.start_keyword_recognition(model) logging.info(f'Say something starting with "{KEYWORD}" followed by whatever you want...')
speech_recognizer.recognize_once()
speech_recognizer.stop_keyword_recognition() except Exception as e: logging.error(f"Error during speech recognition: {e}")
# Example usage: if __name__ == "__main__": wav_file_path = "./output01.wav" recognize_keyword_from_wav_file(wav_file_path) [/code] Это дает мне только RecouncedSpeech, но не RecouncedKeyword. Это происходит при использовании звуковых файлов в качестве входных данных для модели распознавания ключевых слов вместо микрофона по умолчанию, передаваемого с помощью: audio_config = Speechsdk.audio.AudioConfig(use_default_microphone=True), который работает нормально. Есть идеи?
У меня есть модель со свойством enum. Это свойство имеет пользовательский перечисление для преобразователя строки, определенного в конфигурации Code-Pryst EF Core. У меня также есть класс таблицы поиска для этого перечисления, который также имеет...
В моей модели1 есть мутаторы этого типа, которые заменяют десятичный разделитель точкой с запятой:
protected function fee(): Attribute{
return Attribute::make(
get: fn (?string $value) => str_replace('.', ',', $value) ?: 0,
set: fn (?string $value)...
В моей модели1 есть мутаторы этого типа, которые заменяют десятичный разделитель точкой с запятой:
protected function fee(): Attribute{
return Attribute::make(
get: fn (?string $value) => str_replace('.', ',', $value) ?: 0,
set: fn (?string $value)...