From 9b6cf024aedf4c31245417985bc3ad24fe89f8d9 Mon Sep 17 00:00:00 2001 From: SwartzMss Date: Wed, 21 May 2025 20:49:42 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20#3=20=E4=BD=BF=E7=94=A8=20Azure=20?= =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E7=BF=BB=E8=AF=91=E6=9B=BF=E6=8D=A2=E7=99=BE?= =?UTF-8?q?=E5=BA=A6=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: SwartzMss --- MeetingAssistant.pro | 24 +- src/azurespeechapi.cpp | 123 ++ src/azurespeechapi.h | 48 + src/baiduapi.cpp | 206 -- src/baiduapi.h | 50 - src/mainwindow.cpp | 287 +-- src/mainwindow.h | 57 +- src/mainwindow.ui | 111 +- ...icrosoft.CognitiveServices.Speech.core.dll | Bin 0 -> 2362416 bytes ...iveServices.Speech.extension.audio.sys.dll | Bin 0 -> 140344 bytes ...gnitiveServices.Speech.extension.codec.dll | Bin 0 -> 113704 bytes ...CognitiveServices.Speech.extension.kws.dll | Bin 0 -> 325160 bytes ...itiveServices.Speech.extension.kws.ort.dll | Bin 0 -> 2082336 bytes ....CognitiveServices.Speech.extension.lu.dll | Bin 0 -> 400424 bytes .../include/c_api/CMakeLists.txt | 8 + .../include/c_api/azac_api_c_common.h | 79 + .../include/c_api/azac_api_c_diagnostics.h | 78 + .../include/c_api/azac_api_c_error.h | 22 + .../include/c_api/azac_api_c_pal.h | 11 + .../include/c_api/azac_debug.h | 843 ++++++++ .../include/c_api/azac_error.h | 458 +++++ .../include/c_api/speechapi_c.h | 51 + .../include/c_api/speechapi_c_audio_config.h | 27 + .../speechapi_c_audio_processing_options.h | 173 ++ .../include/c_api/speechapi_c_audio_stream.h | 68 + .../c_api/speechapi_c_audio_stream_format.h | 93 + ...eechapi_c_auto_detect_source_lang_config.h | 15 + .../include/c_api/speechapi_c_common.h | 81 + .../include/c_api/speechapi_c_connection.h | 46 + .../include/c_api/speechapi_c_conversation.h | 28 + ...hapi_c_conversation_transcription_result.h | 11 + .../speechapi_c_conversation_translator.h | 63 + .../include/c_api/speechapi_c_diagnostics.h | 8 + .../c_api/speechapi_c_dialog_service_config.h | 15 + .../speechapi_c_dialog_service_connector.h | 92 + .../speechapi_c_embedded_speech_config.h | 21 + .../include/c_api/speechapi_c_error.h | 9 + .../c_api/speechapi_c_ext_audiocompression.h | 105 + .../include/c_api/speechapi_c_factory.h | 29 + .../include/c_api/speechapi_c_grammar.h | 33 + .../c_api/speechapi_c_hybrid_speech_config.h | 9 + .../c_api/speechapi_c_intent_recognizer.h | 16 + .../include/c_api/speechapi_c_intent_result.h | 11 + .../c_api/speechapi_c_intent_trigger.h | 17 + .../include/c_api/speechapi_c_json.h | 37 + .../speechapi_c_keyword_recognition_model.h | 17 + ...speechapi_c_language_understanding_model.h | 18 + .../include/c_api/speechapi_c_meeting.h | 28 + ...speechapi_c_meeting_transcription_result.h | 12 + .../include/c_api/speechapi_c_operations.h | 12 + .../include/c_api/speechapi_c_participant.h | 15 + .../speechapi_c_pattern_matching_model.h | 33 + ...echapi_c_pronunciation_assessment_config.h | 33 + .../include/c_api/speechapi_c_property_bag.h | 162 ++ .../include/c_api/speechapi_c_recognizer.h | 67 + .../include/c_api/speechapi_c_result.h | 109 + .../include/c_api/speechapi_c_session.h | 16 + .../c_api/speechapi_c_source_lang_config.h | 13 + .../c_api/speechapi_c_speaker_recognition.h | 37 + .../include/c_api/speechapi_c_speech_config.h | 171 ++ .../speechapi_c_speech_recognition_model.h | 13 + .../speechapi_c_speech_translation_config.h | 16 + .../speechapi_c_speech_translation_model.h | 14 + .../c_api/speechapi_c_synthesis_request.h | 17 + .../include/c_api/speechapi_c_synthesizer.h | 75 + .../speechapi_c_translation_recognizer.h | 17 + .../c_api/speechapi_c_translation_result.h | 14 + .../include/c_api/speechapi_c_user.h | 13 + .../azure_speech_sdk/include/c_api/spxdebug.h | 548 +++++ .../azure_speech_sdk/include/c_api/spxerror.h | 455 +++++ .../include/cxx_api/CMakeLists.txt | 9 + .../include/cxx_api/azac_api_cxx_common.h | 80 + .../include/cxx_api/speechapi_cxx.h | 117 ++ .../cxx_api/speechapi_cxx_audio_config.h | 338 ++++ .../cxx_api/speechapi_cxx_audio_data_stream.h | 248 +++ .../speechapi_cxx_audio_processing_options.h | 358 ++++ .../cxx_api/speechapi_cxx_audio_stream.h | 995 ++++++++++ .../speechapi_cxx_audio_stream_format.h | 215 ++ ...chapi_cxx_auto_detect_source_lang_config.h | 141 ++ ...chapi_cxx_auto_detect_source_lang_result.h | 85 + .../speechapi_cxx_class_language_model.h | 70 + .../include/cxx_api/speechapi_cxx_common.h | 16 + .../cxx_api/speechapi_cxx_connection.h | 346 ++++ .../speechapi_cxx_connection_eventargs.h | 68 + .../speechapi_cxx_connection_message.h | 152 ++ ...eechapi_cxx_connection_message_eventargs.h | 79 + .../cxx_api/speechapi_cxx_conversation.h | 340 ++++ .../speechapi_cxx_conversation_transcriber.h | 509 +++++ ...cxx_conversation_transcription_eventargs.h | 165 ++ ...pi_cxx_conversation_transcription_result.h | 72 + .../speechapi_cxx_conversation_translator.h | 448 +++++ ...chapi_cxx_conversation_translator_events.h | 262 +++ ...versational_language_understanding_model.h | 89 + .../speechapi_cxx_dialog_service_config.h | 268 +++ .../speechapi_cxx_dialog_service_connector.h | 547 +++++ ...i_cxx_dialog_service_connector_eventargs.h | 148 ++ .../speechapi_cxx_embedded_speech_config.h | 324 +++ .../include/cxx_api/speechapi_cxx_enums.h | 1757 +++++++++++++++++ .../cxx_api/speechapi_cxx_event_logger.h | 108 + .../include/cxx_api/speechapi_cxx_eventargs.h | 47 + .../cxx_api/speechapi_cxx_eventsignal.h | 200 ++ .../cxx_api/speechapi_cxx_eventsignalbase.h | 164 ++ .../cxx_api/speechapi_cxx_file_logger.h | 115 ++ .../include/cxx_api/speechapi_cxx_grammar.h | 70 + .../cxx_api/speechapi_cxx_grammar_list.h | 90 + .../cxx_api/speechapi_cxx_grammar_phrase.h | 64 + .../speechapi_cxx_hybrid_speech_config.h | 161 ++ ...eechapi_cxx_intent_recognition_eventargs.h | 169 ++ .../speechapi_cxx_intent_recognition_result.h | 119 ++ .../cxx_api/speechapi_cxx_intent_recognizer.h | 513 +++++ .../cxx_api/speechapi_cxx_intent_trigger.h | 87 + ...echapi_cxx_keyword_recognition_eventargs.h | 86 + .../speechapi_cxx_keyword_recognition_model.h | 101 + ...speechapi_cxx_keyword_recognition_result.h | 44 + .../speechapi_cxx_keyword_recognizer.h | 213 ++ ...eechapi_cxx_language_understanding_model.h | 113 ++ .../include/cxx_api/speechapi_cxx_log_level.h | 66 + .../include/cxx_api/speechapi_cxx_meeting.h | 340 ++++ .../speechapi_cxx_meeting_transcriber.h | 467 +++++ ...hapi_cxx_meeting_transcription_eventargs.h | 168 ++ ...eechapi_cxx_meeting_transcription_result.h | 96 + .../cxx_api/speechapi_cxx_memory_logger.h | 163 ++ .../cxx_api/speechapi_cxx_participant.h | 222 +++ .../speechapi_cxx_pattern_matching_entity.h | 46 + .../speechapi_cxx_pattern_matching_intent.h | 36 + .../speechapi_cxx_pattern_matching_model.h | 372 ++++ .../speechapi_cxx_phrase_list_grammar.h | 92 + ...hapi_cxx_pronunciation_assessment_config.h | 222 +++ ...hapi_cxx_pronunciation_assessment_result.h | 142 ++ .../cxx_api/speechapi_cxx_properties.h | 99 + ...eechapi_cxx_recognition_async_recognizer.h | 473 +++++ ...pi_cxx_recognition_base_async_recognizer.h | 53 + .../speechapi_cxx_recognition_eventargs.h | 68 + .../speechapi_cxx_recognition_result.h | 319 +++ .../cxx_api/speechapi_cxx_recognizer.h | 72 + .../include/cxx_api/speechapi_cxx_session.h | 86 + .../cxx_api/speechapi_cxx_session_eventargs.h | 73 + .../cxx_api/speechapi_cxx_smart_handle.h | 60 + .../speechapi_cxx_source_lang_config.h | 91 + ...speechapi_cxx_source_language_recognizer.h | 173 ++ ...eechapi_cxx_speaker_identification_model.h | 77 + ...speechapi_cxx_speaker_recognition_result.h | 236 +++ .../speechapi_cxx_speaker_recognizer.h | 142 ++ ...speechapi_cxx_speaker_verification_model.h | 71 + .../cxx_api/speechapi_cxx_speech_config.h | 491 +++++ ...eechapi_cxx_speech_recognition_eventargs.h | 169 ++ .../speechapi_cxx_speech_recognition_model.h | 108 + .../speechapi_cxx_speech_recognition_result.h | 45 + .../cxx_api/speechapi_cxx_speech_recognizer.h | 351 ++++ ..._cxx_speech_synthesis_bookmark_eventargs.h | 81 + ...speechapi_cxx_speech_synthesis_eventargs.h | 70 + .../speechapi_cxx_speech_synthesis_request.h | 271 +++ .../speechapi_cxx_speech_synthesis_result.h | 310 +++ ...pi_cxx_speech_synthesis_viseme_eventargs.h | 88 + ...speech_synthesis_word_boundary_eventargs.h | 120 ++ .../speechapi_cxx_speech_synthesizer.h | 793 ++++++++ .../speechapi_cxx_speech_translation_config.h | 213 ++ .../speechapi_cxx_speech_translation_model.h | 120 ++ .../cxx_api/speechapi_cxx_string_helpers.h | 137 ++ .../speechapi_cxx_synthesis_voices_result.h | 165 ++ .../speechapi_cxx_translation_eventargs.h | 235 +++ .../speechapi_cxx_translation_recognizer.h | 352 ++++ .../speechapi_cxx_translation_result.h | 175 ++ .../include/cxx_api/speechapi_cxx_user.h | 77 + .../include/cxx_api/speechapi_cxx_utils.h | 312 +++ .../cxx_api/speechapi_cxx_voice_info.h | 214 ++ .../cxx_api/speechapi_cxx_voice_profile.h | 109 + .../speechapi_cxx_voice_profile_client.h | 262 +++ ...hapi_cxx_voice_profile_enrollment_result.h | 242 +++ ...peechapi_cxx_voice_profile_phrase_result.h | 194 ++ .../speechapi_cxx_voice_profile_result.h | 180 ++ ...icrosoft.CognitiveServices.Speech.core.lib | Bin 0 -> 201752 bytes 172 files changed, 25917 insertions(+), 590 deletions(-) create mode 100644 src/azurespeechapi.cpp create mode 100644 src/azurespeechapi.h delete mode 100644 src/baiduapi.cpp delete mode 100644 src/baiduapi.h create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.core.dll create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.audio.sys.dll create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.codec.dll create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.dll create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.ort.dll create mode 100644 third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.lu.dll create mode 100644 third_party/azure_speech_sdk/include/c_api/CMakeLists.txt create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_api_c_common.h create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_api_c_diagnostics.h create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_api_c_error.h create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_api_c_pal.h create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_debug.h create mode 100644 third_party/azure_speech_sdk/include/c_api/azac_error.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_processing_options.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream_format.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_auto_detect_source_lang_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_common.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_connection.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_transcription_result.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_translator.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_diagnostics.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_connector.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_embedded_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_error.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_ext_audiocompression.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_factory.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_grammar.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_hybrid_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_result.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_trigger.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_json.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_keyword_recognition_model.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_language_understanding_model.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting_transcription_result.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_operations.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_participant.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_pattern_matching_model.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_pronunciation_assessment_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_property_bag.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_result.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_session.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_source_lang_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_speaker_recognition.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_recognition_model.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_config.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_model.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesis_request.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesizer.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_result.h create mode 100644 third_party/azure_speech_sdk/include/c_api/speechapi_c_user.h create mode 100644 third_party/azure_speech_sdk/include/c_api/spxdebug.h create mode 100644 third_party/azure_speech_sdk/include/c_api/spxerror.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/CMakeLists.txt create mode 100644 third_party/azure_speech_sdk/include/cxx_api/azac_api_cxx_common.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_data_stream.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_processing_options.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream_format.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_class_language_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_common.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcriber.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator_events.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversational_language_understanding_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_embedded_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_enums.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_event_logger.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignal.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignalbase.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_file_logger.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_list.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_phrase.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_hybrid_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_trigger.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_language_understanding_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_log_level.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcriber.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_memory_logger.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_participant.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_entity.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_intent.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_phrase_list_grammar.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_properties.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_async_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_base_async_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_smart_handle.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_lang_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_language_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_identification_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognition_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_verification_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_bookmark_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_request.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_viseme_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_word_boundary_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_config.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_model.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_string_helpers.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_synthesis_voices_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_eventargs.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_recognizer.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_user.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_utils.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_info.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_client.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_enrollment_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_phrase_result.h create mode 100644 third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_result.h create mode 100644 third_party/azure_speech_sdk/lib/Microsoft.CognitiveServices.Speech.core.lib diff --git a/MeetingAssistant.pro b/MeetingAssistant.pro index ab3e1ae..0c7139f 100644 --- a/MeetingAssistant.pro +++ b/MeetingAssistant.pro @@ -17,14 +17,14 @@ SOURCES += \ src/main.cpp \ src/mainwindow.cpp \ src/audioprocessor.cpp \ - src/baiduapi.cpp \ + src/azurespeechapi.cpp \ src/logger.cpp \ src/wasapiaudiocapture.cpp HEADERS += \ src/mainwindow.h \ src/audioprocessor.h \ - src/baiduapi.h \ + src/azurespeechapi.h \ src/logger.h \ src/wasapiaudiocapture.h @@ -45,4 +45,22 @@ INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtNetwork INCLUDEPATH += $$[QT_INSTALL_HEADERS]/QtMultimedia # 添加项目源文件目录 -INCLUDEPATH += src \ No newline at end of file +INCLUDEPATH += src + +# Azure Speech SDK (本地路径) +INCLUDEPATH += third_party/azure_speech_sdk/include/cxx_api +INCLUDEPATH += third_party/azure_speech_sdk/include/c_api + +# 添加库路径 +LIBS += -L$$PWD/third_party/azure_speech_sdk/lib \ + -lMicrosoft.CognitiveServices.Speech.core + +# 复制运行时依赖 +win32 { + QMAKE_POST_LINK += $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.core.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.core.dll\") && \ + $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.extension.audio.sys.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.extension.audio.sys.dll\") && \ + $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.extension.codec.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.extension.codec.dll\") && \ + $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.extension.kws.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.extension.kws.dll\") && \ + $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.extension.kws.ort.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.extension.kws.ort.dll\") && \ + $$quote(cmd /c copy /Y \"$$PWD\\third_party\\azure_speech_sdk\\bin\\Microsoft.CognitiveServices.Speech.extension.lu.dll\" \"$$OUT_PWD\\release\\Microsoft.CognitiveServices.Speech.extension.lu.dll\") +} \ No newline at end of file diff --git a/src/azurespeechapi.cpp b/src/azurespeechapi.cpp new file mode 100644 index 0000000..bb137a0 --- /dev/null +++ b/src/azurespeechapi.cpp @@ -0,0 +1,123 @@ +#include "azurespeechapi.h" +#include + +using namespace Microsoft::CognitiveServices::Speech; +using namespace Microsoft::CognitiveServices::Speech::Translation; +using namespace Microsoft::CognitiveServices::Speech::Audio; + +AzureSpeechAPI::AzureSpeechAPI(QObject *parent) + : QObject(parent) + , isInitialized(false) +{ +} + +AzureSpeechAPI::~AzureSpeechAPI() +{ + stopRecognitionAndTranslation(); +} + +void AzureSpeechAPI::initialize(const QString &subscriptionKey, const QString ®ion) +{ + try { + // 创建语音配置 + speechConfig = SpeechConfig::FromSubscription(subscriptionKey.toStdString(), region.toStdString()); + + // 设置语音识别和翻译的默认参数 + speechConfig->SetSpeechRecognitionLanguage("zh-CN"); + speechConfig->SetProperty(PropertyId::SpeechServiceConnection_InitialSilenceTimeoutMs, "5000"); + speechConfig->SetProperty(PropertyId::SpeechServiceConnection_EndSilenceTimeoutMs, "1000"); + + isInitialized = true; + emit statusChanged("Azure Speech服务初始化成功"); + } + catch (const std::exception& e) { + emit error(QString("初始化失败: %1").arg(e.what())); + } +} + +void AzureSpeechAPI::startRecognitionAndTranslation(const QString &sourceLanguage, const QString &targetLanguage) +{ + if (!isInitialized) { + emit error("请先初始化Azure Speech服务"); + return; + } + + try { + currentSourceLanguage = sourceLanguage; + currentTargetLanguage = targetLanguage; + + // 创建翻译配置 + translationConfig = SpeechTranslationConfig::FromSubscription(speechConfig->GetSubscriptionKey(), speechConfig->GetRegion()); + translationConfig->SetSpeechRecognitionLanguage(sourceLanguage.toStdString()); + translationConfig->AddTargetLanguage(targetLanguage.toStdString()); + + // 创建音频流 + audioStream = PushAudioInputStream::Create(); + + // 创建音频配置 + auto audioConfig = AudioConfig::FromStreamInput(audioStream); + + // 创建识别器 + recognizer = TranslationRecognizer::FromConfig(translationConfig, audioConfig); + + // 设置事件处理 + recognizer->Recognized.Connect([this](const TranslationRecognitionEventArgs& e) { + if (e.Result->Reason == ResultReason::TranslatedSpeech) { + emit recognitionResult(QString::fromStdString(e.Result->Text)); + + // 获取翻译结果 + auto translations = e.Result->Translations; + if (translations.find(currentTargetLanguage.toStdString()) != translations.end()) { + QString translatedText = QString::fromStdString( + translations[currentTargetLanguage.toStdString()]); + emit translationResult(translatedText); + } + } + }); + + recognizer->Canceled.Connect([this](const TranslationRecognitionCanceledEventArgs& e) { + emit error(QString("识别取消: %1").arg(QString::fromStdString(e.ErrorDetails))); + }); + + // 开始连续识别 + recognizer->StartContinuousRecognitionAsync(); + emit statusChanged("开始语音识别和翻译"); + } + catch (const std::exception& e) { + emit error(QString("启动识别失败: %1").arg(e.what())); + } +} + +void AzureSpeechAPI::stopRecognitionAndTranslation() +{ + if (recognizer) { + try { + recognizer->StopContinuousRecognitionAsync(); + recognizer.reset(); + audioStream.reset(); + emit statusChanged("停止语音识别和翻译"); + } + catch (const std::exception& e) { + emit error(QString("停止识别失败: %1").arg(e.what())); + } + } +} + +void AzureSpeechAPI::processAudioData(const QByteArray &audioData) +{ + if (!audioStream) { + emit error("音频流未初始化"); + return; + } + + try { + // 将QByteArray转换为std::vector + std::vector audioBuffer(audioData.begin(), audioData.end()); + + // 写入音频数据 + audioStream->Write(audioBuffer.data(), audioBuffer.size()); + } + catch (const std::exception& e) { + emit error(QString("处理音频数据失败: %1").arg(e.what())); + } +} \ No newline at end of file diff --git a/src/azurespeechapi.h b/src/azurespeechapi.h new file mode 100644 index 0000000..4776465 --- /dev/null +++ b/src/azurespeechapi.h @@ -0,0 +1,48 @@ +#ifndef AZURESPEECHAPI_H +#define AZURESPEECHAPI_H + +#include +#include +#include +#include +#include +#include + +class AzureSpeechAPI : public QObject +{ + Q_OBJECT + +public: + explicit AzureSpeechAPI(QObject *parent = nullptr); + ~AzureSpeechAPI(); + + // 初始化Azure Speech服务 + void initialize(const QString &subscriptionKey, const QString ®ion); + + // 开始语音识别和翻译 + void startRecognitionAndTranslation(const QString &sourceLanguage, const QString &targetLanguage); + + // 停止语音识别和翻译 + void stopRecognitionAndTranslation(); + + // 处理音频数据 + void processAudioData(const QByteArray &audioData); + +signals: + void recognitionResult(const QString &text); + void translationResult(const QString &text); + void error(const QString &message); + void statusChanged(const QString &status); + +private: + std::shared_ptr speechConfig; + std::shared_ptr translationConfig; + std::shared_ptr recognizer; + std::shared_ptr audioStream; + + bool isInitialized; + QString currentSourceLanguage; + QString currentTargetLanguage; +}; + +#endif // AZURESPEECHAPI_H \ No newline at end of file diff --git a/src/baiduapi.cpp b/src/baiduapi.cpp deleted file mode 100644 index e8390d7..0000000 --- a/src/baiduapi.cpp +++ /dev/null @@ -1,206 +0,0 @@ -#include "baiduapi.h" -#include -#include -#include -#include -#include -#include -#include -#include - -BaiduAPI::BaiduAPI(QObject *parent) : QObject(parent) -{ - networkManager = new QNetworkAccessManager(this); -} - -BaiduAPI::~BaiduAPI() -{ - delete networkManager; -} - -void BaiduAPI::testConnection(const QString &appId, const QString &apiKey) -{ - currentAppId = appId; - currentApiKey = apiKey; - - // 生成随机数 - QString salt = QString::number(QRandomGenerator::global()->bounded(1000000)); - // 生成签名 - QString signStr = appId + "test" + salt + apiKey; - QByteArray signBytes = QCryptographicHash::hash(signStr.toUtf8(), QCryptographicHash::Md5); - QString sign = signBytes.toHex(); - - QUrl url("https://fanyi-api.baidu.com/api/trans/vip/translate"); - QUrlQuery query; - query.addQueryItem("q", "test"); - query.addQueryItem("from", "auto"); - query.addQueryItem("to", "zh"); - query.addQueryItem("appid", appId); - query.addQueryItem("salt", salt); - query.addQueryItem("sign", sign); - url.setQuery(query); - - QNetworkRequest request(url); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); - request.setHeader(QNetworkRequest::UserAgentHeader, "MeetingAssistant/1.0"); - - QNetworkReply *reply = networkManager->get(request); - - connect(reply, &QNetworkReply::finished, [=]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray response = reply->readAll(); - QJsonDocument doc = QJsonDocument::fromJson(response); - QJsonObject obj = doc.object(); - - if (obj.contains("trans_result")) { - emit testResult(true, "API连接测试成功"); - } else if (obj.contains("error_code")) { - QString errorMsg = QString("API连接测试失败:%1 - %2") - .arg(obj["error_code"].toString()) - .arg(obj["error_msg"].toString()); - emit testResult(false, errorMsg); - } else { - emit testResult(false, "API连接测试失败:未知错误"); - } - } else { - emit testResult(false, "网络错误: " + reply->errorString()); - } - reply->deleteLater(); - }); -} - -void BaiduAPI::getAccessToken(const QString &appId, const QString &apiKey) -{ - QUrl url("https://aip.baidubce.com/oauth/2.0/token"); - QUrlQuery query; - query.addQueryItem("grant_type", "client_credentials"); - query.addQueryItem("client_id", appId); - query.addQueryItem("client_secret", apiKey); - url.setQuery(query); - - QNetworkRequest request(url); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - - QNetworkReply *reply = networkManager->post(request, QByteArray()); - - connect(reply, &QNetworkReply::finished, [=]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray response = reply->readAll(); - QJsonDocument doc = QJsonDocument::fromJson(response); - QJsonObject obj = doc.object(); - - if (obj.contains("access_token")) { - accessToken = obj["access_token"].toString(); - emit testResult(true, "API连接测试成功"); - } else { - emit testResult(false, "获取访问令牌失败: " + obj["error_description"].toString()); - } - } else { - emit testResult(false, "网络错误: " + reply->errorString()); - } - reply->deleteLater(); - }); -} - -void BaiduAPI::recognizeSpeech(const QByteArray &audioData) -{ - if (accessToken.isEmpty()) { - emit error("未获取访问令牌,请先测试API连接"); - return; - } - - QUrl url("https://vop.baidu.com/server_api"); - QNetworkRequest request(url); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - - QJsonObject json; - json["format"] = "pcm"; - json["rate"] = 16000; - json["channel"] = 1; - json["token"] = accessToken; - json["cuid"] = "MeetingAssistant"; - json["len"] = audioData.size(); - json["speech"] = QString(audioData.toBase64()); - - QNetworkReply *reply = networkManager->post(request, QJsonDocument(json).toJson()); - - connect(reply, &QNetworkReply::finished, [=]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray response = reply->readAll(); - QJsonDocument doc = QJsonDocument::fromJson(response); - QJsonObject obj = doc.object(); - - if (obj.contains("result")) { - QJsonArray results = obj["result"].toArray(); - if (!results.isEmpty()) { - emit recognitionResult(results[0].toString()); - } - } else { - emit error("语音识别失败: " + obj["err_msg"].toString()); - } - } else { - handleNetworkError(reply); - } - reply->deleteLater(); - }); -} - -void BaiduAPI::translateText(const QString &text, const QString &from, const QString &to) -{ - if (currentAppId.isEmpty() || currentApiKey.isEmpty()) { - emit error("未设置APP ID或API Key"); - return; - } - - // 生成随机数 - QString salt = QString::number(QRandomGenerator::global()->bounded(1000000)); - // 生成签名 - QString signStr = currentAppId + text + salt + currentApiKey; - QByteArray signBytes = QCryptographicHash::hash(signStr.toUtf8(), QCryptographicHash::Md5); - QString sign = signBytes.toHex(); - - QUrl url("https://fanyi-api.baidu.com/api/trans/vip/translate"); - QUrlQuery query; - query.addQueryItem("q", text); - query.addQueryItem("from", from); - query.addQueryItem("to", to); - query.addQueryItem("appid", currentAppId); - query.addQueryItem("salt", salt); - query.addQueryItem("sign", sign); - url.setQuery(query); - - QNetworkRequest request(url); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); - request.setHeader(QNetworkRequest::UserAgentHeader, "MeetingAssistant/1.0"); - - QNetworkReply *reply = networkManager->get(request); - - connect(reply, &QNetworkReply::finished, [=]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray response = reply->readAll(); - QJsonDocument doc = QJsonDocument::fromJson(response); - QJsonObject obj = doc.object(); - - if (obj.contains("trans_result")) { - QJsonArray results = obj["trans_result"].toArray(); - if (!results.isEmpty()) { - QJsonObject result = results[0].toObject(); - emit translationResult(result["dst"].toString()); - } - } else if (obj.contains("error_code")) { - QString errorMsg = QString("翻译失败:%1 - %2") - .arg(obj["error_code"].toString()) - .arg(obj["error_msg"].toString()); - emit error(errorMsg); - } - } else { - handleNetworkError(reply); - } - reply->deleteLater(); - }); -} - -void BaiduAPI::handleNetworkError(QNetworkReply *reply) -{ - emit error("网络错误: " + reply->errorString()); -} \ No newline at end of file diff --git a/src/baiduapi.h b/src/baiduapi.h deleted file mode 100644 index 2f0c0c4..0000000 --- a/src/baiduapi.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef BAIDUAPI_H -#define BAIDUAPI_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class BaiduAPI : public QObject -{ - Q_OBJECT - -public: - explicit BaiduAPI(QObject *parent = nullptr); - ~BaiduAPI(); - - // 测试API连接 - void testConnection(const QString &appId, const QString &apiKey); - - // 语音识别 - void recognizeSpeech(const QByteArray &audioData); - - // 翻译文本 - void translateText(const QString &text, const QString &from = "auto", const QString &to = "zh"); - -signals: - void testResult(bool success, const QString &message); - void recognitionResult(const QString &text); - void translationResult(const QString &text); - void error(const QString &message); - -private: - QNetworkAccessManager *networkManager; - QString accessToken; - QString currentAppId; - QString currentApiKey; - - void getAccessToken(const QString &appId, const QString &apiKey); - QString generateSign(const QString &appId, const QString &apiKey); - void handleNetworkError(QNetworkReply *reply); -}; - -#endif // BAIDUAPI_H \ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b90034e..ae829cf 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,253 +1,124 @@ #include "mainwindow.h" -#include -#include +#include "./ui_mainwindow.h" #include -#include -#include -#include -#include -#include -#include -#include -#include "logger.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) - , isRecording(false) + , ui(new Ui::MainWindow) + , audioProcessor(new AudioProcessor(this)) + , azureSpeechApi(new AzureSpeechAPI(this)) { - setupUI(); - loadConfig(); - updateButtonState(); - - audioProcessor = new AudioProcessor(this); - baiduApi = new BaiduAPI(this); + ui->setupUi(this); + // 连接信号和槽 connect(audioProcessor, &AudioProcessor::audioDataReceived, this, &MainWindow::onAudioDataReceived); - connect(baiduApi, &BaiduAPI::recognitionResult, + + connect(azureSpeechApi, &AzureSpeechAPI::recognitionResult, this, &MainWindow::onRecognitionResult); - connect(baiduApi, &BaiduAPI::translationResult, + connect(azureSpeechApi, &AzureSpeechAPI::translationResult, this, &MainWindow::onTranslationResult); - connect(baiduApi, &BaiduAPI::error, - this, &MainWindow::onApiError); - connect(baiduApi, &BaiduAPI::testResult, - this, &MainWindow::onApiTestResult); + connect(azureSpeechApi, &AzureSpeechAPI::error, + this, &MainWindow::onError); + connect(azureSpeechApi, &AzureSpeechAPI::statusChanged, + this, &MainWindow::onStatusChanged); + + // 连接按钮信号 + connect(ui->startButton, &QPushButton::clicked, + this, &MainWindow::onStartButtonClicked); + connect(ui->stopButton, &QPushButton::clicked, + this, &MainWindow::onStopButtonClicked); + connect(ui->testConnectionButton, &QPushButton::clicked, + this, &MainWindow::onTestConnectionButtonClicked); + + // 初始化UI状态 + ui->stopButton->setEnabled(false); } MainWindow::~MainWindow() { + delete ui; delete audioProcessor; - delete baiduApi; + delete azureSpeechApi; } -void MainWindow::setupUI() +void MainWindow::onStartButtonClicked() { - resize(800, 600); - setWindowTitle("Meeting Assistant"); - - QWidget *centralWidget = new QWidget(this); - setCentralWidget(centralWidget); - - QVBoxLayout *mainLayout = new QVBoxLayout(centralWidget); - mainLayout->setSpacing(10); - mainLayout->setContentsMargins(10, 10, 10, 10); - - // 配置区域 - QHBoxLayout *configLayout = new QHBoxLayout(); - configLayout->setSpacing(10); - - QLabel *appIdLabel = new QLabel("APP ID:", this); - appIdInput = new QLineEdit(this); - appIdInput->setMinimumWidth(150); - - QLabel *apiKeyLabel = new QLabel("API Key:", this); - apiKeyInput = new QLineEdit(this); - apiKeyInput->setMinimumWidth(150); - apiKeyInput->setEchoMode(QLineEdit::Password); - - saveConfigButton = new QPushButton("保存配置", this); - testApiButton = new QPushButton("测试API", this); - - configLayout->addWidget(appIdLabel); - configLayout->addWidget(appIdInput); - configLayout->addWidget(apiKeyLabel); - configLayout->addWidget(apiKeyInput); - configLayout->addWidget(saveConfigButton); - configLayout->addWidget(testApiButton); - configLayout->addStretch(); - - mainLayout->addLayout(configLayout); - - // 字幕显示区域 - subtitleDisplay = new QTextEdit(this); - subtitleDisplay->setMinimumHeight(400); - subtitleDisplay->setReadOnly(true); - subtitleDisplay->setFont(QFont("Arial", 16)); - mainLayout->addWidget(subtitleDisplay); + currentAppId = ui->appIdInput->text(); + currentApiKey = ui->appIdInput->text(); + currentRegion = ui->regionInput->text(); - // 控制按钮区域 - QHBoxLayout *controlLayout = new QHBoxLayout(); - controlLayout->setSpacing(10); - - startStopButton = new QPushButton("开始", this); - startStopButton->setMinimumWidth(80); - clearButton = new QPushButton("清除", this); - clearButton->setMinimumWidth(80); - - controlLayout->addWidget(startStopButton); - controlLayout->addWidget(clearButton); - controlLayout->addStretch(); - - mainLayout->addLayout(controlLayout); - - // 状态栏 - statusBar = new QStatusBar(this); - setStatusBar(statusBar); - - // 连接信号和槽 - connect(startStopButton, &QPushButton::clicked, this, &MainWindow::onStartStopClicked); - connect(clearButton, &QPushButton::clicked, this, &MainWindow::onClearClicked); - connect(saveConfigButton, &QPushButton::clicked, this, &MainWindow::onSaveConfigClicked); - connect(testApiButton, &QPushButton::clicked, this, &MainWindow::onTestApiClicked); -} - -void MainWindow::onStartStopClicked() -{ - if (!isRecording) { - if (audioProcessor->startRecording()) { - isRecording = true; - startStopButton->setText("停止"); - statusBar->showMessage("正在录音..."); - Logger::instance().log("开始录音"); - } else { - QMessageBox::critical(this, "错误", "无法启动录音设备"); - Logger::instance().log("无法启动录音设备", "ERROR"); - } - } else { - audioProcessor->stopRecording(); - isRecording = false; - startStopButton->setText("开始"); - statusBar->showMessage("就绪"); - Logger::instance().log("停止录音"); + if (currentAppId.isEmpty() || currentApiKey.isEmpty() || currentRegion.isEmpty()) { + QMessageBox::warning(this, "错误", "请填写完整的Azure Speech服务配置信息"); + return; } -} - -void MainWindow::onClearClicked() -{ - subtitleDisplay->clear(); -} - -void MainWindow::onSaveConfigClicked() -{ - saveConfig(); - QMessageBox::information(this, "成功", "配置已保存"); - Logger::instance().log("配置已保存"); -} - -void MainWindow::onTestApiClicked() -{ - QString appId = appIdInput->text().trimmed(); - QString apiKey = apiKeyInput->text().trimmed(); - if (appId.isEmpty() || apiKey.isEmpty()) { - QMessageBox::warning(this, "警告", "请输入APP ID和API Key"); - Logger::instance().log("API测试失败:未输入APP ID或API Key", "WARNING"); + // 初始化Azure Speech服务 + azureSpeechApi->initialize(currentApiKey, currentRegion); + + // 开始语音识别和翻译 + azureSpeechApi->startRecognitionAndTranslation("zh-CN", "en-US"); + + // 开始音频处理 + audioProcessor->startRecording(); + + // 更新UI状态 + ui->startButton->setEnabled(false); + ui->stopButton->setEnabled(true); + ui->testConnectionButton->setEnabled(false); +} + +void MainWindow::onStopButtonClicked() +{ + // 停止音频处理 + audioProcessor->stopRecording(); + + // 停止语音识别和翻译 + azureSpeechApi->stopRecognitionAndTranslation(); + + // 更新UI状态 + ui->startButton->setEnabled(true); + ui->stopButton->setEnabled(false); + ui->testConnectionButton->setEnabled(true); +} + +void MainWindow::onTestConnectionButtonClicked() +{ + currentAppId = ui->appIdInput->text(); + currentApiKey = ui->appIdInput->text(); + currentRegion = ui->regionInput->text(); + + if (currentAppId.isEmpty() || currentApiKey.isEmpty() || currentRegion.isEmpty()) { + QMessageBox::warning(this, "错误", "请填写完整的Azure Speech服务配置信息"); return; } - statusBar->showMessage("正在测试API连接..."); - Logger::instance().log("开始测试API连接"); - baiduApi->testConnection(appId, apiKey); + // 初始化Azure Speech服务 + azureSpeechApi->initialize(currentApiKey, currentRegion); } void MainWindow::onAudioDataReceived(const QByteArray &data) { - baiduApi->recognizeSpeech(data); + azureSpeechApi->processAudioData(data); } void MainWindow::onRecognitionResult(const QString &text) { - appendSubtitle(text); - baiduApi->translateText(text); + ui->recognitionText->append(text); } void MainWindow::onTranslationResult(const QString &text) { - appendSubtitle(text); + ui->translationText->append(text); } -void MainWindow::onApiError(const QString &message) +void MainWindow::onError(const QString &message) { - statusBar->showMessage(message); QMessageBox::warning(this, "错误", message); - Logger::instance().log("API错误:" + message, "ERROR"); -} - -void MainWindow::onApiTestResult(bool success, const QString &message) -{ - if (success) { - statusBar->showMessage("API连接测试成功"); - QMessageBox::information(this, "成功", message); - Logger::instance().log("API连接测试成功:" + message); - } else { - statusBar->showMessage("API连接测试失败"); - QMessageBox::warning(this, "错误", message); - Logger::instance().log("API连接测试失败:" + message, "ERROR"); - } -} - -void MainWindow::loadConfig() -{ - QFile file(getConfigPath()); - if (file.open(QIODevice::ReadOnly)) { - QJsonDocument doc = QJsonDocument::fromJson(file.readAll()); - QJsonObject obj = doc.object(); - - if (obj.contains("appId")) { - appIdInput->setText(obj["appId"].toString()); - } - if (obj.contains("apiKey")) { - apiKeyInput->setText(obj["apiKey"].toString()); - } - - file.close(); - Logger::instance().log("成功加载配置文件"); - } else { - Logger::instance().log("无法打开配置文件", "WARNING"); - } -} - -void MainWindow::saveConfig() -{ - QJsonObject obj; - obj["appId"] = appIdInput->text(); - obj["apiKey"] = apiKeyInput->text(); - - QFile file(getConfigPath()); - if (file.open(QIODevice::WriteOnly)) { - file.write(QJsonDocument(obj).toJson()); - file.close(); - Logger::instance().log("成功保存配置文件"); - } else { - QMessageBox::warning(this, "错误", "无法保存配置文件"); - Logger::instance().log("无法保存配置文件", "ERROR"); - } -} - -void MainWindow::updateButtonState() -{ - bool hasConfig = !appIdInput->text().isEmpty() && !apiKeyInput->text().isEmpty(); - startStopButton->setEnabled(hasConfig); -} - -void MainWindow::appendSubtitle(const QString &text) -{ - subtitleDisplay->append(text); + ui->statusBar->showMessage(message); } -QString MainWindow::getConfigPath() const +void MainWindow::onStatusChanged(const QString &status) { - // 获取应用程序可执行文件所在目录 - QString exePath = QCoreApplication::applicationDirPath(); - return exePath + "/MeetingAssistant.json"; + ui->statusBar->showMessage(status); } \ No newline at end of file diff --git a/src/mainwindow.h b/src/mainwindow.h index 93dd6ea..74db725 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -2,24 +2,16 @@ #define MAINWINDOW_H #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include "audioprocessor.h" -#include "baiduapi.h" +#include "azurespeechapi.h" -namespace Ui { -class MainWindow; -} +QT_BEGIN_NAMESPACE +namespace Ui { class MainWindow; } +QT_END_NAMESPACE class MainWindow : public QMainWindow { @@ -30,35 +22,22 @@ class MainWindow : public QMainWindow ~MainWindow(); private slots: - void onStartStopClicked(); - void onClearClicked(); - void onSaveConfigClicked(); - void onTestApiClicked(); + void onStartButtonClicked(); + void onStopButtonClicked(); + void onTestConnectionButtonClicked(); void onAudioDataReceived(const QByteArray &data); void onRecognitionResult(const QString &text); void onTranslationResult(const QString &text); - void onApiError(const QString &message); - void onApiTestResult(bool success, const QString &message); + void onError(const QString &message); + void onStatusChanged(const QString &status); private: - void setupUI(); - void loadConfig(); - void saveConfig(); - void updateButtonState(); - void appendSubtitle(const QString &text); - QString getConfigPath() const; - - QLineEdit *appIdInput; - QLineEdit *apiKeyInput; - QPushButton *saveConfigButton; - QPushButton *testApiButton; - QPushButton *startStopButton; - QPushButton *clearButton; - QTextEdit *subtitleDisplay; - QStatusBar *statusBar; + Ui::MainWindow *ui; AudioProcessor *audioProcessor; - BaiduAPI *baiduApi; - bool isRecording; + AzureSpeechAPI *azureSpeechApi; + QString currentAppId; + QString currentApiKey; + QString currentRegion; }; #endif // MAINWINDOW_H \ No newline at end of file diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 10b4f80..e16763c 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -15,129 +15,72 @@ - - 10 - - - 10 - - - 10 - - - 10 - - - 10 - - - - 10 - + - + - APP ID: + 订阅密钥: - - - 150 - - + - + - API Key: + 区域: - - - 150 - - + - + - 保存配置 + 测试连接 - - - - 测试API - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0 - 400 - - - - - Arial - 16 - - - - true + + + Qt::Vertical + + + true + + + + + true + + - - - 10 - + - - - 80 - + 开始 - - - 80 - + - 清除 + 停止 - + Qt::Horizontal diff --git a/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.core.dll b/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.core.dll new file mode 100644 index 0000000000000000000000000000000000000000..47b820088abf8ad4a89f5974ce89c1347c352049 GIT binary patch literal 2362416 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ⅈ_O-DUX7Z* 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%0A$Zn%Yl#kD`T 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

?AMN@>N7RMz; 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 Q#n@XckS?yWfaAF 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%0Ass+xYurFh0F@JvRzKL`eD1Y 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

T06w>Wwe_w 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.-e?t9$^mT$U~I>70HqzVRVg3i13C-~A0l~J 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≤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%0AJ@*AHS?6c+Uv)przuuo@ChSvpN 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∋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�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

3*`s!DV46q?l^c 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 literal 0 HcmV?d00001 diff --git a/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.codec.dll b/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.codec.dll new file mode 100644 index 0000000000000000000000000000000000000000..c4407e9eea50112ee953f74d1e2bdf419e44b58b GIT binary patch literal 113704 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

cge$=NEdtbyh5AMTtBT*?6zTe=X2CvO}_9M)2 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 Xu;-p#b>HTR{VkeWgOB%DpXvHP6!EZO literal 0 HcmV?d00001 diff --git a/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.dll b/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.dll new file mode 100644 index 0000000000000000000000000000000000000000..4f64ae01d349be8ce9b3a3898acfc7d268cfeb69 GIT binary patch literal 325160 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

l(4j9pWaFKos$kOyo=*EIAoY{p1v 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 Ws-CBkXANCaGjVCfiMOA3JpDh+!&>tI literal 0 HcmV?d00001 diff --git a/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.ort.dll b/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.kws.ort.dll new file mode 100644 index 0000000000000000000000000000000000000000..2de32801b2e77b67113439b49f4c8aeb80ceae85 GIT binary patch literal 2082336 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�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 _EgQNYaf6D26OL_{7{}0U3P`bR!{v} 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 (rMh_((UB;X)9+yt47LRT) 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�ox9T?%FNxf-rRlr*I@2)j}7MT43)~7yWbv9P2Jh;(@cTp z?$Da7xx45juf-~JlNdBml$i5B^{yN<<{iyl9xI>62>k!;_Pwb9GwygVi(%fmD|}|4 zE!}Rr7~%w<0oxN7ZSt)vlx%ta7g|P%YBf{ekaC#5M_dZ6&~2EbD|>1UCZTk#?);-P zc5z%Jz)Ql_0e$=DY3SLe=V{nz`al}Ua;ZOM7xyuRYzGZH!y7!l$nEe3sZ!>{*MVnP zgN4VP>jAThBXrsn0z2xY{2ESXT38bXPzzcLjyXDCZb%|vbu~b*3FaZ_wJ*8kACCw@ zJJXG}A1agY71ipu%-jPv;1eTKTSTRfJTvi3=?HT@EwhPz(4JVz`tzCv@+mKO&&Ot<&m$~!#(Cnd9lSuFVyoMTClbl_gJlNT>bC7hxChojjUn?Zdd^SNN zzTT!*K;Sqs)$hwhne7U1{SmL;Mn?8+_(s4nZ%3v3A)44}GT(ggU(Jj|fV8>C0>K!^ z)p=E(dP-9SI%(97O!wQ@N3bqjOt?>#sEC^`6sDN`~3DYZ^SjHJx06( ztoY$0ehD4zb;QYE_5CA$fWEdPKJ)b6MqIFZBQ8L_5x@QYo+GYO<{BQ;ZIugXK|`R- zl0SqNUXhRYKnq0o5w{hl8q|hA;&x=~78Qf~)uFDTZ{I+AL!V(V4Po23ohffeBied` zV=(IKuuyDwG<429<6=d?1*dMfkazezA^7uh2aeSXFwyBPVZQ`SIu z?s79%JCD6(f21tyF82Al^_?}VASMAGcgZR^{An?7>}rnXvw5wZa6awy-hPW9GWZV4 z`Y?4FsXjT?D%gL$cK{W)3XL{vr1}G80wa~q6~i+AJNw8g*th92W2CyBJ1N-Zjb~WP zxHVEmpi47d4Tkd`eK6CYr(kDdGb(C#p`5HzcTy%}8_&CyJH-Y+oOd%wB{e@SpnUcrr_Az_g664tW)hBz#v2QX)^))L2 zB+ICdUF-+OeY66*4C*_dqCIMMz4a|*`)kqdVIk{%k*TK+^XAE-?!ZcBKki{A>-}SG z`7-nPSb;627WGG3d!Nn10sgb&*}HVyX~pJYxV-=7WH_jjed3eT!8$f(DPxBx+VG{- znbqAUiB9U|xXd2Mq`P(8eUYqZ4jUZV=+=fjH=~U7<6ZehlywQFoJy9R*UWyme$CqN z_Ja1iHAyN+rXBXXHA^;Pk0bltmWJwoqT#G-F6O5C?07n6y6TH#-FGV`i?4BXreHc+ z98V2aVIH^f7;=Y`SF$8k63gzaq!jmIZdY*&y*puE=W}nk=U-)*W|YM9a2`7A#S`<) zxRVHCsXIJ>rPFC0#vNq9v=R<^e#sC;ausnU%dZk;SI!GHoW)r!0W+I;braMB<7iw! zM{uIw6YyIv&`lm>vVkwDPO=L2&U3xEn4Y@ z<2~XdvXhO3X1xo&CH;gW@e!GXBcZF8@B(|tCrIb`0rUfLRo;c6lPz-Qrk5cM-(a)j zB&$k1_p)aM#j>#3_BIEiL29qlX9P8s@0Y4A)*7acPD^QF>Q>YN^-sImg;+)|k?x z#0>Q1X?7zXHm3vL(Ic83NYk8K(g8&FP(l0fZUR^Xc-&ul@XUi3dIlt!jDY8cJ9uJi zEw=FJfX)w9N~%qAjad-y4%Wx?8ZgbdlYOvmPX=JMSO5X*)>S@OHUAJ;2MH{i+EeGm z2-*vH902zDS)RW9kDdcH%9d7ludnDfP&qvy8t+52@@yZXPzIs{0*D3%5WV-3Ai4`) zN3zTn=Ef6PA_#I!{apfOAaPrHJ!RBUB(QW;$bvcH)nAC~+)^}8O#iAy68r;|Qpq6A z3FwB;nf?B`n*WzA)&INeT7R?Fb)eql%V( zXxcXsZpCD2ey;(6Gv%Hd>$O;A-b?sxo5$Yrt{ijyiyG5oSZ#>Y#h&6BnK&OO9Gtw= zejn`9S7o!uBRB*?M%f6-y8^oe1R-C&$-`0*@Z*){%NHe`Ob-L{`cT78!e38T`H3!F zLJLNXEe$pFvv)*Gq)0eAYH}o0-!*g(edL3$p}X`mp*zkSx~+Yhs4_#w1Vgu# zN@We*y--V!p=rqheeUrGvBb=HGZ?z#UeM5O3#t*~;2ANNn~?gM znjFDsr_T2woOW!~DLXofKZgHO-1HpgDTNGmB<@Zxj=S&0PHVp}gDeX^%<6H&8Menq z-JL-e$LsOX+XH0TZFJD%@SnQ(_)*BPM~~mMG}3BLg@`jfo+J7MQLD_ue&0*Xwf_uy zd}f<^T=Wq=&idoiM}QB$QTcP(ruw|VXn1xcj1z^J3eBye54*!yGHv8(?qoPZu|Fc> zwDd#9)%)jt8}fPBkg?%Lts%Mn%r}+9T_WWXT))w6DF_dt2Sz4NmIDBG2yn znweouRM4R{jOOx*XAt{Jql{+?3!;iXnxo1vkTvPoMrh-DZ`W>~=Ev;zqUKPd)tT6w zI~Xq9uLtkUpw|=+y`H*N=;fz7 zXgVywu$_f<9!;%cD9!OuTMrDI{-MW?z6NtugDv+{v8|xGV;mm>v*+vH)p+ym^Fp#` z-UrFdu7|>vqsNj^)Z;Gr3b2jYWAG{?=8wyTDl6^O)(q3MR&$05p3~*Vz_VJ$lvrfC z%I2~ln#{}FYtDPmYl;C~Y4$zMcDqnq!&_S~^}4ct^Y!*%!Dm8mJ^DQR z1Fz5h{XVy8Yz`K`v2{(by_ebWz}LKIju~h>y!^d@sxtUpYcb+A*;Y!-!_TX;>wP?y zInkNul+=BNKy;37KwZ&;CqZDg0%Jx8crF-3Ex}a82$A=u z;_cgbmc`Ovjczg(-!P(D4X*&RGYsxQ)>CgPUKUGK+vYE?dRLX^s%65xG4G0{BP_@x z-Eu@XEV4LMX^O4z<^$ewvIYE3f#l)P3=i;GzYhR!JR|@-i*77#?7S)9V|>6Df}0t@ z*NMI?4h_u!{`o5b;H`)(odwstBOJ2)IG`AgWL5~@v}ItASYY*`qLZ4^Okk%37lvt> zGrUehk7D;o;ha85_R8QWl2c=M**rXD(o=` zmn;_b%~glWbUW+>CNc zYxdx@o?^XxN=IsHR+pJsDrYYt`eHN2p2=k2Otx=~qa!dXBUXGFtuHDwHIvpZ>D4@( zjr0*-vPhc=U6t=nQR{%^1 z3|W(H{Hg+1ugn~Eh!dgh(#y2Dutahud}2Dmv0ur|E?Z!F;LD(^jC`1IKkbmwJh0;S zH}4~@bmW=+#%ckitH++CmedXqKpB zFN1uzz^)Tes*khKKc3ml=l3J@ASdk(X>yw1%?&c3^qQx8N6gcv^++}&G&w1}A@Y4N z8hFli{(8%s7N@geu=wqdAEpwbV#x}3m4<;40(!D*u)T6S1kZ@4=})2ZU^ivE&T@J@ zle>qb+CAqqb@GBUEZ4hv|)c?! zZxl<}(m$wkgw3dTgFE)No#Tjg^_uQvUTkA~o4L*Ot_J=$ItC#NqPaxQ~-8PXv*k%Kb(oVKnW)9$ ziT#~UuvfQ%Zke?S!SX9h5v`-jBO z(ESxj`a*tpe)djzhM%RTf;k+IH#Hn@IhAn27 zI{67=VTNCJj)7k)tL))cj~BDnGE2a7W~^hUWeqkgHKEM%I#tj9csK|~F*&0-_Cv}F zk+7BdHG|l4!ULh&=zMrNWGBw5#~`r(IFVvUi+}C0Yw8yrusYhG&DTHBt3SK?aLoW) zq4&&d$h-FI)=vgstWl!G;#}VB`!hy~2v6*0_OD`(uG08P=@|K^_|nE3Kk`H;QMNNZEa3fx&xYQgY2*;%lg?FndcZIK2?_Su7e zu5^aC6lwUdKFTD<3T0)+g!|8AN(Zza8`en#m|yZPx*piw*W#%$kz^V%C!Kc$Pq+=o z(+XkX07h<%dFLMz?6i891ldTLFME_|-Uom2XNVx2M`0z5PkB*(Cmd8+Jykp&n;wvnIS1DL7D94mW`c5xW+2BQzay`d_h)W%e+Dj+GZWZ z6CN9hyNE@H6qzWIEnGAIiZR*W-fiu$qCu6>!uY7e3qvatqd7uW0VSAZ;AO}VZBefmqmC> zy?}!-DtDqJO8F6i$aR1MNaT!69Z4_PHmCD(;MpW)@;Vpwq2WN<6DcTh+Nm>;Fdb7( z)JV4~;osW2=s75LJ`MMN16;e6beqO(LtLX*a!;eEs6>n1ZB?4oB~(C{oYWM)q@#({ zB?uPui{ximr|3^2wWFu`Tm)Cq0I>uGV+1|FWd1BK5HUxY=Uvq7@pIzEV!q0vjL!x& zwPmzjrA0TIR>j(-cCZS@`H~Z&8d}G$$F8LxoT9X`v-$S1YzkOy?|PvCq2$Tokxd-~ zNr@F!U?y0&BZ`&PX6$(rj@Hqr#Z$>K7Ax^xMXfF<@eyUPrczodl5Pq54`j>?UI7!D zMza#YWq4n2&b4s@W%? zM^9eCpufUk{-@b4eeRvIjQj)iGRZRVne(FjY&a0QDzxWC&1M|rhX#S06ql1ZNUFZc+816p7#vgZ^zyOke%Pq`EsT#?QGHly z^3R-9F|MHejHxX(S^KHG?W1mqde+6%d9xc<}zErF0}qR zu9Co7LYEi)AS=VcQrOP~R7Fp)g!WtKomrJ0xG=60r&7CE5)w)2n&trbiV|E95OU&VJCyUwZ@h*=_^Vj{dtsD!<=ysUA zHPYF-OdXos`VCC3kSIO^m4F?z3N4iI6?%{(!*v9gjtUo3Nlznv&c{Nf5lGanQ-{P` z7O$aqAO)ylYMuri#xk-jSu1RMM*pPnU#kJ4Ljp{rypSy~zR79f`>P5Y0(V8JJuO_; z%5=ZqTM9^|1};vdixwxz;?9y|f6*N{bW=mDr;xkS#r9+It$^Eeyf~r@9GAd9p1^83 zteGcVa3%~-V75tq6GdE54NqXVNq$uoPjm<4y-*N=fYmU)m(5!+rX;($85f*%C*&Ke zwUC>O(<9Dx+zS!P-^?~X{p%n}O$&>8T!Zl`lszpOG-j}6Ec<@D(-@)g@2QeA#h+1# zNqWfgczPgu)Cr*M(cTf`Od4TL9-^}@O!F|E1%MM_*hA1+aPd;%^ZWM-pAUU<6MU}w z1R1H7#OCZJW$TbS3`a=~ElP}dA(4)SN4_yObxL^s*woOzV_VAm=415jc*<6Cc9CV<73bUl=SuV9zvZ6M(Vxk%d6pY@%z3GblDK z0_-ff@>3*IWd9QLUa@5NOY=v*m~_vM*aOt7{>@9I3LSRNN#`7L9v}Aa%^Y&BYA1y* zB(xQO*V>Rh-@JP9q|mD?L9IkGePOXDpJK2bwLsg-Icbk}E78c)K$5#r_WH{Bux}K^ zH9j%r%c^+pE9Tbyth=?CQ_VTi9JP_kvyU}LdRh>6az6*Ib|tK03rT)5_fj6M;FyYz z0b+~exr(_fV7{S-g{TVR2h$*m$0jg-rtN1oRPl?Hy4orrsyHg7_88vr+ju&^Z0G0H zkoPE|$Vg%qjlCoyGCb&0?`a87Klh$S310k?%f?tG@hyvE$FO&Qj(pG@26VHUjdE>H z^qPHzg3Q^?o{PAp;vVg#(YOeR`G;|XMC!Hwgx8YVZ}M7-D1LGg*NUIiAz+K6rHZ7f zV6naOQ8Q~d&z+%Bwqq=&UTxiI0N;o{U352RXw?D!Xrh-5ySh z4|Bnuvi8?CajCPMbu5c{cBIzP4zu5Xj$+FgNLdlcSv@9j>7}zh^|9{{A0zHqUT}#h3|1mwU`DsAUHUAww zKhrFFzMbkg(5yQ>cN}UJWn>Tb2`ds=$Na2Y(5D(j2!z50MYua|l)4RlFFBdRz*gC) zB5`n*g#V zjJ=sB6GOSM$eP7CAHnW@P2X2E*%L%==3~O}FS$98JrK#zqJ@VpLbh1VrEh$u%sf)0 z09NZBr)~64rY^;XacQ9zJ)67YtbGVtPW5LaXE*{G@msjB$SIunK&?oEt3eOhE6!bL ztcnmI+`i2KS|>baB~T>NJ3aNj4z@o9L0<<}>KOydKX`7<9RA%*P+00dyRFo`v*z>8 zas>Woc8}jsq`&MkcaX&xp%&-McIO3xD>x)ux|m>GOXi~K9LI?&^(*X)Rug+&_ESwssD2NgB{&e3A!2}PFoWaI zN!3K$eDnBfJ4_5t#rF-)>2o$SI7#vcFi{C4fMSiz#C~QX)w)gb^da@6t_;=BvUA02 zZ9_QQHVMf82-T#1jC}1g{QAa1+iusmrDi72f*!n#)dz@+fjD1Pw}J4*=KgIs zQi2Aj_cNdW%WH7x>_pkuijJza(|{pkJ#Wfgn!`JDj`ce&HD|G+);B%Q#u>F93(Z|< zZs(EaPw|1&E#jL{-grvUc+M-JR9#CyDz14TMgnltK$W05=oL?o0}aI6wDjuAu_v*b zUqFi-*IMj{g^!y+r8(wWyG0&B=|@UMao{$m?MV+f2tL6R86rx zZ?o9c9ZE{%x<$bJQK(@yo;c24oF@?tfDlb2>C_-vR?G*idF72Y^SN&0w+(TlRpJKk zS8;9p>v`rFLX0pu&qDwUHLPQbRFQ^jvbsLae1>SrDV3)n99AL;-g?I z=(Zx8JDR=j0hX?LTXu*|K9OT?pdA?g9FHQP5>4JT(hJ0D57{>7ioKYMS||5y+=-5v zq_X%@%=33@0a#|9wZD99zp)$os}f~vY8JNN%*2t8;t5tH&)n)(OjbaC-C%mr1x9%Q z#(-=v&ddVCTd#Wo<~8|D1WeQirgXEwNSF-<>Ep}&K_ZM~lR?V6Tm7miWH72PVG1em z7DF*9iwz-1vDXjguUnWLPWw?)uutBDtymyKvee#d~hkQevB+iKOBw?s&O{AmS zIa8X($Lm(DPvkb4e+&`Od8fXm^@YmF>C3Nh((=j7L`(qUU?OBM9$kCL{yiq+wbG#f zw(Vu6)Ptdy$rxZ!(?gOCm-+pNLu}fA9~;dTsyx7omt+a|vBKwfz05~EfM@<49&+4c ze|tlY>F^Mlkt3EQ`zKhz`Pa3A-?2LqkxcJ!i6g?p0F>Wg5kFBKu#5QV_6lA3kwIs1 zNshY+vh>MZHjdt{yz$~;?bEd!s3D==cvwsi0{sFIzlT6yR4;lX&=U{J8lw5OM;_s5 zzIqv-;VLhDopZZ4K8^ObxA8d{u*EOUFJlt1HE|3DUHIjD0%mN!N${=jPhVypEV2Tm zvAmujB1HIZ=RWqTM;>9Od7o{IEIA1{f{bLI!{U3+MDQzDo}9$G2pjH@?O8x0mttiLxpn z%EJb)?QH)S?ORk42Su!u_=p^4#Ye48vVt54u%GLtn>UinSPC20BYAssIf?6m6^)l} z-R`Ab**tD9-Ypxq_n_u1-2R{@!0iru<%HcqpK&DzmxhqmKIE3Oa*Dw3Jt-Vi9 zlZ5}&P5{lB**uask077z4C7j!lL+|}6oaoWxq0_q>kIOjx?~S`H((acm-OC-Xkoik zX}(b6(@`jZH5V)UC&EyP7Il8v82ARFvT%LEty#Ffa982FZ$1iL{ef+)rwJ)EtJOZ= z)QoiXgS_Z0nEMbYE1ANY7D~*wWQ(x5olrNjja3Dt^0uLBu%rD1Sww6p1KHv~WI;CE zhwR6STo<4Lm`@_YifoZ9Dv_&wuwJgvOOy#~*jVAWZW(8-*iIkt^N9~ZjeN;Z9W1dCfTHLP;-RynLDTOij8-+wPn_SWY#77*3FX1Sn zOg|0P>kRPFa69{_MX>%HF!ycnUHK^wFD*JObnS4VT>98m=F=@?o!Ocq%h_m)w}Fkd z9}^O|(iz#7bQf`hjrhg2qeB<=+iFtitX2%bONj3sp7Afm>zcy)8ilKug4L_cj`zv5 zv~{fZy_rbYkV+zV0j8$H$bnDK3> z;VI>tobv2=MCI);#089P(m=RCvBn$Jt+W9PUa$g73ij7UB~~{-1#d_FUm=LBKmR%Y zR0a6+=Tm=!le znEXIHx#cHzF$|l({Zt6Ijm0-O*jST=Z{$YX1m8ll{|w?jX)|0)6Ky!LATtA(6$5}+_rIW_m4LS>ce^(|9aIzl; zIH9v3%~KoUmPr5nHKkN0@DCryzzO!D?#k0wO@ptOr^*MOVq57fi0Y$s-d|O|r9vBz zsDr$1I9XI;LQBO;v=Yu^v>v~L4}K{?cy5mVGlt`IfjJ+|)IK=WJ~$$(kg)X8teINc zc~ff6Vq>G$-BPdMU8;)JywYNo^<9+yFro9M`y_P!eS58huc)%gX8i-I41g4ONN8T`-z6Co;D$$Vbwam^Xnx5iqyy?*>_naP29_5%Z2$@08 z8#*f^jbZ^GuIR`YK3&(RPc@Nj+D33$xP#N~WBJdZ>gFiE`s#aikxN(#?o6j_LuR*8 zh)voX91`=)wk6yZqH5e;@ASiA#15l%J$4w)y2VBSt=LwWx+XyeJ_Ox}_DN~9*X8!9 z#s{i+)UkNL-|hFEvcS*8(VA6L-2j4Tydbv;oCwV42}q1V+2$u|2fG-&rzCb7nA%xz z_n$>8+h3Cv#Gr%Hq06kG)a9pxcMJ>tb#!JpIFYw;ie_BY%F|NQKdiN++dh{-WYBnr zVQt6vU~PBS2B?pxjnJB`@aD;cH@m|u&fB)Tcv{Q649;iqw8wbr^Rxrg~|U3*V^eG z%|s`B1v)w9w19zbt(Lv;>B(k4>s-mOvFh(+WB-=H%41_+-KMUJjeVpm=?h8A#&W_! ziCa8Hk7E%a7mFCd-09cigCeIRjMjh&78MfdLA#&p4HOswT9`j=yEz2#<;5UhENWi* zNLhE7^w40^`dv(n;l+h9yWzbrKNxKWA4wp#f;X#(P>NdhG}c&RW+BZuqb`ZazKpSC zSh1Qsw$LsRYzP_feNxAsqLDwq8laDGw2>`})!=W-7~6m-qXf#}bVAO9{F5XH?~jGw z26K*NJdbp;K))Q&FYgYzBsHKBb(NRUynAQ38QTEj>cDJ1^&B$1h@9Ql#)mHPMXkKT6w~Vp%M;oU{e$<%l zrdrPNY6%Bp6>Ti*He6>Q9t6Y1fm%zdhh^nA(%y;mFNhk+q1S8Tbvfas1bsLHT`FM}nrLV^K^^54uirTZ$wQVt3U}Z{cvpt7~N;hdpd8 zpBx>SaF=Rb-7*PAXnR}UomN{c)eZz2j@Nf-39M?kSQnsc$xf(+Ow zl4Ps3*zo1^;1FQiz%z>t#U3_%xfyKe+HXbn+FtP?p1#1x2b(2K7MN1=;O_&>D6!!y zsOqm0cLqM}PA9>KqAq;s7O=7do;5Vaf5(S?*^$<)MVwUW;wWiOvBg>^=W_ECiyd|~ z?}OQ8aV(#oTZ&`=(-cq86f-VNag^b#>M?HtL0kG1w2@$peZlFyX<5gChs zfqk?#OSaOOYCIuJx~N4ZiUj(*OEUvmVi_6=9&oTg5=82Aw#u*>_Aa78-SpCsRzDFC zgD{mKjV;ZVdSl%HR`LdU4TW-8Tl38MNRT6Nhm8k-q`#O zJ8yLCbYI!*a+f-}FNo9-7fII)k;mEWu=h#d@_`58(>$ure%_#qet~o%d?-sVr?!eZbz;Q4S%SpmMc+Pv{laKhl=KK zpP?r=xAu_!8$%68sTR^)ID|dVUcC_vAB*v>4Z0Dc!(U`%z}6ne_+*j%1!SIneY0?U znCLW~ZC~$Mr1~B6B6&sH=J85JMa6submisv?Sm(!l6R|NJCh^NPV*7YhmW$pOdQMKib zgH@>Jr`iFXNcY=GxJYoN5a-M;RWV)bZ9BRzOc!q(rP;D)muL@P?9{t?M_=UQOTAxn z24!mA>xMF|KFX|AyIm-=idzq5=5ZyI8MN3#85xDFKL&i*6kkptH_ZPLzFd35|95<; z+AO}ThPHki&B#&v?ftYlpqv3-a=c-ifalxcPm>(j}k zOUy&U@Qjv_>7JFpe0|fJq_V8BgM%Jb(7(UmY=`)D6bR4S?ptFyZN~gdc9V48eo2{W zl7T^Xuj?|#sVsx+P@Y=bYa+e-q2-j5V%&;xZ&qMj77p@siammXkM5dw^ zoDj)~&$=BO;j0q9DyiAQ`>Mb9)j;=%=%_K#ntt>9bo9mVV=Y70R)ljj3Qk3`b5ICg zE6M}p>*V(!iqiMN1yU~j6gQy0t6@5nQIZb=+!i_~QXFvOy-LoU&>a;*5;S#b1RA=yHKN|1q! zSQ&)($20KvOX&bocA2fQxt_?j$}X0Dy7X5&npo0bwhct{I}1L)aZ9P9jNU?Ee7ojN zP+=u)+A$$5q?_CEp+{eyeiIvqLyI$vEYx2m*_4}h&;txRbj{pdvB0E{X60RJ zQd|=gSG@~EHRyx^IazTQilBRahrFEj+pKi53mfiX757;_C`m?aO&!=jV~+v;Wcr9| zqGGEvJt(m~2sP|wd4ksqD1!q%0ioKYe#_``R|zojbh6q^hW5Pgs zKo;gCJE_}@`H$LRq?3ltHsWY}Jej!0--$0yFZi-=Z}_r9XTf0z0z`Y~>hwkBwtC*wbbO=qid)-uehg|vwVmG!lxSvg zSt*9+<{f{QFN{{~GLmE|6?dnu3?774FNNx5gQ{=`$K2POzYhEQP~UPlS{-wn zn%9RXl`RZ4+)0_3+ZuBhkO7**Qx9$pHHa@(9K3*y5L_tvRE2wZb-C;C-4cEJRoH&r zT63=d!2h!5q>6)EYe-+Pppf=!Zb-OEgr4Mfv4>dw*-uJaGmsRPTfM^kHH^4qF@}%B#q64x!|LoRR28<3i@ng_@L#5c}WS zmG+cr0dl%QLe08`g$Plh`p5N^`%9Y_uFF0o(<8(?HXj0}Hze$%BW4IHzYU-2Al276 zfTUHk%X%K>+uGX(U^B{bKTD+ca#9uBt!vJ&-i=e2Z>#(8OC7wtEeMuxZoAm;iM&~T z=}C0m;(oT=O?4lB-Bs?=>~gPvVSBt?PE9g^yy18hzhr7(MJL`?;`tkzt5=Uszu@-cs@w&u#n-qd#pEnG9@v5ZQR=7+s^!QfgQf>7`~3*W`t`l zqU8EH4vu7%$t7?kwF5_5bb7#%h`WS|7%`#*xoKcd3HO~i8Hu*S8J^m|eQy{NN0d5g zau!)WbW2gb5KSj63J!kf>(`yu#fNU>K^7m1cKIV6w!o10Ox!G3L-ROai8?AN@Utgn6EbhY?N^kMWF<(IeuCx8@-Ie|Q$ z#gA@p^p?*9`MQfIyq8P#&aM>-=2(Txv3qbN&2yjM{)V4 zVXe=2n39?dy)araax=*oa!RPQBwuNZ^Z z0zP=8wVIHL!x~gK8Av_OQuBH|bzsN7w6vV6#h;qJmM-jSsb5x0d1jrcQ%8f^K6nJ7 zQ*T8Go<(6h5%FQ4S|V=ZskfE5n<>GPsZ)1wPUyy_j0Vz6KES*~F`snH2YC7sz2yV! z^KpEmcx0|86$E1@mAH`qpR7feRUlkbS?!1^E9t^HmpqM2^&_} zm31ap?8;)V%H%y@mNS1f2o5&0qL%fAWk`-|^zjlW)gU90lTJ_Ir=`K+fBsVI-z)ho zPu)MBA9D`jow&d&_04z+H}WvmP^(u*De{xY(|CN39t@hMP_A^7uAA%hvfyBK#D8?_ z47pNU*=i6myDimg?||(OpA;QbQx9v`DXe3)?ZE;`Mk8nf_UBAFj=jHuAZSM#xHK1jAH!rap1=D=L7{r0LR#v6NTXFjY6s5I`R1*2Gor`}6B7gt>q7No!B)pD`1AEFfx_bkngEachOXB!T;1`w4H5<+ z$5nhk9>*vX;IRZcK0DMtvUog3mjNCh&W(r1QLcK&=&*O=Q z$G_t$z+;QR=9YR-`2%^$NkUEpf}`m)HPoysPn~bf69lkkVQaE5RS`CSvQe!TPm`r) za*dEQS!s5;%3^4(K-7Kb^e*(QYtg%8n>q4vO&ho=dFe!UqSmr8H34oGh(8NIOV9D} z(+TiXr$6?<&!mr^@ofBj7BZ1&cJ?P8Zv9xql<;8o@<0BuRx(k$`LshV7o3&`l`!&_ zmrnkF%$*5%Rn^t^fg}(ayg`YeqDDa*#UYB-V6-NXz`1ZQ#sQ^{SQM#4MM(s!Vlav3 z_IMThR*S8+bg;G7R^B>*b0P>46auI~QNf{h$2fok#EE>r|2pU141l$LzxR7SpVFLr z&OZC>z4qE`t-Z#*F>hm)(^X~elsV*lZm&OXkCCg>^~XyKf4KK9>W^F7Ev1E*?H#GP zg(SprU#ZVthKa>FHMy5_6~@tb=o6k657m~aIC?Goyr&maZpn+bC$KoLc{Iap%bhq& zYLR4a;qhh|nD1`9#MWr84o?}ane@}|kxRq{V1ennaAU2tw2bqpuNXs(%c{!JsXsNu z%&!BEEm!1aZMjo!)Fy0n?|zXfjA(NEZPFL?vg${3Yp&a8x?#_Jw`GbdK|Fi|gKEot zN`DyJJ;#M(dz+_fud!XS&Biuphq3+DTC4la&SR_Gu*2AvF?)?|Y-((?H>Sq+M;j$$ zn{{bztHMFmUo3##bUlzt|0jDHy89B&=Vg({8cQP2){_~d^7tubwe>TPPL}i_ z;{bQ+D-Y)Pf&O!mXO?m1$7QhL&Fnr64V$t{!vC*FF`vK4-O5+fopV9H6XhpVx)TX@ znEs7;X4RY?o*!zbu@52(Mi$$N@$*>XFH^ZeGS@;34pS1fVvPucmA%?>agCMQ77-)3 zD~*PFOWvthq}Z5a^!JgWb@q{BLe-ucsyaDsxqVp*Hp9qB%|{@*=TG;-`je&p^fRF9 zrT%pjOZ~~`dXdu2{5-6J>0 z_(t{TWTHQb3pew|Ep62^^D`p1AH+}5R+BDFuBrd0@q@DBG(RYpfHA2|1V4~#riOCO z(X|Tz zL~~H5dJgv8vN@@ev3Jl!iIQ^Y-p}&+g_k9A(qM6bd8A~S>+YHb7f6(C4%C3jtZQZ? z_m)ZZq-~45Scdd+MYj9veZ~x?g)&OKkOX<|Zf?SZ=hAYbJNHUM&S`GX>vT8wMG33P z_%!zkOu|1Mtv-gf1FmB0DgVy*9uY67oGVsvDy(20X$r&&5L1@BqbJjYr73&E#FYDY zWCOW7VFNQzCarK6y(>aIVUCF=W|^4TSv1+HCT4^?+};bra<8#Kp7PEw?n?2}`&zKs zy^pU;jFWxh%Iszx7)ze!|0wG*saud-5s+LMfTYpo{6HWgIvtYsvyY8>ymAuY3drpk z1AcCc?m#ii-O*Hp45-Iuk=x(C%G(lqn5WccU+{g=vmbwEq+_%DZ;=;!bFHW!A98=a z!d9oz)m|vlF=i%1e!P)ocCGL9>Nb3J$wK|GUe~z=9}9%Rp&6O9xD*fIf-?W5QVtIJ z)`sDNBsdDX#tAy|t;6m{j4`3*QUx9H_#mFUJNS&3?DxIBdv{w}oGs8S zE!Jt0Nu%w=KR0oJz2PT~YG64$9Rd-g6!O{jxlFR9*z@lVD1^beL-)r7-9J0%o4c2O zB_JslI4&wC~3k$e8hB;VFujE+ONl@5j|tB_TKI1wZTB@gXU! zu@H1L98f;Ld~hr|ZGZwtaO_M@8|+TA0#mnI4ZcK;{c-10fd|VkZiql_NRv5$W}L-w znY7tODCYd2x##augDd>!XoUU|%z|kpWrSS7jE{mf9bm zRN=_hEy9CatpR?S?##<21$x=;>z@V7w1@DVLid@uxsAFDzL#gdWwsN z71&_#D3kMX23}f{uUL3o40bD}EJVcsuc)D-uh2k0E4Q@ZWkBtZdbl6id!MU_T9$DJ z&GaOiX?m(AbG(yY=_i4d5b75$ zr|4A&7k4JmOeX%Q$koSgCN%(|%}k@w8xjZE9hJLrdSEd$XvRnkWUb56F(9HE`uf63^;v3IIw>|d_KXc!JoszT3{j#)o+q1*?D~$bc-6!6YFVJ7&+?&;25-fVaIljw0q%`$oUPCqsqEn z1M7Rqjr`koK?P8em3YW2DpufStj6tT6>Ghyf^QF4<)4zHjSqWVr)7<&Ha@3#Rul8T zrO(iW;jn4j4YD=MSbh?h9Ap(Wq8a?8{4q9v8N zy5r$Nj$(8Y5boZ5x1_xhXEbD2Qk3ZW2JocA!|Qn%3W=%uR1|F>seUr|Je~v1H6rb2Wko}ptH|SPv1DwP zTuC{={rfv#8S*N{DAuBv=(_-f_I zo22cWu4yvW&DBvanYH0Nc0h50-lVqNm#3z^syc-HE#a;ls3ygdN9?hfYxAnQyhF%e z@(x8YC(cL*F<+-wl3DLB;!k_PU)k{iQJpF>kq%`3`Q=c)qU{w&alZ5;Zt5{8OL2u& z6L+1SvC)#b%_DkubC>I9^-?Cby>bmV3)G=CJdGzZhyCJsz1`>zQZLEeJ=Fkovo=SD zo%w6rkaWMR4x`@z{PZU%_MfFi0G8^l+t7m^m*PVq6-1Rm)5vd|hj@yv@5CMz`Jm(d zkX|_#4F(aL_+1x^jMPOAQSU8<^Sd|a1NE)XWs>sLM^^Q-6|Y6y52`mmhd&Erle^J0 zp3%_KTPaV=1C=-5%k|}?8$#&nAwPFG^%ME-@ zvNrGAbb?9baLOcVqbL8yLlZuaTyq?bfuIpz?VthMm9+TUk0dQVvq2mKy!e+0;nw_! zi7=&UZMo~F2sIQSxrD12DQ<+Da{UVMn=Nkfl1;DD`|QQqB8rx=(%*e4fgNsD`@?xI z43uF@JvdZZ>)R!nhssiix+X27s%viHSQq!-RH^pv8aM-i!;61nBaeC)Awe&OZCIMOZT6-LH zBmZLF$64ZPIM0pPmmV3KZ^GLFW)S=(GsS5xpBOuGas5T?pFeYgKk6q2(vb2+{&aXN z%cl;AmTT*lrw3B2*MzbYjUXcE;@HW?Xv>|;n#D%g*dw*_dc@(gE3VpFE5MPExON_YDG_6T$4>5B z#Vhyg*07uHNkeM}!5)!n<#~c>@zieneH&G1@3vs2ZeC|^2wWNZ$R1<;z71mRySX2a z=^^ua1nq8)##;M**1Y8`_f}aCElH%NPEhnuF91G;@@J<+0QgPm-RCuBqEJ)_GE%!h zzW@_b;9|Mbu*3MFlgUIRTl`IG{-H7W`)X-wFNQ?`JIxV6C0y-a&;7Vg|#!xxvCG8yI+K29-mt0&ijYSn&XcS$Rb)Q9kwA`6}qGC;=XuZ$EM{N zistK{=pu@!pHW1$i>&$hjmERi_k?qA!B-Q4_+SguX^k3S4PYE!=S z9h>qw1?eeIw2$P@)*Tyeuk@6^*1d4bzoF7VIBZw1xan z;Qnlur|rgye%!b*o0~})y#n9sFw;rdF>UT@1u`VF9zCFwlnxA1PCxSWXqa9Ko=oJ)zvlU+b=VnGJpVv=c8cfc?u_Rj{Xb#$SB@8wq?o;Y>X5Ae zjgWgpgGP54w5Off2cs9WkMz%o^dI*hu=*`9=@;FaH6X&bWA)Co%EszHIA5zPR=M5r^PDa}lHn~010RHUGZYf^P~LPy;KEzukl{R#cN_A-o223a|P9bP9La7k6F%(LLpqmY0 z5lXo*q4emj4S_UTFIp5zqw@l3bX_2g#!}L#Cuy`8mPvLNAeHAj0t)a1*()KY{i;&;(npHxfpDGs=|%c>d=7Gq zAefA2x8>e!uuNHSZ3tZ~xVz$1gKY@goA7}O@Nt?{W#_+W_$Vxsyos*N^c@}J-4Qa& z10i#MfQw^`QbOiDFa*{qbx=GxuYf<6IlUBZlV6+1&*3jbM^Ms7KC}oNQ;F^b~BFY^^#$V z^?#n$h;7c{#XWyYur{oqo^qx^^u#o9^}!_9A-?(xirh-|$)Tdai;Us_r!39P&I7Dm zwhT0drOpXxah6%PF5^^stZl1A_}Opc{=K_B+l$#+Rqi#QwHp9tl+4cyHJy#_XR(hk z@v)yoYTeecA8|H2zz+6Gma|>u0xL&K{|7b|VB5}fHzAn>#R+fBX*saO3JMNTFiG(J z$@VxFDci>3H!Lk!(O}IgafLa~dOUcJmpn6k;h3Pm?3lmR^N&;Uz-w}>)7OGCRvKvw zzMX#jy$gl3FN$KZER(bciva;#OGzBK0A8wAvXz3hOYtPpld>xPWsxW`qV$_ZZ$xT> zqQOMEn|uv@FZPlY{1A;QlXwY^e4=-&3H6aqptI`cJ9i6+=TA@CCzD6Pz3rAX%emO>aOe6rtQ5}kal0` zwc7m`IYO>y&DBN47R|VJkoF6#W2QGkl(yzWbQwlf7ls+P`so;%%qkyfLPjCxn)z+H zV<(0(#)O3y?-u9Y_qYdnn2+;@|1g(9=AnM`bx%K1B%|Mh(1(R>xm(W?rO3KOZI_ni z3A%^~h2N3bR<@8f^Ou(80|L(f=b}AGP5?I>-CX7JF=67deNYX2eol(C-^h#ZJ$}-X zoz>`mlx}&eTCPmDEK|$+pk=;VmZn?&KrQb}xBT)DTHY1>#2)VUO*ec#mxkA;8$O_h zSJ+Pq8cDB7;=YX)2P<`$Y$I>|LG&^Ap8*i(yOC;Iy@;Gy8!I>P;5}>>*6>gsAn1l@ zWfUYnS4dYEuk+*ie#6j%jEJ1rBT|zM)dIM!0Y{0{v;r%*N*?#tN!7uHxJq+>wFC7t zOs|Gcl@ACR6ZoWsUdi7IAI}1(-PGm6N6inz%em6w&D2cy3H&Rl|1*Y}hBHHRXbB-E zRDIh5K%d%_mb)JI6)042$btG#TB7gXGjy|B%w8<|-Z4u@igCh8(~PqzV4T@q7-ykK z41PPSEjfRkyQ@?f1z0E$P}ijn(+Ql1{{4;nJ0b1K%QWBs^-1Hgt9{_kI!~w(uW!pe zZ-O>NypVhux(b0Dsrf`_wG^QDk`y$3^tS?XW-C`ZvMFr7`YF_qB&sN-21Jd zYDAamUuM$}7CTaNS;ukgE&jkzT-moA%E7xDN?#jFzJ}7}KhyUX2h@pNk1)jo{g@Vz z+U*vJt3+$XsrYZ|rQm-o^{wI|7K)890^B0j~o4G>62p5^~6{{!qsAI{HI>8~#{% ztAHT$%^besjuH_90+d9?qM7HutN}{N@x|f|zy5?|;fejDiSr5ZK0jwl$G@yML!Qe!OYn@;>}JpRZO*d4Xws-KYyaIS70)mn zCR_K8-1LZ^R^Ko%5=-7dVUuh2eo|6MEHdT>R_BHVfo&<4xOgf5R)Sy)Vnv@^a{&$z zUiETP4z0fi1Y7St&O7?AiV3|AonidaLnj zHMaVigP#|fYxNR0EWl&rgahRtSh*Aw*_(Kim7MvMCEj1F#PCP(5MPloIk=u2%5~kC zLGDkhF^DZJux8xNZqIlRj7ED!SH zMf%4-Dy_?NH@{&tds~{hZTvREmZC(QzgUwYz(;)X2=?HD&aYyU+rcq?#_8^i;I)AQ zIIMf6)}plT;sxp^a`W?os2?Y}K?m>E$W4E;+dFg@xmlRjmOBXP2-18`j+OC#49r-8 z2X&(CS-)&iqHK}3aOqWp^*>UZ-LN1!qAWX7b2l%N32K3MadN@}WYWl?WeePKA4^0! zk4-;;5f<6pRJfq?fUe%vVeIxZC0bv#2-g#IsUmoCMi&8;TZ4$A+#2TDZ)i&pQS!HE z0Oah&3%M%|t7=;P`XSU}ZvAm7zvV`-AEn-xA<<&ua}fXY+`^x4X1h09GIt%W35uTTK3O4L&%Z zW%%&Sjs|9hkp~Ly$;>3`|IDBt=dYk2Em~ck+0CuAJXe8V~No{d=`kQGa84bi{6z+5X7P5ha<(KGhA3p|SEk{x4E9oiCuY=g#WNW%^V-Z|hTy!KW(X zbgXMS)+2*g*!%w0JM`=u`rord|BWp~_FHGs5w+G??Wf29QNL!WqidXwM5`%l#E-b2 z)V(-40dP4y8>yp1d=G(rN+CHV8ktp3b)iZk$CkxLl;lkZ>d~B*0QS3y&Q~~9^{yNj zD;k-1bs5cgwWR9HZWNUHruIG6emX3B)s)Eeb>!ii)i7dgex#<%WEn5Vy2g6wWg9cu z(<>@52iyj}Z?`I7I1Md_cz%EW+7R~X6rV^|Er`M@>t~D2y5>7t>*}Y5Zf4ruDtC`o zKW$f$+9vkDV5BXVhLH}easN);i~DD1qrW?6?{xfs)L)&3PXM0f-#FcJ1J78SD{D*Q z#aRvX5ue;3Q0+bE8(&VtYIUi>h(rb;{I`Y?P)x&UueAOA8{pH86F>kTyNcA#N2`cY z_s{$Z<;XyOBmtycAE5!E1ZnAe3!_WxfplB6t$t)-W{=8kI;rQmL%%1k)5r8^?$+z| z<3CZNoqei^=82+$mI^qKQ2&GR+L_xj#s?ez zORd;Zb3h_-&p zkgU-JD@r1bU>!vmx~%1S49|>nTKc4vrOEMA-3;*NKLcRxDFWanPYHm_-O7>T0R;9g zE=L(@F;(Jc%BRDai#`9n7{koNsx9#`8)S8x5y2I@$5`?W-OTr4X0{tr!bs8X<*Nr& z60gW>h_lWL{VjB&j=^z|vrdN;F}7X>c;#6tG;emp{d`3q+OKVB(RW>8O5vxAGaraJZ_G0VB3;*Kw0kj z&P`h?@Z&710GwRp%>txM*Zb*hZF1UbK3}W6@V2)L^}h^n1P)zt%nWp z@_)HIV~H})qpLLh<7N!swQ_k2D0w1Ycrk_;O)$J4XLDWx(Qx}461Z*k#cgX`HbqY5 zwzWsBXjypKH#VX)?Vu&EEg|H@&@XOMs9BmSJTi9>TlnJBgMeVIabQ_}%o-ms6! zWG7X7!}bih5kwb?7V{rR^f!eGMF_m3Y^PE%20sDz!8ADwC?P7Sy~}UKz zL|TD|I63Ltx}0%7g!BeyoWh0L@~sG%9NCWDmgtFUUCx7v(V1S+WjY4oxaJRQ;lz%+ z>?`gJ-i#$j16v&B{Fhv5NW?k19?d-_w94wge3Ng`i82>{xu93KvB|!;#uj;ran#%C zOWxISIebt-PQYP_w!pNYu9ZM9x5V?#A>-=$v7%MuhDqkW4?1Yu(Dt8p90)OT5Gs(! zW733CL3XK_DfNb**a|X@8dUPQe#>|2=qNQ>xAy8@fiN{D8%2F`O!oLhtiIJN8aHVA zfnX12r5DCW9^zKC+I7e83%o$ZCc;SWCD)3XEJXwK{cPL+<`xv}e#Uap@DHM^-hW2l zBq|)cOsweL$juk?JL= zZzU8ag|zzT-3Ik+{cjHYceLK2|J~C4dy$9wV&CFl+mdL}r;(d}32PA+V0Nv+-ewUc(C6UM0xSMDac=~-^*{l^W*AZrt*4(tRBr;p% zzW#Ij(x>q+yQ96%c>C3ZV#yzq3#-{9js`~{TlOpMY{e39jnqD@1@%Wx#81lee>@X4 z+DtFwglGmB92|vW{v@axKI87}SMe)^i*fSWtct(Y;`VHpvHs;B===z+pcKXBl#yO!DuYXs_DD@XLn~dq%aU^s4g9lq^?7Eb zW-eEdky+QVC+WciCNkf>gNtyy_JdichUcY?oET?)2dh^+^3Z2<0H!J9mb>3J^rA@d z8zjE=sz2yn`L3W@T++5UMj`jfi=#!)U(Z>P32NK3xiD&Z8SA3eA9DKFU5H{~azag2TD#JY0blHasLwhFyGPcX6cu8T>7(FcD&MG!OA)lk6Lnm z!@)`+V8EczUGQ?S^u`JJh915U9C3F zuHNWXe-A=;Ew5M)J)5n%;Ri7e@+>dMZ+sR@y^m79LC@ z+rIt#Wy3ebFgDa~n01`dzwyb;tI#JziyABTg46CB zSzy`ZrzCnrGgfi8^23t0MbYZ#dPFC)T8pk<>1BLP{^0JFk7=ZX^rakGs~}nmzX;~S;uKsSV?9^C!^0pHs9=Z`jY zg4h3Ld`rXYoAK@A5MH~&H`M_&_(93i@cU2k&GOGo&zlfUUiKU8we_HP+;1YwFb3La zb!%IsdONy=D3Y}O*rFfQE5heIQu7i&hHs4~&H?=^pM`-0sbG>1;9!}bbxbeWvKw(E zS%5)iX&F7sFmsAFP=6ZqJCFv7m!|C@c4=|a!*pq9eDc2>$&VmTI-e`zq>JmWqN}wd ztdp{h`ep&wZf|`vC+oJJd^3SPDmmeJKK9Y!Jd;XcY1y`;!tdtvyOu`!uIynqaIM(s zJU;37o58Pyhh8YYptx?@;mnHaIyaW}a--);%hnW2_WLT!Y-0o6qACh5cF8rj!X+1( z;p?ch;cH+glhf5Z_cA&IG0FY(PdedFIEAl%hXEfY3l^E02By0@{@Zl5o4OifU7d#* zUO9%YP6@lRQpH!xcD{+eNuJV6ZX+1fmb?27W`gZ5BfRQQ;3$p68#W%crc3&m9UU5O zQJOM!)_6aQA%$fKKKj~bvyeHjizRTU=DabkmM(aWg94%9tX?<+*fv%{S_TP#MV5HBmg8vC5bx%LZ1mdj6cZDC(cai7T4z?s}AH>8*-KCs9M8F^Ak8XjJ7U8yvEvI7(E)qlb z=tnd%krrhGIep_LVVemP9C4#Xe>8w9?w=xLGPcT(U`hh9ds-g<^1)zT7xTzm?Z94i zaU?!VWDb>+(EeD|3S9jVVKM$9Gsu!tZl7I_KNZKG$z^QerwkZ!sgT5~NRiW#8s#3C zC|mpF#T8luulK<>U)1et6}Nyb=8?IajO&*S_+qf1J~;;!Rt!tRMnK7GUeGzK`k!BE!YH@gO$Nq} zIi5K>xx=3|0%PX!$j!4D_70mNa?=m&_D<~DQ65k~wUA8_t`5tBP*={<5aGsn7{V7! z{w)Tt$zOi)k1na~qscF4G$<2N4tjScu?8id~n#1LlD?*ndz-_Y~aH@0#eeB-e!-LESt zTv9T^=5aFPBbBNxZ?LB3VWU0nJ=t-g9x%&O7YyHpAaM?DU6gU!GR$Ayvs+7VH-g_S zBsw@={7$6Z(vAky9t^O|g|+waPEg4OwUt!ZVIGVf>#x4|b=oZHiTQar5RYbVGJTjb zsLh_13-BF=Xa|dAghqV zesDtF@JmKoz1TxEk;;YheELy+>QRRyyy+`YQ6L3U_KUXbr4FI{01dIE+Hf8?p%^Ed1Uv>%oBQ33!$x^jHsFMqUWww@)M52*^9;{GmBL! z(92K_A>HZlaV}x-inpv?J@Zg+G6s?o&x(6*Euq3-^3*{%1p9kn9VzA?fy#^3mYf-a zD#7fEvv5B-8Y>%j3KS0+f6xN!mS_#6ttnY}x$r2N`;P9=YMOiR*3jgdRcV87(9-~ZqPoEE)3E(C_kf>*-z43G2&dpuYymw@9pQKJF#-Jk@s|$p z8>B2O2EXrxkSuTm4hi5_?%vy5@O!WT3ToP7;3QMc?8Smu$I=7_))1cP*;Hx$bEgx{ z)6cq2w2U6@cr4N|di(c0>n**zk) zbLrkqVV$J2uH6u+nQw3> zFv1-aMUs(-avIzpEPhGXEtI4T?xyaHOJ?>MpB&sfR@4-^MM)Wz(*2f|y723x!yCLm z$&Olyf^V7ok`s)^{R>S(xwsJH``3TfW(K>KK_KwjF9HHE)7?FgBwpK|r6nDa+Na6= zldL~dqKncBF(KwV&v?DNt1h)CUesr_C*pao z07@fHi0tGS6Kyu}s9-a!dqA6k1`!b)y?@*t!Hy_)eTM}5V4{0#uaDaB8?eZ^neJu% zB3I`=EC;X5ZC2JORwy%4tDMm8XHcSGg~%&`bx+#C`n4aMV`8nnBLf;x`SKZ{0&;XS zs5EF!%yXuz<^w<_yB#X4?w38gy6#x9vayg%PaC?Ff^4{n{EpXrlWYzuIyu z4j0|vNOzdU@2+qga;&%y#Ue3@FISF?f)bopwD85`c3*siK2Lo(2xr{yRi^v6w2(@M z=lN~9zqjW(lxq#niv#SuNH*1R*=`PBd?H`72CkpXO_3Qs9z37c@%b8_NBzanF>U2` z+n4-KXFxbZ8jzwV9G{_Q%2a=ljX>@%qBvci=d|Va==8jl-9JdaF~xLHB6@UobaK7% z)l*YURjP9M$n`@f8ha(vv>2=(dk$uFA||KfQ(2L++w_4-3$E`g7c2YSY}~c+i`V zR@OtGhIkwb45zT|h1arkhXO;zumGJuWqYI<<99>|tgm=7xGHc%4hTl!xzG0y;y!t( zUfe-ofFCF_|G}a45_4z2Un~OWXXSPeqRwqKzqE;316P(GjHX=lF8g-|ldIb4-CNc)_oJyXDOc_({AD`LW=1HC*=$butU^WM)X0z_5)NKBm zCRCf;)i>`jo1fbnHM)VR*^K{5IGakFmc*%X`?b&J0GrL5-?7;|HMEc^kn6La&nvlS zfo7Dvvm5J$WG^$Ya=BoD<&0CBxKGU@{cH8uy^Faq?vKH>{6>y^$bJ%RP94kp0>vL` zDNvO7uL&9n`$D8f3ti^FU$S*fdG}~?jBR#89{bKEsZ*r-pxt=euT>*rVnE<&+0l&8 zgTb= zQL~)!dPVov^O49+=D+PfJx^a$U9ix#eKE|a-5%#no(@A_>A&g@>SM7pHRU{y`sNZJ z0?(jz-)42%zjl+lL(x!Lcb{D*@0_PQOKV&Cqf>V*ai1occ(h(O`q$3mk9&pVWo*QK zx+dNQ5Qkl-@G!T8Td?k=ZI=$Q9d0=%49~xFA#bLXt%kbaM)|yyskmi7#lv!hjfuE9 zxdIzaQG;nwK1zExqU8jb3b4bDr!N31&L-6O?Ntn8U6BpBs z?X_(;3c;1AcoX~6O;sZG&SdN9LxO#J5}QTMT!r?s_USK0d(y}?mQZV_$LB} zgc?g8z6=-bLdlLbmk<^$r={ebn`j7og#BeO@+kFz6quB)d4rNY<0CH4shs$D9>3lG zcLbR|^}_^@&F=MIiL%BP5hENsei4mEPo+m;WTE;Yh%7U13B$l$!WK9h5se(qkg4EPZVVtpJ7q; zwzzTuG2r=ldnL8&6_cN5fii}KTDc=%?4HJ*+A64p=O@?cT|ws^4dKBXK5A?JdvL3w zx8M+|y@{XgW1h#aV9dI5zOq&1*Xr6!8aY6EpBUwofTrFkNqX145F-O>x&Cir+h#{rFFK)pzh3iTyU8ox~& z&lBd*4y|olY+odB2imLjUW|tiU+n{<)XvCqKF#HIBVMEWJH~~uVu?8^T1qTeiZJ81 zelkahh+3&8!Iq&2C{Ih21GX)9p98h|ll{hS324`Tv?LAE@((-GuGi1rfp#q$+CkK~ z_ZLRHdeTRzZ%{YTt{S@WM1P8GylL9?;H({JS9e&MWQ^JOhO}!T{M_E%C_-nn>(ShH z+LhQ%v};@*!*?gW^`&{Wdx69hN+G>M*{odB&=+^x5dUifUlDefES#yuP39i0I~wBL zAE)Gp4|OY)hK|{Bq-Oy#jdblj;YfE+jr62D5Tq;0tm=nwGz`$qx1 z4-Mdb&IcXgeZ}{8fcM$qiP9!>L@=4V=p&qrx?wT{=*A|q{Mt^u;zV|C7hZ7(kkc&s zr)J@a{|gXT+H}M#$_BK3ax!LO^L$;9iskV? zKM?#U&vd*18*m-3_`OHY<0kc#4E}ojwK1><3JjR;#1k~)jy5A5UbiCgi+G@6R5<9T z_Bp-NiLCC*h@7*ZAoZ~*1VRQ{a)ux+IR&io#h!@Bc|ZKA?jh^7!7Dn&i&X!XAL9K) zMVLAY|6h2bDS8JtL^HOcb<6Hn(MMi)L`w(KrwFpV)ggWz=Pb&M!D9ewyN_k^F}fpLE*MVH+)3g8Jx7lHQac3ZXUtgpd{Zn`RPALj(4 zD0hvSLern@3)Dk>09kfo$rAKCr*a;8kF?o6ww9E4ujq?PAD858%1O2K!Yh#L#<9u4 zJz^QF@!2Z#8{B?BN5M%I#5+@J$sP2M*}=K9)!0MUy&v}ttnjr0ALoZjcAvyqf0@P= z)wYFZ(|9md50GH6vy*qGR%pm+w9)>cpVmH_)=Hr#heaOX_S_@D8o`N2>^ywmDuR+fASZ3(15A(%s*lME*!z z0Z%Q<@sj*Ylz9>ef3Shg?4ux%7Npn?3rr~jN^=wMeI@LP`2UdA2ty(2dhpHuk{LZWCdV~HQ1!>0_=#qQnD zgS9L060_^+p4Tfc)}sDp?bmH3Ro5#KlfSNFcdE;{pI}EW334;}Yjoq#KX(sq5R7mU z3A6Hp(M!39G%mzMUOJ=7J{xMWGbW?M- zw23IPF`^l3q==m44Ot_{*Qt=MEHC5CYkrNE7P*$cP-VTt zX3{;*nS+S2!FA`*d?+QG4yFC?28up62@`7v(4W2|dgS?aO&sT|uT{Ob>v#Z|NGq{0 z?dJD~o6H>kIO6#V1Y45(G;8Wf|#BCb++B$3?`l16d!Y^(HjrGOhG-8~s`l>qC z@05ohmj1)}iKRauOaBlq>q-tQt-ESiYSN@3D@)BB(s;^X`6iHxkpd@6%O)B|Cdww2 zCMu`8YI0-vWvuc924hK)6LwN`mnvySazZP2r9^Ru^)>;lN!M?nF$V*ez9Uv@r(*Y{ zu|26SeIjAjIe%Z}DQgmcC^(na%r}`kix=D-YUz{DOnyqo7-{Y-zwF%U>1V=*@6Kks zQnCxkQ~|fT2%{;jt3dnvOJY!X(&|p@qjAR9xx2sqP#5#v94?xxXzBS$iCv=GG?FGb z_#L2?b`^x)GsD6e2)WQBcmPbp{puvWjQPcAlpLkq@)6sZg_^NrNPz<1P`~{wSW60z zJ#vMR>d%gUPhKG)q`#l#9^gib0HB8}P-le#geZgQsY8l@S?#8;Ik+~Tpwlb7*PXma zAYv2?&^?kS=zQ{)@Yl{gzt9|$xy_rjI?R6_Ukc=$U#XF{G)2!&F#j`l4|lYIelS4e zZFFzlZbCTv-byVp?-xsQg9;S8y^!#11Rs3)A)?Jgdzb{iP=C7ow`+TEfkuZ~^wJw8 zhyF`@Z=XjrEVK8{Zjdou&(HeErKGiK2AoGX^QTOq7>~Bv4I)YI>t<~!R0TqoV6?St zQ%A7I9kia>Z9OYK5gMBCer665L9jNB z?pNc*;463Ig~=<)=Xy`fzonjON%>vJILv+QA6%5+-AHnwox{uQ^4_}{M8H9gv$*>?J?z z+}DHcIY}+1r5Oz9V;m;G-#8is9HwfxAd;UIwL9iaK0bJ89Og8xJ8+n~CBD)R=I8z|H2CX=M5Ro(;Og1Gj8m@cFE#?3R73L6<4d^~L-MJlCJ$3eWW= zCE_eLdxSLjWx!wIGR?WhW$Gain-UWm6JjVx+ORq5>75`hQw2Y%<8d~1x?FE=@%w&$ z=ew6OjIb2DnuzY^e(;*nu3~o)T*r{Cu`PE_mQg4k|AEIY$|Kx(q2fHN=#_eQsh%Cd zGtN4~2OdZLSK4w*X`11y}e-^$<9MA#DFlC6*T^gqnt{@~D=0S5>OPSyu+b>;xIn*})qup8YE-Gzu6!*X2P$}`QeSiGRzUARsx ztkHcRhAyI-^ai=)-HJrTF{{SYR}yIzUYpk zTf5LU3e1k+(eMpo>QmE{?TQ&jYi?Q>Kzx^!?J63Cl+D){^0ThAJ4S3Of`>-gW^&z; zveiwL=$!uE*VowhME?T9Vj^@ML~QOT(Y5}dO^TlNJCRoUD4FB#=Zh!VPy6CXT?XV0 zIl7cz$k8fcSj1&r$;i6zj|w5sg}&|9-{{*W2o^;L9aCWy$~Gs?YjxlIZb$N#pD4?7 z!?+caH_v^zT|eTJ+(hFb@u$SQsP#aH&_8IUGlWyLLi}`pxd_4U(~*H%Z6z4+QUKuMtYRfDHJY$-Kc{88Ahr}PyO~TyfeI{_#g7pZ0bB4}qkf6}pST4F z!@HAw&CE_G5`~MynO<`H8I$5LU@LdI4nP%>;uK?>9#>w6FkOuYRo~@9)A8F>Y$M#y ztvTY$w#V}X2x#B3tFbA6U|%H!E8j~@MTt0-DNIF&f`wP-v`cL)3e%NtkTt)<7y^;G z0!rdY#k;mgb*D}UAw0<2u3+i{TsqOI4ksBh&Rlr=MI)v3g^E%7z-*H|$gc@o(kX8e zQx8>&IBJ-ZkuNXp#h@W!V-QNg`!Bb$Na57w&tZqiYc7CXaApEBK&}FmuU4@;24(mW zI;GEhEo3Ir-(uwOn@jwr60OeX?%35JVs&9Rl9wxTqjEwiON2;TppTjtAs`hFF{PCb z-(+NOso5$H=Pa-d0xkCk`D9|%saqYGv}o+^`JU*PDQf$)^y;9e=brhyw_MJaz~4Q@ zEcr_X*&BB7nR;_WiWlY>6TEK@f2iP8nm~kCQ2mxNnJK0KFHUh1!`+HS(i7&O7|Qk* zjtEmVrD_629%_tE#+*Sc|1o+8gHHhy;9km?M;0Elt0w!_gLBJJkRHA)YC2?{C9w0< zUc(r~g%LNVx(hgdi2%(cDRWhHSpD#=FsYKKMhb+_Jevvc=QkPZV zP(?P#tb87MkukbcwDg*N$0jp-#fn;I>=7+$n~_!OZ*A!l^S8x^ZEMMhQ!1dX9;?ep zh2k99oUN0QRe)RR>Tl@PEk5jB%+VvG8LyJm=lHn4*ge2qrS+fMLQbZOq_}3NWRtbr zM()-lw<(WPcnoCkEA6Qcf(pa~9n*7 z+pZM-n^2|qA~%-+ZM{3S^SiqueLw6W(l?GSntSmkygHh^O=tU9vWyu{$VRW0?anz! zLA&0F%IrwZb{>-GBT}n;8Hjuy)O0Wr^gFxmL{95>)%yU2DeTXmr^ zG`uH)u(~_50$*~7h22a%PAkYNjgbmWKl^#Mo}uBLz#}3@;usxRQ(HQ2(pHqJ9>CB; zYjI)a=18s6Tsbn-ZsY=`eswFULyiYct6Q@w_c0Fy6mgA3O z8E}fv9r22oMWe}u=)nxpmb-z{I#ttsb!$e&F!j4v$9@Zfelsd^+FyB@tf?)hmsH=- zt$VN>CH@UmcbL#xD(zZjYuqPdZ-t9Xl{KQWwc-b&Cx@XtRvT!_u`5JVpf%GWE^hP* zqAF#roX+L*V0#p04Gd5_IOQGzV-=;4I=^-*h?jDIC^_HK#mc6;!WF$F4%~$J;JURS zxhICVJQz-MzQ+9PjtI2ZDq(~cZ$NW90?obF5NN#~1_<&$Z+dz`)8?%WySxGKud6;N% z|4dIUS?==OEu52Yux~Q9Vt=Kq)7=@LC6~Ebc+s3e6>?puV)$iTSaAkUNz3<=mg7T?VTI&&rB}ocl9lRyr|8v6}1{ z`v!M-i24&LM)bs(!u^Tl=o*G^dWWq_C>rMF#UJ7Fc8)rLSl z?qDZWE(>?U;b*0G!f9$0?t~@mk1nLN1!(K^dKsI`(C@eB+jr);7bNUJyWPAky3iP| zVX@nC3%_E4y8IXDcguYGl5W?ef{DM9RIsCNSFc+80)cXp-q3b-Q`1!dNMPBe|Fpb^ z&`Iu^^fA6EIL4bm;a4@W2c)c?jNSfo^6|&~W1%=J+<0_@I)h8Ylg+xsCVL2=1LLGb z^h!9;$SrU)5RCZ~^TK>`lS!9*#-i-%ALnd2>PV25^a?fZ zu5;A1P5a&kLq*M&oHA0FbsO zcJBjv#_K_%O-sv!q5LdsDoxz5&fQ9)2<;=i?+MGKlANLJ5!{%{jeIxaBg4O9xA_b4 zfZRj*EDwrZ(`P*JU*)<=n_)ItzYM9DyF-$?Y^3qA%VA%Cw1yl6*1EpwC%yF~$rBI* zf!p<1BisN@8eOjvbsS$92>VeaT)t87>W7O9N@yg`=yb{bOmd?N>5}Gnx%=<8Qfh%W zNHT%AhFH4P8>Zv~n^HAnk<)H$#p3=QZy3RK^<1_dFr!i;{@WLe&i&gm-U#<{$I*j6P>y%EoO*Z0KY8!_6dy73kt6^oQ z<4yYXVyBkym~-!oP_y=f%QMg*k+ci7_mWvFpKm|7ynVEQ8y;Nxv#P-4S(@$S2$Mev zP*p2!E)G-G@8_rJO!)%n%w*i3S*`(8mdtFTReom*QXCxLIqb9s6eHVqa@MCSQiq*Z z(6j1s{Xe4qW*z81kJJocByJ80fKJvGrLu{GW`x#yw!@zqYSy9T?Tx$*-9fXlnX6KN zNi1PGzun+lg=P2Zu0;p_**?FcqHm`4*O6k}JlQD5FBks{it!T~q$oy3KrwEyTShT% z4W1gsn8Wq1DaKy<9`^1RgYU69wZla-Q1^DF8T-+y6U`XRjTFrw{yvwVQ=l5qq{G^+ z7Uub6ZUInT!cc*eQMJ1fuv&E`# z&pn;(O;_FA18^;&6Jpca_l?JihG_H8;R)I-d-T+YsYhcOs;e|sm$YRZ zbS)>^cdFdqj>>{hR1BSp19M0XqW<<6bpoIUE8Xwj5H(nur^49*HIN!(SZ6I^Jk%0K zhfxG1MGeHLUb*l;qz3ndFaG<~;K!ee8l0>5(-C=Zy#8T(#9oPY9ilp-e_#krYNtr# z|LM8BIeW48Q&2nFNQU;C!m+Gs(d_rj4c)VDUY^=*9^!Af+t_H{s>cL{z>A@ZM@Yjm&tearZNCeYC*?{VSq{1ZZZ1kwIT78VRfV?8H3nlw* zg~T*w6JLN2{Z<=Gce#-Y+X6BE9iV_`N{PRMlbVbpjbZ}5tFIlz`SvNAsjpyv#}bbg zGkP{R+gw*}W1VeoUEAiiig7#9;wwY9ETV;C&*i|+{pkYR+|Sepo2@|m40~dFpLwA; z@E00{o4fp0%`89b0lQ_J`=Q{eZSIG;?zp)ph8{5bWPv_;oIaV8Wsz}l`8#Z0TDFea zYin=9@5MQPKik^o<-r)@gK!&k*KkwgL2DB)bcO%4Em!V7lHxs?+f753>%__r(p&p0 zm)gHSK@M_{@&w`ER)YPz7b=Hv{|*~roi(|ShXwn0ruOft==`fXZr^wQ-f8HYNX&0`Mfc-v|o z$$d9Kb>b!s<&)Zf+PyDNwB4)ysU(Pi_kK4i5WMC{xEgw?oixsaV}~aV1<11)eV)-` zz_(q)*wj(u_$A!4qehcE$7<|CI??@vX3wfE!BL~z6?W8Ua>r9@Iq2g&Dn|3|Iqukh z*v0*>&w3p-Uiv6JY6RztG{yLPzwU`P$NGysBriq_#d;5ioW7!CSA{jKz4>F9*$pIpkVMIyL z0@W?DUbb6s-B*;cXz8KSFrgauqO-KpnDI=IX_rw#{}|{EkJpEZpir+D$p8I%^a)>U z8+xVwXFBs2vNjpTg@^aL9(&I8Y&`Lf8)SY^WBu51c7X4f_JisThUj)qAk{wX0bs@J zv@OLg5H{6X`LO5jN#<-$IedX!MyR{^qU78{Qj%oFGU{EwDE`mMth@G*M1L7d^UF}; zU&dMNvOMYM3#1^b4pTh@^k1;e^Md&xNd3|F{<&(2VZr8NTva~h`8Xnbw3h86 znOU!)!4ThMLVP)v%xrL_o=xN>Y>BbN3_J&BaJZj=L3T!7kVln(O(wEK{*2;aJ}PX2 z33z0-x0DI7?0#2Uoy zyHcfr9?xKna=a&A3gvIbG6WF}&mrSh;r^MCI$Cg$E#W-z+;^hGIQZz2qXp%28eJWI zlShN4NsMC2=+Bm@E%z4Wp|IoBpYVL$*}jxY?_A*dKOBTBbj%;246OcD^mghXzB$lx z--9DKNV`AHRavC-2R%_`#x~R%c#w~y$(tw^`FI8bvqBRZT`ec8C7DHdaJ=J@0;9zL zN-5VGT!zOKhMALj9@(`cHKpvj$f39jMU#|a!y|XXAd*yBe$~RECr55I86S3 z3)s78!kO+&yi-?s4ew>eFn0}aLXpdlUeO_|KN%UhGPC!T$VH8K#=d~=_t12{o@jNw zKCl8e@0~QP*yJ|6gVNI9y`<{x8%s$ppMkIWnSp5|Yt;Nz$fl(76q8$Hi6PO1GN>t9ZMD>I<64CV z?b~>i$*_HNGs}HQfj>5IV2u7cQu`rinn*ryLPbB&c5uT#*tgH4V0EXJf$`vfd0|k1A22F6)n}GgZ6mT3ppfvZoGZN3Hf)d+VR|#}E`v4ybqkeb;A*)9vd{ zOhK1*w}1oIJ$X^E?!#$6eh^3K^r}Z$bp;<-Oix~F)wSZ2_tJ`YD=s{7Smf6Aw&h-R zZ=AFp4}M#2vZi!iZn=@}V!01%kDvaR>)rB}yqh|#cXWsKW}&@|2J*wyYrU-mKypAM zf#1oo*$HwCDg67|LbnQsM9{ogOSiA5ngB(O5VSNk`{8@A#l)=Qkdj5IV^-UbEo2Ki zE}4l2@)Y3zO0bcjVO67cT+whb({!sVKlz0qCw`J5y~ajL{11)0Oql~ef&AuQkHQ#Q z;U9~zOC`ge=J7f{+nvY76Ov11pe>jnk~R*~`@C1wT!}kBmgU9ZeiUae3;+lv;T9(mTbC5q-x|IT_wEGWN92U_{|LTQH~vfb z{<0%{=T7YtMx+U zg2Ycy{`lnOLz~EQQXr|+&pPU*4w@4aux0t)q%(Hz@x>Y$xt^D`(eGBZSew8L?&jdkB6Qz9*w=cBi zezJj=l35q2J#Juzoypw4%x8j{n{~ak?0!N)y1B?E$)IcPp1XPmI@@IKWooJKyDb~_ zlw#ZZQ87$E(DgD6*XvylXQnHhd}=0JYycyok;gA<)fgW~G(Zel7B>}{qWVhCw^W2O5gc%a6;GAmQ<+xOR_k1(?x z_SZwNb=Y5fRM`GH>sgIVTj~yb8t$)8r`yw)j1cMRbbA_ZxVvQ9NNurywc);(hm%K8C|Lb0o#40d{BMTe|4aD^dsqk26lpi>fk#3jfpy;`)y>{2PW)TQwN}wP=3fX&yEdn# zcPx2fc8Mibl;mANG4C12o1Xg1=&@xc^rGXnq-8k z`O@6{Itw2!+BRcf(@STb6UUf2Y&qw##qLyiZ1dB4p3&wl4D%oKju&l@M@C|&XpP*m ziig6`nY_&L23lq_KV*VOUZFdS_{RnxN zVZ{=&NZ++P`{y_vDhjIK?C$kJd$7A`QN9@Wex(ekdU0XOpBRgvJM^g!)8@)B-oJ$6 z6aG4Cst|#s%)NW<|-bI`Cl*vZpOqmwu zIlWMx=G7gQU*Y*h{90PDlw6@zfHuNDqn z?hBPUQr%pK&ZZB58I|2~oK`wqm_6O#mms#`BQm;|lu7D7=8ScgW0qCrir z*%Y^cv^&mRD)`8lbt-V1pXdO%Q0&}+evpZmfyII&nBwt+b683GAodfo+{XMFse_oW z0vGKEg>7#sE?TtMU*-*OBsyBhmO_O{M;>e7#59yM8B#%)AnCMzM(44eM@y4??aDkm zj}@+IrziRTx@d45%ZHrW$rtSHL{5Hqwvm$qQ!>d@9K}d6u(pAa>8nMG;~5(nnB)gNbY!L5!v00|PCY5mq26*6qgGInN*jomyjt3YrK1Zw4r5PsESn~S7-WMO zO=tKmCkJdmP~srIO4`v3!p9NpB||8W%dN7dgUpPma`)Q41a5Z3Cp*7rOE7@X0c5c@fTgFz z5q5Ti1q@aHc#stk=pisdP88Scvpvmu8-d%?{d^bui99{d<)>fJZuvN*p@ZckAsRtB z(7^zfK7d7_1;b@da^nTfZm#^3(2PkxpSl~4nDM_k6Nw2(%Y0#k;<@x}LVcO-Zc_;3 z^EB4b;S3T{RF1O6SS#Bj`9~xHCC0ECS5V%j<22lQbcaP9{YN`eR%`C-VkG zq{S~g=7pA{aOu`A9cDT9nou#9_`OR0o8%G7$Z!^0Q*;}?A|8_%2``~qDK4|=GmEsu zu?&j#2757Idoa(`H)VD4a1Vl>T{fWLn-lO8a5?Lw2h+kvK}qD9ZpaxnP3;*tUd&(Z zPB>DBfL6O5d1h31J#q(gQ(AGn7#o^FZB(V3dOrR5wa5P|nz6{scpfEvGLyQ@-oaPpVKr|8PHIXFUK|AroG83>!ckp?E*3F zsV7Q`NZGzRmt52QfLSV@gG~EEjZ>*5+7NAUB-B_R8~&V`0zj7Uj#se<{|lb<;^zv~ z@cxodMxor#?x5U1ypug9)bC@=qIK7{==Z;TQOMF5&uEMfS>}x(yMFCsqL6+@N!5wn zk<9M5UnUq-_Oi4uEr(*~&AEn@$;bnjJ-0W&$?}RCXY@AzSDLq=pd2s(OsAXW?rzfb z#QZ)QunO~rHVVNA*qO$w$~bk)+yYDw0TQ;`ro3Tn@5Hz~k+i9zWAly&%V#gvRzR;F zxGKYM3u8V;ACbLe?hT*djN*NvDF;mX-=l9oQo{WIyYy|}#{X^l_Bb*5|9kZ9oTWDY z|3&)75<<(e-uiu-v=w(CZG8r^=-?A47?HIFl3$=#Qbc-7pAX0yrd6C8MAOPe)9yF- zr=V62^eLcUalMF{SM=-nt%6t=`XxPlKwthR^y}~?0sVq;;hDRgI`Bt?MruR!OMZsBCB$rqBUB-89SBCR)TfbVpj$ zauS5r_I+MFV~HDStvQVIIs~Psql^gK=yYyKBmr!By3w|h9gf5EOW`IrXBHVG+2pr} z=J0a4bWGCD4%k+>T(UYh<7>cSe;6S&B(-H{7i(uP8O|bCFP<81>Xfi8`PTL~mJ$iC z8;>%PJL=7rV$M11FXx=2SQgX*HA92s2BSR8v*rAo$iGSM zHeT?uoaXv0tWEzN;E_bL%7#Qx?=U38|HIpxz(-YNZ=eZDW02)GN;E2JMxq9BiGmso zYBwZsTe>kW!MK2N5X3z~2ZM+Nl3;o+SK@-A!kBS%L`O$v#wDm|0!X4T5O51FfZJFx zD&WGRV!!V@b#Hek1a zLX=cPe!%y#BlGyJU)qo2Lo_@4mn3ge(v$;K0Q#GDkGlU1PPE+^@nRn3Tccs`_cGPc zqYKIVVd#EQi8*M4Sf0%OQNHcpg$ayt=X}8m;@z^s$P8E-rk;b};>0eDC;_Z@QKpbI z7;98&zrC1}yTwz4k{isciqUilY)WB_0n3KU5yfe3hsm1}g(l9=2Px?~LTOg@VV?&z z2kjfN9oPeO0{jgOGzrlF>9G5mO^sN_Q2)p1ySfy;Y99%x4n#yf06{zG&jhy+uprw)#`ALVL)4&>KI@ar^QO*~x?7K{wrMug=}EymL_i0M-c+xrRH zU{yO0IvyB@B#*IE0n|n4(>hg-XD(V#?EK~`!Q(WcJ1o1C^F+tq;2qi>Nu)iK5rtmsFtqxC6s#KkGjBA2;A4`G$QGE+askiA; zLh&#yW`?*2Ah5;h`7}dx$~`?0<)p5SC+MqOwd56jRjBS*N@GM{6JY1boHb8RJ#dWs zP9gFaNt9H|1Q@!+otyf;9=bJk*AtyJY=FjRS``YD(|DocLVT7u``4~*JEHI2xHc2_ zYkGFL7kR?fKfr+sxtLViOWUG4r_*F22%FToNmpq3a2|Ur5Secwq&obu?qXUV5G;dLt@T@5)F)o>8aist5jYS+gzIe? zZnXI}9Vbl-l(AmDxAjL1E`>q}jg!q}2%YC=DE}oq((-h>y+@Ki+EfjlU-}{QdH5Bo zGmSAV>h4BB1n&(y{b<0c=E&{&m=UdN?469v0BTvIu8)=aVG&AQA-BP-a&(Y-dzgXp zmjp^9&`hLpN;c-)4F-S!v%i?pHv*7O2^Bmo8y)v^iiXB0LKR$xZ{yF-6{%&%pv+bT&7ispYF5OB zRaI$ z2%oDRTR)fxjKZ4D|oTX2kvrtf-*9870B z01xsG;)pL2F#tS>^S1*JD&5wZ`?&Ftsfx58T*zUYP>ACKPe`DtI-DTL%h45l1H%eF z$&XYWel>p8O)Ci0=$dHybFUB-9q!MJ9y<<@i6n&Gu`r0X2ch)AlYQbZnQUS9SM@TR zJvTn+GMhRAV=bn=bqFU;;5pc;k>`M6mFqfzgt`!7X`DlS60X%F2;T|f%zseW&QkU4 z@@-Mt7_JROX2QVYTyh?eXeJc0FmKtjA`OuXu##kv{U|g9_QN8=g7U3hC^k8oz7fSR zyM-0~OQ003s8RJeZp59x`eAttZwb+jLHmx`mJRsvotdTrID8V0 z`S8bRAQ=V?pk)||k&hYj=m2sr_ybp{Sr^i681UMjVYl{3DyZIx-d*@7nR-iwhy903 zlkl+17lL8DDz}=4-7_b~!=8whI+djs%5A8Yyo=g*4QVT{ODE;lRYQ_~SCM?Fme*MKiIqPD~672^|Mq zCRV7{Jg%A8WHPZrn77kc1$!u>@M!xxjq*sGv!>{`;+!=N*RFGx z<>7Y`KjJmq5+tp~own~C$YJxe-m7I<^jbS@A0Kbqb=qFVG5~xs=$J5Ay;tCgcF=kS zS9H)Kk3@X6XK`CI{5UX`*H#_~fndt(lpm9Kef{rYrOQ~k4y2bfWOIO%WQZDPjTlPo&=f6zq zKUKar)RVVytLV}ac2$eAGDt?VSCJ^)gHu@z_4!zgeq)<@m~n2xBDj>ZAaVh8Ak(2b z{~ALXj0}8Pq$%X4!_iK}?=|{@aBqep^2&_-np2SFHa8dv_=1sZu~WYmJN0WJboop0 zTWUrwEzhsHwgg)YFMRPh9rAOpg&X5=7ywXb(eNYEISrkhQ8s{+!Y<5)`|ULdzIF|U z?+G>MSj@p!&;#h__qHE`_b3x;Qtu=7LxJ_VW4i*SQr_NL{OZ7M6JZjvQ{F)n^3aUQ~2T;vxtY!$Rd7@)A`y1`6mT|O4=-OUHZLguWCt&7} zQ=Ot~f>s?d3n4?*B6c7g8hq;3Jv{j8z4acMw-Mx`f3f#_xS13QwIc)hI$YL-z6Lfi zls9gJ8Q(6P*<$3!MN#uNs{AwT(JhRzUGRk&DR{zM1|G-%X5k68)&T!2( zW6nL~d_%9ymU!_3<>4Yv84OzsZ&Uj@V+ z^&w>B_969RijvoA8pB&5&n0841y#e&PO65bEGw#pAG0{;wj*Fk69R??BQtTvEqJCn z;YmdIV%UhbyI}|dYWjA#(Kq#EC>@$C&qsJBXJ*4A`6s6VY2Ziy!L#8t`6u^6@176_ zJA8HOIZ5iOd~$1yI+r?*SEpg$-+2A=MUL0K1Q8fE?QvhIL;eB|15VQizZfA*hX~bS z>X&XDF+GsZ6j5*b`E0B&WREFC+Ae@XvDK1_ z^0XwQsvr#u3rF|@>{J7}$bCkiO&qknMn1t{&A3H!KmH)ES_$ilET4=Y$(MnwVm|fW zPN7dPNl>LDym z1wKH9#tU-rQK1=`X@XstD4c87mrl8P+O=0toC3PdQH$MA^9cfWX^?lk>XPoreGGXd z7ePhV%;)kEWXQB46P2UVQUr{yK>awL7s9GT5v-mCNEgBtF|xb{FD69_%8h~5b+|;k zw;2OvTcm#W?1@^QL!?qW2UuV`th<@T_5pfz?}ahf139Q&asa{srP+!w*_-!H>EFtxF%Ox8s&o--i!@qgu;z z53BGBOaP~t4Y82nt)~4;MCW6C(Q~tIiSi53kc6K;D1}DTa0!5Z#vNK^=ry$J#Y2_G zR=tq#U-X>KuQ@{1KD_D4LVYFpHonZo6N1#2WnS>~!w-ST!DGW)P=_W=UJjHvp~fX| zpuZ(}P$T&t(PSRq_LbuR^75<%Sc>^A0|+}^B2s^ zW#pRyjyV6TfS&u-Ban2JUjTjl0tr>R19AMS{bt6J?TJ;abs9KOD-Mv!fiHvf)1CwF z4CV`00?m9q$d1x}LjR?MT5ga{@!}$e4yz0@n5Ug zlY`cj$AGTW&B~t+(TiKBm2E%=+`ju)7q^*5X=xJ770Vl13c}qLr{P!z#GxC1WaK~I}TDX&ZV*Hu|Jur;%qK( zOkI)p-ZT+hb2~~TT?#hWs`?`jNP4vg2G6t?6XzZ5BP!c{Afik);32)_9l_tqZ<5PC z$6Bh`5|`4Jjt%W^DV?;GOR0(WDDUS0^1&adClL%#*njPISw{9mNH{GKGMwJqaf4;# zK1``Ea9I<&9~8J0qRm2jD>%!@lA3W3sCz#62ELnCU@`=CuNwOx290>L z$JMG!7wVC`Kz?ZnHy}equQ!6QSELjSqn_OdlwpILK6Wlivsv}RRt?s?Fph;~ z?0WS;I5{a4Ij8MVOd?^3k7aoQBM#gpH*GB_4ZPK1gLRr4F4aF=K%7+oKVesK#ubXxXLYW;oCSf5QZV{xS$}}>X1(;Pp(&eP!)7K zL2Iktw5^GzUxZ;}uHGkPzNgQtMvrV;;Z7ypPbz^f8uY0ukCW4}MSM^0;;&x=;DCcS zE9DC>K|KnfNlF5nD*z^~ns*@8UoG4K(!SMtGn)SKGgQemtE&d`Tue%;1%0@e*W$%8 zgV#KsoBtPiD!@!wz@xEap9Ybc)`D_&+O8%h#UtS9tTYmVQ^PJf$wwMGDL~fZ!$4{? z*$HSpXk`Z@;Jol74o05YioRm5h7W=NbDA2Bc3#THBTmkLWRNpyu7s06Aj)_%qFpWHs}lVRSZY?E z#a^9Pg;xdg$|k5BjK2*5>h$^1%Tmy0Jg>nYaQTWX=B@$rRZDY}+Ov)UEfI?~i}|l8 z9HC~!R=3)eslr4r;iC|@Q|6~7#&6I!I=7;7Jd2?_2jL5!jI6jTfUQ@{%58aZRm`el zF+AnS1go5rISHFDO;nfP{Y})*ASNls{PS2&e4iphLWNc6Unk0s>J6-@=)|*&U?{|jmKjwo|3i8@)Y9^da;^Ip%xQq zl|W>o4RsrV@Oqw|Lt>X#roF%c#6;7F#{enB9i=?7=vowK?UeGcR7G$LwHQ?Gq1u|_ z!%f@sEPYQSh+Gs|T#WCa4HJo%>whV9ekAIo$haEy-rLZMNq5jJ#b{JfkDO)dRlL9> zevC)0>W)8?m_pmt>DW5s1xHuzAK%V<9$8=iDM@9yd;%iBl%gv?2XAu&3l`sl!g2kW z4rh;p+(GaCW@y1#rk^T&Wh-!j2pZ}#+*&Qz#}YY=efHqV#K?lA#P$SnzpK4}Kf(4E z^drpG!sYaYOPFq}Wv=0<%j8klzkUR}i&XWNvbHVKu>LYQ!IxTK*OWu^GBPsH^D_Wa zx8npK9r1#Uqv^9Ap&Hw+k(=vqgQYZ0Jy{#$Q2$ZA07%=toJV@;>3>r)HtW%Xp_pOD z{9Ew?kpVMMb8LeB`Cyq~2jB5~C)l2ui4&|ls>B5QULMK>bKc7Y+l$BX3APJ&m|*!e z)AyNS8HB>?3C;SSX4uIno-o6X$E`cV5c!W&EclF`V(2wVzQYvD$Jtyt;{DaAX&d%4 z!N%c5;siVLVP}H9{WrcyKdA!MbHY8xr3uW<1hbB&Z~n6^X(;d&KvECLONat^wUV!7 zCVsqyboacTi94y&T&`!LBmgrsMUgt%N9jD+gU z$bwQrIC8>X9OPn4<{vr>)20oaLYC6yb$IKq=emRa_7dD+h&SCv8W6<-){RAJslzKE=ycc_|f=Y>7JBXhPV^MtmJm z9r7`bhsbBA8?4Q)sX!BI&?6+ov5?W4VF3ntZV~AXWv6^3Y>>68;~pXzOS|g2dBR}? z?(w+ZITGT%J+?U9lR>8F$n!=!jJkk0*zAu){$d3S$rYiz=J0Xiuiux4hX=t|3f6et zBv=$=hi(iK)R-24-QhEn07&($fPJ1s>448 z73%G)lR;y^nq5v9j{OY59zO`vybb9Pby`|p@P1atCro{k9h{EDDy(O_5ATx9n4qH*naPm znMy;jz<|A^C8)#r8>>W-!JN;nX&`anb4R(xClkpbIPyW$67jhT`1+mr z%mXmO9rwZK2tWmVrlDrCqhG`4;Ej}+zbT6$((@&*k)bOCSo|25HGT(+)8Y4os6;?x zYz)-jPUwKoC!zQ03ZL`jc^CMciWkvzwHWxUcv&WbQ8gQmb|I@EEnpRZwtM+t6W$!m zTM^C)*rpfEpo#>IW^j0g?eaw^t&MX6xB~BknD56~<%+V8h#N=AdC40%I04P+jcVj^ z4he2;E-QSz6u)XuhRlfAZdDWb)MqegL*)yjYM7o8r+~URBgX3yEDR@(V7K>TBZ!ri zYZa8KY>=~qrj1l1L;hf!X5Ko46t*t~&}W~}$kBpdenS}c9v3NzY{*!KcB&7Yzfn!! zg$%!u845a8=w~H{9Dd+*vogoDM}S?dE_=;s5foI<>RM+VdQ zNvdnW*0pVoi5k?99v~&r&$B|}iakOzwfq5RI}ai}(a0*rO8e(uuk~B>UTscuYjsCJ zs&jaUW*Ygq6TmdaVug_QukOq=#MUdVD=nLu*ll55)Z&6ezgp(IV z1?x19a~QUmT|zZN6Pa?HxmGwth99C7KT>PtaUvFX96kK7O8n^Bz)AHYy$vUnF&ZDC zX?!$@nlyf;rtuqYNu=?k-u?|5f4w7(U+U2KNCc5}jtI=r5tr3|b`ovzF8%ehuUxJ}?(xQ%lzXd^C%$iqAf2%yz~%iTxQ z^mf4m0>T;k$+^IP9BgjPC9;cM;T_y z{?s(L-w(v7@c`A88xI;s37xw@*}7pDxb&Cq+y!!L7dLf)ah|LD=dT-Y66>w?z8Wt_ z7KwrEc#e{${S|D_wh%?zJ!S-wv}Z*SH!yHQ0EmUaWi)-6&7fIWt6^GXt&gT(T1&b4 z07q@}_gofF9qK%BO$~?sOzYWb`VIJ4dpy{lR)y=xDAdwqHr-i)%K2Z@oi+Lb(m~uK zA`!l2v~^}0oAv4)r0dfz6_iH!WNB0i>>KZI#f@BuI>!5Z;RZZ|+B=t%Hdj6I z6ZjhZNdQOZgg4H4N~b`7BX4lF)diW7XJ-fZbg-Y$vHpJPJiqRTuYq4a4%>HX$ahPoWGv@$oAaM@=XPGL?wguu|EVQ$Bps#GLHGM zi}^|d4&u2wyp|i{L#0qOJzvJ@U4dSm!UGM+-Ds0>{ldQ**YDeVSuyPVVFzy!7KR!7 zoL3~;P$u;jzx*T=n*;XaXe|J8;NHY|B;wB(z-;#el^1xyz9hCwCOf2V!hQ*(;>6M* zedGJtr<3x!nbr!!>rXTK4o@?@fefSXc^Q}q<^=!GaQ$kdf3cM3sfyhX!;{(qM&#`< zSy&(2!+SV)NAfp#5$?ma7vd!Gp}7-YB>ns-EpDQ|At9zjWO!yg&my{jlK_7j*i}l< zc(#FO1|uOHBly#?fqSy}zqzZ;+yH056$r9?E<*^Uw9upCP4)SNAEMY1G_By4(tPX7 zc8?relF%P2<;YG2W-d=N^EQW1=5cdO-j;~Y*tucz&yxg-5~ty zc)%u9g-|Ez>aw3;qjVll+%8Nr2Q(ujLuw#}5uGp`*fe1G-XoY-?1gP`USqfykDhp2 zwxgY4JE|K@BOk7MD~#&rK?Vc`nhczVa(x4Eg{nHNuX4FNPU|U0Z$rVDWgq0PufSIz z`tv#UQNC0?j{Ju_2(vwTEQQUi?Kqs}!6~ED0bI#FB;sbZwKt?Gx7@+sX>u=BLnX;I zX1g-xQf)+dKA+ChwH$}ju5EkDvibx_2+V;v1C5K)ldruwB~6PfulUV zOE?N~C{r0khZRfHpglVqkE=J9=Y?Q12$Bj6YGghl25gV-xVY8IYn}=Qm`WdTLoNS6AWWrQd5siBKoQXeL>q9C;Sqf1Rb_-l+LoJ=v&O5Ry6|$txzU>cx?=q|79a~ z`ikpZV$47;MNN#GSt@}T|MAs6hpBOcQr7+c44+BE){ zf*pDbv>j6=EFTJvM#Ob`7XcR=y2it!RstR-b{9O1zXm-d&G_qSFbJx6ntc}7yTPho z;~}jR9u{Kab;84P=}xmc8#6aX6{X*}c(~ueNRGN;wu^`1WyC|O$Qp4xIP2XFOd^e- z#>lJy{_v%lR zI*#rNW)$r>x?c!z&FUJ=p;)gTB6E?t8l3*+sQWA2UfmF8uTF;80i!O>|5OInexCOI z$I4Z`-0MiLYC-UHsJ!t!L#^U9%Oq#0-6$i*HUJ*RHi!sxeI^WUvLogFm|~SoG(Uos z>{I03cIZW2{17GmX4U_~pQ3}`pr#8;Rx|ZTVy;Sn!5y3_@jxU2X_uu6(taX4(4-(S zEbR2Z5JA$>U1EUF)oLb7B`^pZlcf{V{v{$;vpNk^Erzs-WF%6T<)AM|T{X)^+L=>{ zv^|kHgV4(H%xL=6QX4$%oK;KYamGK;vEO~BQXnR|d%(r-$v>-PumRM+Dm z5Y7#nGme*2LHc!|r`hT?abAV}4LtkRzr-61xzC%`p%bVsPj9}i7j%Zm^9XIVnc0rT z@6CJ>3;&~j_+zqum5S+^>95=k6;uO=vhub}TrogYhyf>_!9`%g$c&+*GK}gv+|aY| zKKz>2m6-^f8L;ligk%KWToWQx$@zr^v!$Na1=*E9CYO2rLodiKyB>@HStk9N;ZWs| z-O8?zhhsxl05#x6<;OoGxc<+KK!mI+h>;gSG7_3UfgHGCr_l^5l;`)B9YYE5NM&GC z2ji!H2!F$NrTx4gZm*7Kq>-px8@FR+gRoXgAx)q1VQWYHcZ%l*F!u1c4iXfy<56?@ zG-sV0Z(!&3D29~=OF?jIK&4LiG8GV)3kwa4NWpvMmS2wd^}fBIECumIa# zuf`w~sJ?nzV(85Gp$x+^Sck#f)2LEFZD6^p%%ot71XNs6%t3eR6$Q?1SV)i!3=u&Z zjk#%fhs6Y?VvC721k+}xQ8iD7X`MO{&4UVhgzw;4?N=o+U>XsnMFTSm!1%385YNNs z^;^x>3dHtsqIv}My&Kizto*Z9l)<$~qoGQgz%dXeKG0BJg9(5kN@vhk3o%jfxLF~@ z2Hi!EH?1Sgyhqq!qxv{V_`8LG!I=X9;lix8D+sdGpXCTX9zynxo0`bKe z#0RA=)+JzeqnY>q)B~{)T^_J|HMWnQ7GmH)%03$N5O-kkELeYwZa>Rzf-UqwO7nwO zgpY*kiAMe~X1>7N4{GZxRdU&<$c2K&>8*E3v4l2QJdu<(D=i`6n{}&Kk}p{6 zoJ8|F_1mVY1pw&-h9W66?GpjSH{oMoPYIR!=nVCFId~C{@;~A)wyn%+L2rn;%cnV3k5xj;k3}kys^k~Be6|#H-UTLcD&Y*Lc zb^)j^f)3K0P|Z&w;zJ+iH0@z4q4G1Tgp0lsudAn;1YK0;9)Z;X)6x}Al3(dcHoAh-OZE+O=^Nb_ zeiM-%u`fsBVZgdSn=o3<0c);iBJQBCk{;~lTj{|{=>dVQ9w$8*lc65%+YR5AgI15m zi|}y{e@94vGPSC2$vk-V=6Co4B{93Vlx;=FO91+0oJUtsckd&cs=BTRTLSIlNseis zzVlf3yn83|xl2r)p!ElsV24G1VVyM1u&>0jPH(J3L=_ej}uM*XC>G1 zW_4;b1z+ki6CpuJE%V?lD2=K=-l~^>pUS734NC~< z-+vN7Ka2zVF@V5o{Vksm&_E2(E2lX7LJh=L_>d$5n&tpn^Gh7iS0pE#>c|ds#v!%eB0Ojy?e1yq}IX3S<10j{X}17w_mhXd-A8VLYT=-OZM+;|ru~p!Hv4ua@p%{9kBm5;rC4WVuc^Wz!)&Ih~g43dH`~_S4rN2I; zd{=HgPvDl;KQcsW`iq`-Y| zhe|m-nq=aY9t*aQ(QS4r?Sb2T6UIUi zZIbG6i*nAwzMo~Vge!VU!iqjw{o$0vW$+7jc7iMv@ntX_5BFIH6PEQ(OS)b%u%z3) zRt#<^sEQg38lnx!kU3$il(*TKb21ml%2m)(oId#I9@ry&Zd9K|13?R`oyE1SvLP3O z9nL}Y@`p1&NFzqo)fjn9^|s!KJ{nCwK1}9d_dfn|J*<~;0@$AImpH@9fm4q@k9{p% z1|TZQni8;@0uiI_CX~gwz*Jqs=a=akuFy67qeBfP@frlrfe38Tn%Wo>!e#%xF9O!E zn)e!iItKqyVUH9`3QZRoeV$a=B!mqzgV>Z}CzKT1Pd z9*6W}l9-)-7oU)Ee-6WT&HjIaY?1)!?XCMj`WKvsas~K90;EMQq_-oZw1)IT7t(Q89-(M_qO^ z-cct4G$N=n0=E@=x+Mi(jm!TTrd5j9o5Pd1zsaLwpa|8-kgQiHd;x4tXrUDU6PgKV z1wg=20O(EIY7<(-$`A2cG|BGf|3bE#AGx79Epl;lFEcU>%z1O!qJVW}cEB2yiJU!T zW8tfvMz>d7-&mtZkv;6c(dh4P6g?l0o+s=fZbg4(|FB-=qd_8v_rVF<)x}b> z1tFn~njr}g#I|4^5zv6>XGUdD6pSMP8DFMJ=kp_B_P!rPdfAj%A?uQopndw%hYm~% zS)(Q+EG2TClgToJMC2JVz5v5HKf}oi<%Jm$ipPV=c!08{^7Bl&{;9wZ=&?rM)ymKF z3-w){{#k+_$a72eUA_D;;#UN*@G*2%17HvsuzB(cBJ%I-hE34BEX2GnU=A&98(4v3 z{kkNqh2R|SAFkgfT==m<&I#~ne|>i;n*Of~gtyhI9xX0!i=K~1Xv()@#A~F>!oN-PjRd52NQ?1&(mxy3mDdx*(2I|NI2F1_)ewod$m( z=0ya?P5@v`#=aXNdLbl`8rH%B#o^BZs5Lk(A`2Rb;+e^uK-*<6fYU@=^L4Iz2QjI+ znnvtwjy`pg&tQ*@cR8kge-1yr@KRVEMZ}LyKJO-baA94m#n+28%yA4@d%@B&aRn)l z-tc(7o3+~F_J%v{N~9gcBGuwiWNSe%;`+*$@`FgV1PZdNIT>)5iOMjEa&f0p5Lyp1 zIl`%h%F0eh_+2pum_B3<$Nya+=() zD`SUH+1(g6jml);(Cz5qjU79B9n}=lQN43vM-z7tSg}fFd-gFj%=_u(O~2L4y;Bl< zxt!Rs?qYkomx=8q_Ht{NykHTraJiR zTXVI%KdhDOT5su-QPqfIs`NZ+y@VXdl|+vh7xy9UfqX@MhogD1ebBy$m@c_$$N&-c z9hl~GTRZ^<7_wfp0YYcRil4V8tQWKfmi3~6^NdHYvS4;zFNT5f&cbPfoe5xJEhjU} zg2-G$8>yf*IW1r%2d&x$-0^I)qWmxr!6UpITAXQAR?Bmrw`~qCAl(Oy4x6@b`#91) zNl~qOQZ{Wus@mhzA?~(Wa(dRgXUDIf>+tp5{eFGCoC1-}3wTvmVZTu^{jj96bTjYL z%qd17PkIyXj+3D5_5%v63NOH+_)?BjrhtXb`9DkH_($FSdI&aHA*1P!;0cAY=*mFe zhsK-??jK=DFgZ}!kS5#=fln)pY9G!3gOFlD&REp~l`F6nYCt$IKEWUs2lI+*jOsp; zfI%;?_UZi@UColU)UgD{04$UNxH_va6ge@A?mtj{4?mcvL_s^X7AHk2{Y_e!X}MH? zja6Dci#$`uuOrWJ3C7P-{Zo%0YC;Oo3VBt~_Bjc~x26VD8dT~Vu?o9f?@?2YuBldP zdIJtLmR2v@eiyVFH51i1vIV{<)L#_qpA!8uncrLDsRq6shFL07Ow*hP8K#3Nji|L5 zCDhdB9T1S_>GqrvBnrurJPTvMN3(x)2{m zV5>6%4Qh&qC>;B_2w(F@0^1#goW-N?ghI~uue(CdmjxUWEfn7MMn@s% zg&VYxa|T=(@!58DBlK|c{e2LUv`~0mNnH3k=VA(9N!M%Pi*%%BVDBx}>t%jzKfNy( zFrWQQz}y-K^JDT%JAEgg5X?{v%n6q}`*J|>MRP|m4F}BmUpQc{Uh9DQwZKbRY~_`4 zFdw*xU|xEi45&T|vC|L4w9q}O-;JXonG2M?*CuYvKZ1iEH|A!1W1jQ-Hs(KFi`LXf zn6p6~+4*R)ZW`z<0RIk9ng+%tE!x&rSMSL2G*e z!dwQj`rVOXK>a~mgFZO1f|{8}ODJ0c6hAmmBONk29vIp1%oBgm92L#{89ez+EQKNK znv6;L#?7AFW&KJs8^1yNX(SH$=77L}?_=qwcTX}(qLYlP@K+iYISBwDZ_|+O$fL3v z>DZc(m$4PuM9&V`qcRyIs)WNm8K++(uG$`j)JPD_lwSe^ewOrPpTO!9nca@NQZl<` z*(0I@TFW*}LVB$R)P@@0YoKXFpz?Jj-2DNdwBH4Q&6HiR14Z7kXNVRWCY8YJEZ4M( zv#FA&&c+A#I5{_^1vm~aVX7~;&_5d9FrMLT@XqJDCnbeLJc|bh9;WJiu&CFle3z&^ zqzki+k>0X{sgyZX6+?FfrN(^?Fb3%1DoFkf4>;(n%xoO7XTol{agu4=0k^hBqk0q? zn`BJgoaQ`&@#+vf3RvZcoWB!Q%ZMzfLq99%Agbx0 z0I>(fzsQR?x{5e(!l zj!}&>BmppJm7Bjs^o0`a5&{~jt&jwdG(WR2BUGQGNbr|1cq_?>M2<}-=v-8GAa--W zxBDgb3IGWhx}^6DL!fu=8$juo!pU4ydJZUE0;QP)exzIp%D4o&_SDyqHRN@vE#+ckmk~Lc^3e zbi!@4j0TuM{s{6}VIyjCD1kG#eL2~8=6Tl`3XVqtH)mk9*UD=Qc z6Xx6)mC?uq1n9$I_Gge{+Uijj-itCEF+!TK(Iuo5*zk3xrMH{ov@~64DFloQ1!`LU zwT~Z2_?WJwAm41KJd9&-h(o9mkU%>2>EPZx-G;gOLJg__9R&u69);eiDZs)N zt6`5az8taDQ{FJGA?srP4QAzxZ0KMv@=i;I^Q~6{ly`Y%S^p50p)92IRL_18XVeF4 zK&dqbcf35U{WYHLeSp|itR38RbPmHAvXNfRSYz-D-zVTlhR#7u$sc2gp(iIdm8+uZ z=iw;`1Iw<=GMAq8Kxz7))k-3SlB@}xWH;?*{tRBLerSeVWiOJnP%tqqhCk`l?f7TL z)&e7Y1QvltegQppx~|GSeB}LKiDR*WSK`rM|83f2iiG4#fkeesN;eba(2@! z#ySYRM#Sg-bJ^vC#fD4_rtl57Mc4%!Rn=7C!2u))4}8RN#5W~)rBpQocFQ)7*{`g{ zd>YJaH>&$9c#OI9uIeWtYC;vJ4QmCK zS*cincn z5iDEa35Fjc&$ybk2qgN2zoiBL+!XnMnw&EcbFU0ivzPHTZ8NIQZSKX zeuQ8yIASYQbzad)@fkT6gcEZDr40K4!5@73*_U$m#qQsXPjb}q5%j&+wjE0$yJ*4L z3e|xG6!I%zmBN<4MU{QY92?P*P>K=Ks{DY{&#Mm@t1BP9J*8?h6SjlIb=^_GBBi|Z|IN=%oDP9x6>J@N2p4Vy6z3CI(8FAr2ZNn zNqrH_3e%*gnfGlNQ7GP3_l@CldJ&TGjb!exJ89cmfoCCWy`T_F+8TA`M+^jXHHjSK z9Eh%B4428lyvI2{#+)3UOIk8J66a0Z)SDqXz<;VOJPAid>cLcOVRbPK$!8VX@Gd+8 zs|bJuRQlvRV#}yoX0EKyN6Y9kq>6q_BbrObff2ejl|9ssB}7{1T&@12*b#(D`|DKE zd%w;-W}x;ixX0$%zrsC`ECQ|X!#$poZ=T0o!dqb-X5M#3)iz8r*mFE1$`tEy%|d)= z^qfHDYfDfV)Ao;?h_-}9VD!SJmy-qPutj1tXjJ_HB|7krgg}ODF=$Wqsxj~I^m=Tj z@VJLL=bgxg=f8uvmasL}F;Xb8f$YbW_cT-6$Q_dtLZx!~LJlj0qFVOF7$uQa zLe?~&x_=P~p&4roXA*f355HU9;!{Z*UX~iN#-xSv#=!c0sxVEY#6s8PgUb8Zqe6EdA*9)mR*Ny@`>TV z62rVfzjr9~s)!$(+N_eEgAUa8L}pSO^?WT~#*eyAw^GRK z@wye0uh9xz@Adgm$BedxmvI{KXx6CyigVD36qTuKB5|p()Fk8>$oqck<*vOP(w0NA z`JUl8)~RUHx8#!T1yx^%;W!NmWq-5r9706VBw;qbaVZV^%bp>*S7$lAfMXB&VnG8K z(Ck%|3gS9exP}AN5`ve02~i%Zp{{1r2H6q3bb4$@kjq-^^vogL5lHYA75Jj2NwSFrebT;NNe{zMw^Yxs2NZT}vM%M`W|=bB!v2WtopVgBh1_ zXJCu{p4!Px1vefV+EK|=!f9v+X=tw)9E0{_A+q!-eB!jT`kyYeAC8JcTk`xq&{h{~ zXgw~p!xEq^VID?8du9T(Jq6nTj0LpO^rOy~pY^E&D6l&G6qnpH7JL8!t(F@GkD!L$`vjlVg{`b1Ch%!$BKUsT)zMc#L7u0Ibx-V z1AgoxBp5v8N|?i2#qf_S?%*Hy6aC{_5rqc2r%+@@D@E>EX1x>S=0Mo%8+SehIt(D> zIJ7mFn~h%}%t*AXHwwdmJ@s6_wZ8p0thPMDbfQ5Ypc()u7T4Y@xVSbGp-?R~(Isms z!Nh%OZ7?!47@3Y!o#|c)GE~`~T-HvGHyJUzm=#a-Lisfk%9d`@&}$ZR8>6OtN+la? z86j|hGeRNZ*v0r5VGa8&$q5K+*mdewgtn#RQykZ-`hK5Q_3?{226r|>`iJw#WZ1;A zo|0hR`{CY7AIw0^r$$-UQ>%VA4~Zb(t8HHNm_MWlzbz5fKMf?;MKMtGODKlW&ZB zg}7ZL>E6LVD$or1$9Uw=C=e+)a$cP4d zszfet#$OBmTJg7)@~j#7eI`zuv-V@+6of~_$0u>npUYZEScYC%JZ+q5eFx`|60>qx z_ij_LM2t$?>0_`yv)Bnpm%2%NS73-UjTcPN9<eav(#ZAaxWng)BtIdn%`mxhEsX0*)Zl@M39#CD&_1@A@>C|L<%}4nsBO zrH@_9c~-wqI9XJKR5%8nEtrR1^@j#hJ?(qTx&vo9Fam#J_UGsnw)5CUSM!9O=HP>> zMFhuAj1z~Zq;+ysH3t2uMLE75V`c5eQ3d7MVzuN%y$_?#PxTyxUg+?}D2EPpanO#4 z`Sg>a_OU1vYhor4gJ!bTx)j;b@E$vw%{@unYt_OX*k9tbeF#J-IdDG}FZAr$4Cg#d zszPsIPz&9sFhkx8=6!2a_CXO)K~B+A8I@oKNlmGTVp{=VcDEVqgjG;0 z;y=GlQ}dg?2gXCSW}Y8%-IubP{5>@f1PrJdp+xQ9H^Y>GXgdgN9e6YWe4+0 zGpg@mp_c+zPrNC7ZFssl)GHe9@NH)0bRQ&FKgtJko$`B9%lP z;k|`oGgpGfVq_VJHVFv@^Jdl=a~f$_U`<>YC*Xj!n9T>mkCb7-nP>*BoLJVA z1I(dwO}sOz`uCC=mt~^ADiwSMVKRMK3>ih+j7lM#2Vwa;)r6~IATkD1UOY_WNE5Mj z6ZitKr%;V}a4g^MB9MVSshl_%V@G3m5AM}8pcTedf|PwHBn2~>kA*-U)CVr|iq$zu z;JQzD;5%YwB8H~yupyuDgqUY6puvh{tPVO3u@9J^USbTMv zV6o))U{P?lS>uju43tN%CzMCWS=z()RIR`kQAfi@m3Q2)qHdl>9Tye|7$q^}$jTxgXVn5tCTsUjPg6o3DBHLWmp*N@JLjY2%>Q{&=}*Ny_(gdQgt|_ zdSu18=4SLF-`b5B+!dSw6RyY_;$MdDAyE5DKV?Vo4^TeFPI!;q>vA#BU!C9VO>TP* zUeN&yEBZomN94s@iXR$4RULvV9DQp3&>5+Q!|}W+7{N9eyw)9MH`{O%B*b zKlMcO0UN=b-{ob+{XcK;rjqyJ@_&qTn7o_%9qIala1<1sRQ{Uh z)WG_OgV6%k>SsZMK})DayQjeBoLH&m2|u-M#bDA|L%7I4JF&weUs|je`LIt!@z^pI zTk0WgPgw1&@i4t?G%5#^?(od+)zFmsCVHLJc6g2+{oEkvJY)g_dV+Fm>&Xjk$q^WRGrLt4GD*SV*w)W)w`=?b6=`@KSd0M8q|=# zYgGBvfoJQ6OVrjJ?mizKC7a{)rv|bqXq{9mp2tADT!XfjZz+HK>&H>gXQw|(I9T-_ zr2oH1DE-HSeR2oH8)I?sja7C{*CG%5zu zkpj~eBsqkBgD`!Vp8(S%uL+(OW_HHYe+d9#Iy(l_hyni342_OE{TC%zq`F9p1B{Qxf(oB7f)7(a! z-P!$D1g%d*Ak4<+>JRh3p$GJK97{qsLm!@^7WK-1DAa9-=f2mp3lu_&ZY5p{7^%M? z18(gVc-(^P%z~<&;bWx?&*n*7h#5)CQ@rOc9-Bk#a^wr^t~%7gs3~(PnkM+bUkf{o zJ?eqODOQHhMQaqIL8&?Ym(k@f;3V;8l?9QB6Yzp z0_V%n>)|GtcVn|r{Q%y9R0GznP)LJtX0L9>sHyF1l4&tn^9L%f7D5f1Y+^q@=OEEz zjZX_Kb2Z&T9(}##sNfJTXam!4RL&+82=5ZIhcpDNUxInxNq+kEsy+vkwz3I+!9SI4 z3r41;wLL-%*u5Y4u!qD#cft(#a61@b28vo$`mL!Tgr7vt6ip91O?~eKO|W%SXUCiRwoH1G*i=gUz0*cvuLJF9gQM7LL~oqnQF0VA z?|4K58Gv(!@ZrL5f{_7Cc7Q*ezpTtKE8FD!Wjyxz1>4PKFW&gU3;aK5jZ-1(tH2-z z4W~-95z_%GPQX37a@c@w#vJ;9ftb=@LN~jSJ6EJ;2P2?)>IE?PxWF6k6O5c7(RVBT zY2Nl8*fu4pz1jR~R2u6KT1&Yv4Gvn$&(F702fzj-H4t4lVrS}r~rz0LUtB+pc)S+|t=CW1oW5Dj;(rvFTsM_cpk|2y66yK~dlmgXvzkpO^ zRj~5&qWRk~$Ju6$Q|Sh_p{h_Zkscpn4tOB?I))e#ClDb-4>MP*Ih=A5xgA6ef@wPe z{6o!wbSv@7XMeSw;98#TUT1Nv%BtZLS=(qGkJBHjmrMI;?SlfBG$T)Ec}e^@5K>b3 zm8`A!4MrZz;u;df`xg0qE{lK%5gf7szsA7l7EmydY6c%kMT#FY;*n5(iX zaL@lF`tAm3#u?miav`S&Dr!>`*Xvz4w4@I4|~x|{6z@kigU#hj@0b0>Nri1@4mNtt|*hM za(XemfT1wG1_IW$WpQ`X;JpQ-=J<_6o_&RQ2vFXqu77izhr09qON@aWzc4+ zn!iwA<*JD%=++BW-cj6|?B(((hK>s=03z%S$v9}j6f-)!4D~L{#7i~rFI;S!2XC~h zS(yAN$Bgtv#6-y72w4xQHwTHC1W&z=WEFHufe8fihp$mj!{mm4)bAZyQzjOM{pd0F6AX7QcR`qzhVkT!ro^=8|>??99$x z<|VLO>S&w>9V+-`H;xND5;(=pyi2^{0~y7>a#UJcJM7!}5IWrxo&;*Rtnt_o>@8Ua zU39RQoKBfj)TL#A;v8n{Cg!j}gSktD!Q<8qzJjfj&=%-3b&=2~Y0p32KkiDgMIs$o zrzOzAm}i6zcJ+(V!AeaB3*b$x$FSXY=^!~hP6yR@??VSqVMy8Q6P7x3a1}BY>pJed z-=%|b*)AOn?oT@S;WW@e;(tEIy1m$6#DouTVDc;_{w+_@f$qNTX!38ImtQd1g4hku zl7iPDos@=;!QPrQXwWkFFR&Of7s6{e z8HX9h9QeE?87~yQXxd}S8J3uQgXC1lZ+73i8x#Nofb;P&tf4WtG6D!8bB@F_NWpr) z3$IJi)m`d_zwJOq#PZ~D4{UQP@HIDX>E45YiI>~#o|g-~jnO(Tmz1vp0a zs-yl+5xIz4Ews2!-2paeql(#`u|K`01yiA^fEEULjqor92jthxJXD?Xp@g=@ zh!q@Q!hYHsIXOXo8#J;cWbJYVH<8aNNr^dZ+@7BBIHR}pDfEi>fY_)Wj@ClfYWL;A zAL*_b)kg@BcX4fS53Z2&;b0w~C_e&nt8BpDuCWZpJa_q|6aukFuu$|MO9B%eD*RLV z$Wt(WFdS<~O;R+r!w4X{a)b@Y;|TIeL|)|?x^xm3Ukg78D^b2>H|RtTnLUr zM|KGwF~}Cl=gA$Smvd zEd?Id0pdNH`?jy|7q&>Q;veU~g3cbS{v#x<#pOMNIZEUT>?7wSE5$F=GYSO-NP1$i}`h3RrTB1x0CiLD>_TLlff z1Vx@QkIUamVN~tKLnN^YKo4Yn3*A)3%RFvOqTN#pv?3PPD<2|F=bi#R!bX2RUvhCf zV+n16KLY_Cw*g7yu_X-JC$%G-4lZGe_Xd74VUdTQZ2V!zF#)@Q2|oNmeFT9*jwNwd z7>xYAhRBQjwO0Qu)IW9lhX}7VWL^Y`8QE(yS+ zNSgj(&vBQbe=_m28paw)5PB%4h%F)2JosCRzXlnId&z3GnUj%?c|}Q8TSxI4D|7W$ zG{x%@ToVXhPsTMNar{Y2N0t&%e{4K<$xCOth_}hv< zg}?21wi~~Idm@N_q8EP|c$SG@)HN{&f4TVcu_6-}#rT_y)5K+&XkILX84z667o~&snNmIe1TMZJum^H1~uak_?>{oqR7kIsDrCq z4I%5tvS)(!aQc&6$N(7d9$+MhC^ zMb4oZhZ@&pEh@P;Wz5PtT$9|O7`wLy*PSWuwo0C5cv3h#YN{#4E=L>r?E;rw(5tZQ(Ys~#5^MrW!;`XWs+-J@@3Q*yZXOD=!)E#Q<}skaxE zI%k?}g9as=G2N=W&aKo^EjfyJEK)mR24jxx;Ly$FQjlX>)1emH0{5iKyd*tAJG6cv;68-^vQm7xCmwJ+>KYB{ zp)t)&S*I@S$>AE2p-DXxk+90J3p$v?MaX?J9bxGK)znrGCuHMn8MyNhFU7>v!5#w9@hz*`aH_ZRAzeo_lTHSE!4S(>AehNU#$>{N2(Ia<3h^z{D7+B~VYVpv|1F|UpY zv))tdGT2@p6h`{@u^EW$WHx^3p||4T7Ni%!4Z>+`{BF2$bLxSUjH{aw-{K9JPoFR; zCO;E8evZssSU?*< zgPt?~zoF+FYk!TNuNlxaJ#%<6w9AU*th*K?i@n=WWTO#^CW%z80Au?^7GNaW;|wiS z^Vfe53%T(Qxmddc*aO+4QSM_nl#TG3DR5lSM05RO5KU@c6rK%2H$2Xa5l;ZbgMtth zzShKJ41|LpM)mY_&PQ(0ieX2`NakJj@*&(7k!03|I+F|x7WYRo$GiT|nqJoJmtNLD z+lHtx{)$g$~#{)1Gj@yf_Nay-T)!Ca#fCY62TJV%-4O! z1M$x|VG#n2Bf^2|=yX>o5`@Km2<~;uDa1Y$Tq;a?G8p zGa8F!0>7)qL5=x;7>$9Q=kNZG~MMW;-%rPy`;$1!AABYe|aQqYox+$<>+s@=(sp#f!GG| z1RiNn>_P$|q`Cf`-C^U(Hqeu?Ua%LO|NO?{*^hl5jtc2NY-;9>UYSSj!yeb_coDHJ zeuC-AJwG_4P=G;LPVp4`d!`w(_Fzws?VppqHe~HkH*gzgd!Bt8dZc*v+9l~-Wv_h* zPkBm_gU$YbOK~mPYj5ZU@}q{i>+H25eq?)IW%;IpIsk(@y2xI;_i8R%hY-A+X!-+( zFa(Et7r`B^h51gsje=Brvmff3qxlsc>pZqM{AwQC6OKe-eC9(OF@cJCY>&j1-f(1+ zqRyxWJ`#`Fk(o&6UFIRBSIexn=gK{_PTIr+0Z;fbSnT2EWO(y2)C7sd= zZ~HD`h{lylPPH96r?7Nv@J6+f3MAW;{uc2Us%I-eOrL&TjZ6}rIwNy-@Mc`g$lU(x zBlGWrS+ggL<=v67(~EYaXY7$+yQyFaY&w$E`a`!xE$nq=aDF_9AEu9BNg0xV;w=Pl z=k*5y%)7kHRjY~f_yFDhs{<4{A~ryG32+>s+j$jFG`yfv?+B@6#Evib(++hJrJ9f0YB?K${d=(#AVrnF$KKe8Vq z1lGrbV>NDrlo-|Vugt+envL5aDE?CM$t>g56_bpc@JY!=#9hN*=|)+%V*cY+cO3Wj zIskPxB4XMKoEyJ~sN);MBTf6J%t^I=>rK^sFb~|uLSqrk%FM@^Udk3~jxs|7Hj|A5 z86TL9pQf5AZ>hZxNieEo{r2!^{(zRU2GqL}^`dTx#5O=5^hN<(J6xp3V&z7(oVP+L zD+7_Dv{0lVsXZ-z+OsID0%X9D`<0s8x;jmFHRAa`4^*5D$p1s$yMRYko%{cRNg&8& z1|&6Js!>vnC$^17YiOv>KnC{K8Hlwgwo++T4%Qn=0`Yd195u>8wqu z>;8uGY1Z+#g@XvQOVpg^@h?8T43DsuILQ3U?o;C9S{G%nZ`+Q_THpT4!+qB`K30k$ z5Xn-RjiXzO=n!jTM+on+97l*?7U}Ck?8E{xm1}BX>A7tLD_X5sJ^0XAzTJ>Bkf~_v zV8?N`hc0-AaH+!X-CM3r>AP*xlHZ`XI3YY=kx&F;k(DV;7{S;PDMf)4cKB1+@r<49 z!R)-zLjg*5|3hf-4Iu?u=nUaPiRLYy8%#${pfA>bz5J!l6S)XNvi zHdUJhMkN{UdN%GN_df;+3adZ%pb+$!YZgH;-D!f@Ulf|F8;bbK3eF-8%7M7431J*{-kJpa$shby@lP+Q7FtNX@X63UyM9o zvDxgDEwk}D+OZHh3hZrm>@=6BYd5NRAQnjw@_eXTBq`6Gezc*)+%s2N9lyfc3Onnk(=>^6}m{tF8=?p-kP}?Q^(KxtbG*@Zs_%k~ zm(pelG<+9-OZnqGvRcpCSr6SQfj%`)yK_-p2m^APQAj;A#}YrLwL@FLq zZz8>XLo$dRdQoeR0Z&5$Pj9G=zjpq%@VAXWm%lFl5OZOzHXuR@eJ158^6(i==7JH! zax&L~o@^)|i}Rv8`8hFxEOnM$f_Xz8Koujd%vq^ae~NuF>HgRcaZ2GTqKx-@)B^Aw z*IhY?ZfU=UK*WCiM-dNGueiqq>11A^%N?7+*c83-yq*2L$SdvNV}V1|V74EATfD7Z zj+h&-_M(5*xtr!|>=<5D{I%6;WwoUhM1D?YFuX(Gvn=&Jh^;Yls5mRL8t8oi37HxD za}fq2Y$l`;v=m2aJZ!T)JJFsVw&7#56d2x1H%~1?UG=qPX{@_mx61i& z1v}mx!E_wYKtB|iKNHiM%C_yax?U2uRqkF*N?feD0Q1WWi`#&0yBKB|WK z9#7xQNTirRfBVMJj0qG_MdCln$DW7S>Dl{gzJsX`Gu$|&IwKF`R58K3&=G}%UH=V- zXr+t~+ivg$N%9~x`OdNx=q32^&nqs%U!T6sx|Lq<2D=0Pv0Y;1JL8~?{(ONVh1vy3cGS`E%xF=5ULXlBEJ`d4E~^a zti|p|9WrAAaa%7|g4u-JbFct>?9hieO4*NA^=VHav+O}7M%D$DsVEb5h=3E}e2g=-(D&hs=?C`S{!b=kD8uB^jX5%Z3S^V%jQ$ zfttZoqHkDTvI^C`cJML)#<_bpnjKMLH+#2wJKX#GcVfQV`*_9Q`q{gJ1mMBluy>jI zz=!z@5B5x6MaRGgoJ$K+Ca=Sl(5~0yMXvW`Csr>K{I0di+pO}fUf?ua5&g@P)|gj{ zF@9lx+KcfkOMWLKtn6RDJ?vi-toXdN{VS)7tQlJj>?6LHjOrg5^NM8J5*w>>@(tuX zsu1Kf8ROUCY2%j+U+XY@C7H;P#DTKI;Z?@f>4cA4(^;jB1Z5&SSt%^%Mia+}$4&|$ zX{T)pu!J7Klr<#cQxN~c;-v;{a-2XY2HAk!K}6MIYO4%up27VoJr?oFATrYSJsZKK zS|SuIk~&#LvAqBya9D&E%-+w{3s1qPPqhhSk7NPrupLxKMe7kAp~U;~g8KjP_;isw z@mQt0I9RZ_s!-<1+GAy{EV6+RyPZ}?%U|YnaAeGDdk0FdK1JsrQN5urK*+MSMm3Kn zK(A6>^;Ic(D&(wjOL{&4J|1ma>~VC+0N{fe%wN_qpSZ4InkWhezxipqfy=JZIp0MVWLObzD?mK z`TLpY$?@F(GP76Ii!rtdvvu=^!I5w>hMJ#wvu#7mzGU+Psfv%OQ@S)`5yoLpr zrO#CEs8i*Rc9ol8ks)c5)=f3Rqy)q@RTiLnz65t=NmX&s>?JC4!z(^Rz5b30cUb^cNr^U4IOlSMs2Sv3w; zFstzdX${;Ul2P#}=Xtbo%ZF0lFu%}0mkXrzal!yeQrAfModUcx(ehwaqaI?`uQqAZ zAsv6o)y1>D%;{-*qRvELVybGgSWM_N6BDLrTf^TBmYO*KjNu9jdfoWLU~g#pCIIupt4FY z`2;W$Lq3}sN9T>lZR#vS&LB&qdkS;P{;3Bc9=x2Sm-H{sEmi;tvcOE+e+iqC&c>nY zJT=pQ(Hd}PK-1K~O#gFj#Jd8Ei?B(h2?i;^%qIY=DKo zP6w&+vqtWv9pfMBjo$?Mv_%}B9k+K_JriISNsZcsWK5_ZmtPJmql89anA-due*nQtk|bhSVh{5r~bvrm{)Cw@F!}55gu=P zCzQ`yS2mJoLC)!N%H^yfxvy;SwL~+wj&C|-kUb_DYIvQH zEmiV#UwD0QLK4?b+bCVJR|U;CadfZy343V!36yfta~5h8k!ap9%l zx7n=Ho?ws#z_ttkF=C8w8aLF0@s4S+e5*oD<8nGL#TRt2fEe|?lnL@(RX?^q*fdrR zH2bwBGM1Dncymh{gpP^tR6j|eI3xu{+6^nSd)8Pz>-ESMJ%V3+Jo5JY*jGjl<9R_b zY4uP-20g2iT4G+RM2Vk()9MFK6E|&_o)WNQr)0os;y;luF6tk&jT4I5|MH+*x91OE zH6Hh+%e*L1NYD$&O$T!KiN$>#flJi>FlqZz_<`u;&x*$V=BfVxd|wlUqlBN@SgJsY zbO3iM8uwWfz&$F9u=j}n^y0VoXox&l*(G6pM89xcK)h!-Zog<;0mDGz87~^w1mYsI zn{7lU7S|ndnil{Hm0jcks2ajbg>oAsfrzF^ArhD_2)LCsV2Hc<2Gjl!XK?*EUy8gGjzG!?_ni){=x4%ow_u-PGS?gKXvoX< zxTAvG`*FuHlIt<}8F@Yx&)l~O^!54s$}2L7k*~{yzT-avP!foN75yvL*<+CH`=T$R zpASmWm+ez5bWZ0b)XyHN2>PgRO^Uv_1$|XD9jFF)b@OYF%FtIEAIm6^uY2jMCHKH= z^0Io?rO2zzke7N$lNXPZ7>RuH9(gGasc{*M(hISMQC1tlUEFe7Z)CYuIt2}QipVP^ z#0#E<{oy(Iq(1OGuOB=!a5VV^(*QhNtxSrT(M#N^ZW@9NbPot>SA*He&=)+lW_|l| z_>J411-~s3-;2>PM3{Q;GyKsm-xwmr$(O+o)hgUH?4VvC@hhkEJa2(ByB`1?guQ?L zq^4o}>t<~U)1B|+-a;t#EhcutgIzlIJp;JIGy~4)B^d0Nq`>FoF2Nhd{>zbjSOJiYioq_6Z zaWH&nz41=5g~c<>tuyoawj%k*OQ9++<^A(!lNcdW3-6SQidmt|{iq9%di=)JQ(N4> zUT9J?T=d)!cm$q=Ek$b*9J59&Xj|S6( z{a}|UJwvM96R8@))$ZS^%$$Bb{yY89sNyefCriVW9fNb8R%jZY&YzkR5PTZe8k3(O zG9mz1t2spU8cBVCGx|mMh^v)0IXw-2(W0=wp{20b!}b)FNiKg}87-8_LahxgIo>op z$`;rjz$k4yxvj_=ibj5;H{-+vA8{6boj4(oW-LD{vYiXDHouvrdkdhRKS~>Hz?{4h zZ7IOX>c?A`YD&eUS&eqsj!V4oXY4uAw&Iup4b-m?v`30)=;lsW`t7{k=W4Rs3{*_^ z8`U%^V`Bq*iF2qQ!EM!nD~g2zRrq9==e^98rqJl7v*blm>A{9opw3pRUdN$hoKQ`GNlHj+ZL1myf*uU~cpjyz#z4z7fWviCy2@`#!D1AQSwjo{pjM3@hHh%!jWfg$j+@a~^7VWE&p~QnSy^ zRLnAH(b&X2|H4|Y#ouYb{;vPzmvVO~i6gE^yP>XduzVgt{ci?o`xCUA>%)^J6e+Xf zab2)5H_y<85}gGN_PGDEo?J>}%>y-OkaFOrjb1{%AMgNK4!+G#be{NPb>JqCQmO;5 zvlyX7-U!U+$Mp@GfZ=B_0jW%x%mG32&Q06&@W;zOWnE8r906Ks>nYgH#A?rbJl;+V zG$52Msz>Sv2R+51%R6Y7zFWUmnV)1okLTt7NgiUzh#G0;aXyNWhpXkxGy4dN2#;T+ z3)TAHH22K`pNb{PB;7rXQ&qm5GD6ql3NMVrPBya9HvqZ28Pe_$^u>f`xm!9tb_B_8 zasPX!;fv?BgRmZ7oWc+>;Sbam^*VM^nl1ijzOWj$7!A13oR7b~oK4{Xf(m#z;gLpC^8q(LuuZ=1m3>-9UL7aymKbVbn!Tg+hbRF;FbTxbS?=9ZK^O&CbuGzS@_-m~9V7kaVEal+d z(e@df_7~f9zUD6mQYln{H}({)=c`qfrm@GrP-?p6oD+DYp2nm-a<@Zt!Xp@4372TN z!AQZ#&$IC}z(8O@;uriC@mI!QkiTmFX7D%LZSC0&Y}(Kk-C=|Da^aXsJJ{}T7;SvJ zbom2NVS668nF8az35t?t333J#+^+F@d0Q5{(tMn9nK;nY5|fjRN;b6aQ(TXQYYzrH zcW_U^&)x;nZbTfVHC&_*<5+^hKc|JVLuM*2#1SSB6Au_+31SYf1$oYh7_xs9IKX!g~&9T6uC5cD;5Q0 zwM&$(PdzE#IW`>-tx@e#BE_a6$&q8)>JSw&jbSEcx}~iH2=@8h56Iswp8gG*a38LW zE6>}GHQSvP(j=TMZoTNUSoN8UX2pt-hIB z6R!AXl<2lOM)YF`5_u;2wz*Ypyil8tDqIG3!!?C$JD*Mx$EZWdj{!*^K)55HQ~4Eu z;9vN9u4aDtrRzOFh*JTGqO}=7JXF*d5OXPp+R#mTrKf2s?o%hJEyxdd^65sxc@q*6 zj}iZrgfkmzuKykl`U*Jy!0JpSwahO_O#eEiq%1POWyI^Kc-Wthk_ zj3z^k!Kj1f2d%(xlIhb7Cy7U=xx+s(h&;_h&oY18+EVj3&8d_zpw#==reke?@wxQXZbIG#gP=hQ~+X-G-5fh}FW7aF{n`n8;n9@9ycG@4ar> zY2NEnlB!x+|Ac+*?ZtbtkF1xc#jOnw^Rq_dv8)9daQF_u4eVPi#v*s2r{+-a0sYY*b|?MA6{?fu*$u>`inHV%-3+WhJ5Q{ z@UEdQ06#p-T$?gOn<0bl3Gc})kU&g&Y>mVux^t5`J0!04<^Qc4y359P?8I)5$U!Zu+*t7X)vGYylN0e+=r~G|zPRA;K zD)Y6ti6*iSHvu4?3-q5Lp(i-o_0RS3{UUYO`!cAIc;lySKO*&WXfo!Er4oZ+mlEVlDErYLUz_ zM`261ZQ+EyJ!nVGoFT1J&4I%TmqWu1Q9j4MP6I3-6c*sLkYQ-g_@Zs+KI%`T;lO%{B{d& zRRns$k3kYE-c(Nu_opvQ6Yy>?KM0J8NAGek-mHt!Ciib^wsR6;M0e|qlusdNP)}P! zcaQ%Uf6)u#1%Ec3#TTjnuxTDQ5=1Jt3|MJO4^iZ9C#Tq5+@-B0Tc^Y)= zp(gL%5`9eUp{3rz;Bf3AgRZfMnsw1RGvFR^yiPm}_r-M?J2ZZg6pIvVH9Wy=h| zoC!sdcwEwk6^nOqK)EgRKA~F|<5TPWB}OHNW3if;o9>!LMsBHt=?>D09*@?!Z<*O9 zr9wQq#qB;oQ9?B=A&nXuoqDhE`c9RYjvHifAD^mW&tWsa*C@VNa7s&DE2Y1AW=(vv8EqE+cPLoPnSmQPh{A%am{*;J+@-Msvwh$q!RLUTekGDjO!in-xQ|n-v z@Z7p8hwX7GLr^)7!{_V#jjG9ECVy7&{T}Z-tR7?Ah>+gXF>@hb34W15(Nb~))tLN1 zxFou)F{YZT2_s@EYFY@cYge|q7a65oHk&xQ+n)cRC;0|Oy@a#YJ@>wkdqTcMs^5n0 zfWP5B8igJl&>;k8!RbhP3(iO8XWmbrOf5Kd?ydr};M6Jc=-GxFE~5>)141};nZ0uB zLKX5~?5`Xyk$7&Cd)kTQn2VoqP>#rM#ZvQxSBNvV!h3#2GZ$5SUH3?qEX>g&dNRgI zlZT67J-M?8=IS_%YvJQISQSHFIjelZ`$Q zT?%!;8F{X2>oS88J+24b^u+%_a$PCEc<%WkF90XuWb!SX|f|=)j zRM2w5{l)PH0}6RrBzA}97+@#N;f{9iAYgKD8wcWv<0riL4=om+Y#>B_%K&Y$!H{g^ z`dD4Z?pVrm91I4>?hsb-tC>T`9eNPv$Va)8wq#ZindI_MH>=m~CwP^&dgW?D;{}&K z&K0xf+)@`ip142G5)7~K51KK7w3 z81PFl;2;=q*v7%YV3yiu!Qdwnxtu*=Fq^JwFdn4+Ly3ZY}Z}SH0jWRXDzC+6b zfO<;s@%@S5=Uz|dR&0d_fEAi~deY2u*v27y!n;W8ytfJO@w!^#J+;(3c(`vkDqWd* z$97IkK~($LYmgE!wNNcmvikDPLe<;!!Itxo=3eV)^T7Rb>MMKZm*O8|vC-ZMqy;ZZ zsVC{)vVlnNHp{nFf!LOB2TiZu!vBEkw_bs=9ZLKx{LIWJDWz3hiDfU%A43iEO9qfX zENzG?>?m}-oq4E4A3WF&UqG7hbc&HSJLz|Iv3j#Y3Z4(=%xhA366%RT7@NyP;l9??kR z=F-6%g)fV{^`Im;1)`T>XN-u}F$4bac^kzhybg5`sv>+n-wv*T{bG6D@Jh z^fu{s{$G^wjQlvWWLB%DrMrum7OY`6E*EbzX0;j8^Jhy}lgXd+x+yvj46maN`vn6i zX$lhKsk!C~-hjaHtGt_KGOb<9xlC(8aL>uRf?u(a)e?&EG)?i9ElgB0YfcQe(jj44+L)rtdC|fwx@7PhMh-d9|DyV;*m8308nfd3SGBzl}m^ z5A9>O^~LupxDGenjqERU!u1w4$asA>mtu`wy3x!Hu0lHTLQz3oYcE9{^Q@tWr=U1) z8;TghDi*@@E^IzwjlpKU&^>KfF9uJgbPX8%TExTPb#B#T!r)b;h%-46rh>t(cIjp| z;crWC!e>jxwcVD<2}^S11gG7H`EU3${sQgbpJQTJrY<#Zkz*|<+SJE7dHLS`&KL5u zTVWnem3i@BKhg;3tj%Agga1$myS|4VsP3^=vKJ>xqP0OyxrJxWN|!#qUb5JLZScK&FaFPYxlU9}fF>aoG9b=gZN`cf6b(e{A;fQ1xAamwYC6+K0oQ|HxiA zY_+*~K04NXv;hKiH?Ti<0NCsIFW;ho8;U1+D){ovIXO*@^-w;dT~X6*O`KK5?ptIo zuu)l(@0;R(@}`)IGjbZuf&7jd$11=-pj1V~#rW6p4p;ki_+!JFk=Bl28Vb5fv?18+5pq(iV zR4t`L*d+3#aJ$L;zoqe5({*cOkYno9;wW1`YwR}lt@XH!qr3e?gA1eXPhnwr3v{K< zXz6}aEk`26hqv&v3q4vA!Op*E>K%iLEXrE@KjMnp08nmT1@J8QpuZVz z)0L6uwz#{@rAB>`xjM{p3}w5odTp8UMoqCrELHiMinu1)_!dwZ{Z+{(d{mZ0(E;W> z2sEnIl=BKMniE)v0iJ;vgFweesdC$2K@Dk`FGC@0j4#4a_&8OfEhlcoVR5MdjyU&# zVzR>x;;g6O?+64W#TfoEl-5)5wUwTFdlPdlJ?;B+gPu0{K2J~cKH?UiR5b(0w1FvY z&0xl|_|&p7dUr;3lhwiCWk0LKfyD-aZ{IFj&qiQ=19d(w)D7md`ks=yJCG;&=wx@z#5qvfT+LNqOCjA`ohJ zY3m-uMu*fD_by|6FSr7}lfKlrT2oGP;2hDu7TeDUy0)YOv+HfLI+O?)V7Cs8-Zs941`o5FR?JaJ@1A4&IRo+3}G7tZy zRPRn>1FrbtN0W9JX;_o|fsrl3Teqj5vZR;Om4bJh9X}+~pngAQziC&`o`6b`OrkLkF1M z(Z)tfw5hSDyM+u$u^FBlVHHmp=NPWG|M`}2waIzbyM?{i*@nMO{^CBn*9j6+96Bzy zY6Rejb0wk;UNt0e;MpaU9E3DoO~-lh>X4I6dePWzwZp>-$qqg|pyP+8<4J*rx{`s{E=Gpx zEAKQM%Suy{S9q83=*x7@lHs|uN$H%g0%e{WXs#gdlnfv2-8AyfP|kbhojiWULRMAN z6_K>gSG{8=o+$k|dn;r1w;v(>*e-tf|E&8vo=Ni)6ND4ivF)67rv=IP!Y z>XzpH)VmsFJpbukt>)@Q-qjgZO?9)0mkwxoR^{Y)-Y9|#IPJpk6kf*43icr5&hK{Z z53*#SXbG-X_d8sIJKe<)Eq8abSXFd}yKJ?t7Hs7e=J%o}#YJHyohM!9o-id2d_Lp^TCz(t2P`toa%ZO>ITG+6{$ur!i*JWBJGc8}6pP%C%VcrJE zB-(kd6wbs~(HF-F-CMs6nGtwGmbC6YZ;oOrJ`>AuQhN6{nTCFPH&5EBC)tkVY3=jIx~t7&|0ktY zZ%?uux(m(ow-zr2ZGvP-AV5I;r> zY$uIS>sjI2Ir@rtT+K|;VZ|ko=0}wqr%4>fPpp^(6(&}kg1hqV&tZxy^rG?}Q!Y5c z`X#KXj#RENZ(C@~nsFAQ019anJay)xsB@yRx7Q{}lZkcn)9OD9~s5?dG@KBjK+)<(Xv4?^jD1MFWIV@gov6xR!VR}>N9mnnJiOHQJ;z5aaU+E%mhIhifHIutpfGXjVM7yJCV~ zlxAawbAKhX;RB+`#L=+M217^r{` zs23aDxoW3IAjOS(hqSX|h%ZSM%of#4%o7(--AHi-?XnQ#FqO5%F)TJ<2on+heqYRR z7OWO`^zyE2x5fCPSZW$?Grbe&q?eqVA}LQ)x^{&Ed216`&rl}fLTx0~5_7miBo7b_ z$+tEZ@k{6n{+Z#Qy;x&lX9D!9dnTyQ`?4Lk!)#L1<8QoP-88h4MHg57a^pCJb4j8y z+(fxp9C7|Bd}+9R!YMNk*MQ~z03NXYDNJ4|52MDD>7@3 z0)qX^$*0-TM7SsvKIE)E6#n3}YzklaQ7?r%Q8a+mta>ycb?p#gncfWGD%W;=4&nC{ z-1mTIa45Ll>pRX2Kv2KFHPyGl$r97IqHNIvh3&EYj(fnko`NGE;c-#qpSav{fw}fW zb*XDq4$kSAYOYPxHP%gc`X9BTPsXCPjf9Po8LA~{Ort!le<9hMnW%hs+AjtFVI+(+ zOwM0OjzVJ-GRA&XC?xNAco_?U1mG?h7JRAT!5XYlwqp#rdt~*pqj5GBz~Yxbpk!WN2(prSeSzSLEq@q7_2@Pr zFSgCl78&+_;8?FFgqPe4t&`rfdHMnPaLDlWp*?12XTAAu-v%;ZlHHjVTFiH{F+Lij zR6{%52<-`%o$;^4R*0))oOa`3S=ib({}z5|R#mYO*$X*j9CwEGOc8bkhOeNdQKJm? zwgWL9Z#EZ={Sc?ZAPj) zDIHT(Qqu(b)azF~?_tHHc+qXLn9ip2*2X68@x3{*6-XO7?whZpWqFJ-zSxX39&gj_ z#)NLK<~BsDaq$*OHSU6Yq(sHliF?As+;*a_dvDbMXc=@I{6AWg@`mZ)XNyIu;pY#e z)vE_@L%rH=elE^ew*+)vBF~~0)`EL=cZ2RC3+ruTShk2kFatn!nT`ip-;t`}f!BMT z8~B~4x1@?9F0M28`>QUfPJ5^>{u=^j?OX4TJA#67jA60hV$?6TRK?AFd<6w;Ef2Z7 z4`gZm1%B;SiisUI-MN%SFt5N*;+#ZqcT^bOJm<&<}{!LPr zCkK0apAno=f*|zXti~P!xqrK*S9q!gBen1}Bmk*SDz$&1ae>*dp=B;s(XozwA3X&V zA7tI?DL7dNjr#?S`#Ns9&lPwn>Vuh5VEEDW( z)M&IEJ*}4$EGUaO_*WFYmNDEpOiGo)1bTsHlskD9*s{bk^Xen z-CA7r#@U8=&;hJ5Ob+GFwO!W6|}rp1Y*=cnSfNXfy|NM04P%JsFz)h~q)Stk7CP((2J{ zcgd_2jYSt_>qfu-jtGok5>eL)!qvVT#xCF2PSwQypr3pDAtJB&i*jm?M;KiFn?3^D zTfg)KwyBHUD?9X>@FI$DcHG0bL}D@rlX9q923^i3!TtEpBcn~rkbfD>G>M-x5UQ49 zOlA#6xWcH+aT#VU7*(^IV96wuzep<;w5OQ&W6Ztji`+k&ds9mAge)~W3nK~sS~RB- zkLmD=rk+`5HGDUxX0!}tmzyWr-2L*^Q|)q_BnN0^2II*uYbXHiOqg#{&SFnQDI114 z1EoxaCfioO>SM|W&`X9n*QdyEVev91!g4zHBt^s1-M4SxwjoA;xu}w0iDLT&b*cGO{}t7a3Z8P3vGUtwN^um{0aWrkVUi;rzXc!qG_l ze3EeHK(BxPlT5-|@8A)s1rO!Z9`ldBD;{59mOMDD`xc`E=tp@n@uU6e^f0eX+AfCI zaV2zWx;GXIEp?r2z`D6uG*`aH&}o8G(Wxd`8vZtp((DBUY5E2z{pmK1Ym%^=)e!3u z?CwT0r_?)4(eRDM_1w&+s9$&_eY0ue{^2dX)i|L&u>!(8NDZIn) zd9!HU46l{p>$w!opuMN4ShKWDw;<#2{uwgvOTu3Mx=@jF-1|ZS65Csq?Q?$+p`KoE z(JOnGYi*Q8rZ3#V z1>GU0^Su(o2{)1!sD5|P{1Dc?f)@z7%Ea?rPG!M}WvT{l2GygMq*SBC%JFz zGQ3Qev4ie1reu5|ip6*0-uFuNPDXpp*EAVBuIxJ*oq1*oq$&LA0nyagsDq6$gPn2y z<@@Q|$Lrf)WV!FPcS8FnJ!AIw-|odTk;O{!r^)*7D*kl&ex@h70WP+`idZWICOEgG z3`$#tR~mt$$b{2;02=VFuU{h3g5-9vwu@+_*trPNH_9sSzVW&2^GXZ6E<&Q-Oj_V> ztGr!tf~gc*{cC|2$wI1!QW?z?WdOxp;j#)`Ez;tD2 zL6^LL+9LyVD81*58AvjwP8C6*E<+j(jlWuZElm=niu(`HQb5iD}i%9h#@Ld{X`b?9!K zP;O?Gx~zRtA793q{Le7Tvk^NNC%klD4gG4vXpCljCZkWodtf}{QqA#!c6?k*q;l81 zxwi8vx-Y{Fdc(XLODR>BHO#}!Fmcm)!~EJ_hS{1P=1b@*y~BLX8)i@y`z*9)69J}S zGD4*qTIIeqBvp}0;|r+drV_#|cyB3)Y*yGEkr;-*u1HKZIN>{1g{*{Z1Yc7#$*ydx z9cxT)#+@F_?`a(%{^GL8n3*fkaCb5a|kvAT*!rtvcOoKfJ4 z(~X8yjxl7ge=QmI7KIm2OSj%y{mlWhY$DTQR(Ei|0+Y^K)7!Nhv|;D!q zNbFJulv-%$z0hpUWh~jfPfm}+ro>K+h`4k^4LZBwH%vq3jRprq(o<$*%k3!`!aYry zmYyxVUQ*+N)k`^(q^RWd!moJV?mLElNqwZplwrY8jVZH9`>m6d3TYs0EnR=fAE2Zp z)tC5PLKT&4CU5F71$k%3hY+=?$Mnb_zw~`%Ud?`=>M`wN_EH3^@$UJ&Wp)B@mH!V} z$i{{|><&SaB>L$M>Cdj-oyj^NJpNI~PdqM@T|Lyy$60%PAMtv2A*Md+OBs3;zNfd8 zr|V&KQ?CTpkttR(hhzvQDXCYVw?->jCbV0HdA(vK5$BCa`8K=!Wp*2`<{FCPJ_?nj z{qg_2K1m6ixxY$%k{M(E7xhVwHk*JpxCh@Z_^>;1OUN0Vs;*%9rsT6qw}wz%#2ODs z)gY%Pi0kQZ31l?zjb+G{qZ=JSWSew|l(7lzd-2#H>&iUVR^0P=uS> zAMt|X+lOL`x#rfvIf}?THPD!_{8bwznhEDruPQq~K8uxj^;R^?3JNJg#1sjD@AdkS ztMt~^Nfnyd;Ler-HNzhj+mq1p`{CkzW))c_4vj9k=K|u*pMu9Jhch6msOb<3*;)?4 z5LTnMScvs_t^3Ds4akX{n{YorSc@bA1rDKgE+GZHLQ7_vN;LjH^o*{Crrz{ z+vcU_HGEja8KoK(vFLBKWW}Pt!0fld__GEhJDb$NV+WEfN=B*HFahoIb|q?2n@+31 zkA(SPgZn-=DY0Vg+~NCiq&;cEBU-qO^oLYJF=B;BMDHh2h?~>$ITnmm>(^-gfoW|l zcmzh!>@@{I(DH?+B%M#^sqkKa3DNBLzBI^(x1DEN!@r|JkBixo$zgP+m-Xq(W6Y$7jVW=XYsId|+`!8QS>{JQKbX4K@SU9C zbjX@)C05a7YnGX8P2X=;?{%WTZHC`xqA#XppNalE-Ma^D&rEb%dZL@cH&Bft694)S z$LI6DslOo86WO0DLOa70aUPCwH@|ZzeEruDrX8P}?}YD+<^DVkp76po(s;tZNx|e! zj=R#ZiNvPAhEMhb0SLRJTk<;(Mq%aiOu+|vWSzT#a^EO*20pNbe()iIaW-u3{vQLI zCxA`ONKhtvLr0|mP;kLw!#kpfNtC@PPegjFXU18uI>F~>#~``4s>ov2zu@U~P8!nRfJg5vkWiu`RHEsTpq-)Veo;tg7wSVCP zJ%c%+o}+)c(v~1M&K66WwaA-AyK)2-iDDz{O8*>=eo=_+*Zz?7{1ei;&Ye=#JOBTY zo`1F>SgF0JKQI9Bq&3#~lG_Xf9tQ%ozp;C$F5`_`V@WU;nIz43A#Rzu10FB?fX9N> znp`6Vsj6J_uVjE2)uXC%vVR3k4f!7+(0YqS+vVAd#j#2ZyYYS2dJ6j0?59fKtn-1+ zA(8kM`74IfG19&N`iIQPEAtM)4M-Y1J3jj1Na=bRRq9+ZyN;XHz_&e9{O@F|veWX9 z@3d3{@b}!5&QZqGR(#lf{8Z#`t?HX~9;}O*>e2hfP1(OQ2P;2Lm-njWnO9xJgH(8z zfC?1N`-|KYf1;!t8{CsyyU_am10qzmmp)R4a2oJ0N4d*AxZ(8y*3dQ!SRp-|HShNW zy)}<{^Xl=r_g~pth%YUlQID@YfwdyaVm8l;QP{6xckboWM9uNjdYFb^TIY_9R<_T} zqlWsNAi)Ro@~p~@bG~Ct5wEiyGeL3^Qm`d2|Cnqih?%V>M42kL{QBq~Y11?>Oz~Ix zbw-9_qp!1i5;o6#U^(N8S+CM1`{3JW{dZq^6D`G1NnY3N3~4PfS6GMFy6;{t%t^SH z*T}--Uw9<9Y-xC^1&E_kWIMMubt)h(vfyRL-qWj}@cfYU^L$loZ}n1*e3D8~n($)J zgGdaPllR3XDTtfhA_l6I-?E)LydG_)9M_8iD>Js)y>6@aMYrKTTgr5r9hBtodORTc zs2YuIQ!Pcr&Is6*X9Q{{D>Ff*6}yTj$Fr7aa!sBBVo-YW6ck(WTjVrvrx0`V{hmCA zMBz9MZNX}dFs+xR_jAgiFv4o+@%bCg&KF1_UU20Uf{RN>N?-RkYQqBW##dFLWx>H% zNn9_|R=xY+Tidmm6)X635sFm1@4*y zzkn|&2Bt+ybD3-Wl#Z9`#UU+Pk1}`4N5eEa59t{zb~zt;rBQqH+%1a!PH)L5H&9T3 zPh6mnHzw4+?{Gdqi0HV4+vb&V_2}*|Ffd1DqP-*ihW1Xb&(I!`r`#@Bp({$dyP9_r zK*@O*MCP6V8TKQ#pYswC+kVionz^A}qAi}CW%lavD)*$Hi^#kIjJif-_T0^oS=K)z zza!aS$sVxySr!Z`;((*jRzLTHG`X?we2Qi%!R1l3*n!#|(D83HrlA%ImSSu~JT>MTxjm zwc!LyQDP{2H{in}o zhwyTJ1~g(;@dc~v8DqbE=c(~a3paBlU8?UCJ^Fm#DT<$JxjTnxj)<*hNoBP;6_+=E zX=5DIm3fON4K}VM|e@4|K?m^#B;okQJD`>WYr17x-#mEk2hQZ)wGt6ZRR&2vu zs2Lt`i?c>0JaV3)X0Q8WGcK*ShLU3JC~0Y#D87C+v&OhWrlw%C=#PIsYiu}BI|9gl za!NjsJ^AP2(Qtrj$qv&LfD~lP+)Bf0o;3+3tbm(OCI^gV+G#NfGMWTcMFW(*9Z)y; zBg_9E$xdSOlUn~#4TdIliS6psK!fQO{xd1F5tt68zvMN3wzJT%wRP6Uj)rX#8Pt9w z?Kk;L+CK9Cc&-22>-^W_(_?cchC_GWU`_(VyB?M|$N%l*+mq!1k+n!ZaYP~J$7nS@;eZu8AQHno5d)}K!e+wofM}sTrq%Kx$qY+I zDx>+e1m}%Qc8-dWh1xqE78zTW%&*O3zLPv80KvdwSQMFmfTlvZ9=x*1*|Xpmth9eG%lx=TLOA`EKvuKx^zI z4?&)@gdm4D83fVJC$PjI$P8xCJ?I~Km~DY@mr=EmUSdILR;9015t}R$RKzyHW};-$ z$W16z3`fCS?gioC2WWOcVOTKch-x7-7}H+#54wOa2K+#tse#g01pE} z)Y#V|Dxn@@zGUKuEEQ`o=BW$@PB9pGd@lxa+KYiTDGUT1>=@aG0kF`*LqTCg1_j|_ zYZhh8SMj_9%hU20&Ak0E7|1UwUejyVX*oY7H_5DX0f784QhEU}1#^Q%wl5g4lm8fq zeP%B~ho zpRk{=ewdfukI~_N@(Mla4uU$kDQlI!6T=Doe7FQH6R&-#=`Z@QuI9N1zO$WtC~Qax z_r$`ielk={s-qu#2T=sN@CWXoQ82~%ujSOtr8DdrQ#a^~0_H7PdIqpF(up46b+`6y z7H)#R8(PZj%2)i?y(=-usl79mof;;kPyo%LLIKR2rbBle&t}p5F_LM@Rx#ZqQ`Ni~ z`)}$4{u0-OOurK^{a>%pnz$}IAfS7HGV=dQGt590629w~Vp}jccC9e2c4fH1@dDt_eMW1vZ8L4Yi$w@<;lXk$}-#0E|uRGvQbXV?@elYc&bkHfN&?oY6U*QzD zO9*fm>gm?-YZ@WPcf_t+!W-x@jVHJNT>{>!j`wlWX4r%L@iKb^QI67xv{;Pq2;3|)LJ)rIACF~xLY-r)Yh^uv&>n6Gn0%MD9uf(rsGCnJ$S zrO*)6tj--wM8oPJcq}fM+3#l@md<;8>#X`m^f0)x8)BXXa|432^?7VW#eVHZ&+YOz zDsa@vd#V-$iAS52!QlbU4K~EW2@eSf#J-D*M03rIg;y&Un_o>~J~7-T0B~&A5#L0( zxh341&J7Wr{Dpzs5`N{=owRw;WAv_ z4?HmTfGI&rS-9m>NuP~<{Xao__)4>T`4Dk{{?#Lf^%>CH64Cb@kiwexI-m!*(Nj>Q z0fjV@HaGGEUQ4{M61VgANw9=w0s46MHYlzd#)UF1$*Yb7sxoSFCNY1Hg3PsX*6_(4 z`V~8=<23X3Np&V?Qo+!BnQ(p2rU!YGa}GIEDF}V%A|^u-6`w2V0dK+EW|fnHu9Fb2 zmop(=?KAx|HqG?^gumIFSVMxeom9tjD~a<^&H0)nfnuB6!|?H{Nc_nq^cr&3x-Io$ zXuqlFr`~NUGqOZo+#DVAGFu;rf_ald=FhrMJobgcx{eMJu2VIpy>=B{^GC1#%?au6 zFVTY%=GeYh8CT~5%lVx;wS6za3G;Jm&d|K2rfdM)9x&{0GgS>pFVe7*$;-EVB#&(g z7Bcc60)!TVgn}>ZSam?x2Y8eBw{6J$)VMgbV-)O)ZZIn{X~U7O_e6rh!?UsSb$#WY zNbr=oyvN>M|Ml{v^b{O?y+ln%5t_16F)}KN8w!B z-m5nsoA<=o8J0LB#Wg~3M#Buf;$}|X?U#u~z7E5uAxNE`=w zbNSg+RXkCg&}`1uNp*@*z@u~2#SQ2Z zTFEa9$2ET1z4&J(Vj%usU0i6Y%^JG_mYmsz3ZB8q)9}T$b1Miw`m;Z2)TpFHiNvmu7m##M>TOW!vjx2rg))Ycln4Pl z0$&P`9T@T(k|pk{0h+?e0r#M}?=y3)@@!jX=GMEd?`LKX@l77?%*=WI?6AYkB7xZX zZs!;|w=yp3Ah8*;*4VPTK$*K2;uRCdKVrbb1X%7dbYH$H)V$QZ4tp0ik#|4imGQju zkCZNSA|h_Wa7jo>OOYMHtldtEJ}lU+*%9!!+?`GG*I&M04Q&e7i=7UFW`UXgsq3E&o+B zq-vmBUBq7re`WktkQhB^#n@trfQkRVUkJEB&SMu97ZPXbS*1)=%0DTUYm7+lhGV{J zz1({~&C6-Ytz?P8nGGr_ww_4WWU7eoWQzDsF0!Pv$pM@x7S6ym1svo9Wmk;66Huq z)^wDk!W(_bs4r2~uVQX0=c$ES)fk4JyyB|ya4KoFshLY=Rd@4NSq0CQdGsRira^Wf zVi`pjvVQ_TIT?kf;MAuVYB3->1Lm)F!{SZxNB7d-+`j#7{`o^aoMzbP(?-QS5 z;(Zi`izF>Bnft*W@mSF@uZk*5i0rkJZxB>_X1=@V0V6FQo+T~T ztV2>vA~=s!vRzA3;;Wrb__#Hl>3FOQjWpc$mEy6)kN&UYvAp0nkC(s#^X@)9BNLTH zoWtb>w>Q3rH4*o?QKB%n*08-Ngpcjp=9@9x5(}3yQSL`cRR0Yo@+Cg(N4R=b5TN#; zu+!C9@fd=lr;pnXMiK9JALsY*ON{gThprY3Uc_rviOe}g$tBK<#E1}go{q+HTcWY5 z7CaaC8dpLzehll%K-<)AA&e*%<`(uVC0xPdfD&cLq5(G{+;pCgI;-7AmfM|!2k1K{ z@g4YLMzgK!4PQF@Peh7U{L&cru+W3=V);4Oii^$w) z>>%!n$hsi1Lc5`3K0aC!y|y^a>;ep?q_yjI=47F*55L*!r`O$LSz7e#_Txk7@7Uj`2H}oAF0{YolYJ zTAv-acUV2ds%vA&>4j!Vq1JSMeb9e%i(>MvqvsTdjSXdsL=r8J7*h7JCibD{udqJWU7A@ROCmn(C>UT< z>m%Aq@A^3V?*GO5SY_4&>0!2Piq4H@4;Ra%GFsp&S5UITmz^OIpQ?f`EM97+F~qJa>$yEy00k#pO;P*o!pBQ-RvB&fRG-nBK8 zkL7~#-3R~rzsFed?+20z{{?Na-;B8Dg7NR^5Gr4nOz!VnmrMkz;)lc!e&&!fs(f27 zXnX6FzgAo@zDozS80p)POpK(#q&wFR)%{;NZ~p#*@gM6@z9E_PFGyat>63SpiBZ1w z@o}*W+VsBi^~vP$kZ)c5`1k>p_a5ilp(VrLcnLysc>)=z;dOt{nugsY{5QP9JYots zz7osMxobks&9NI>Mq%*U*z*SRR&Yde8&kO48lHSTzdWh4VdZTXB=vIMctOIvtV=D2 zCbt#p{(i~V176D^nP>9#j6R4jxgcRi-mPZ_r=A&hV zHBN+hTUB|2#)S7^Vc2(LfJ4Wj^0lO^d^b?u?pqu3wS|0ZLa`B{c8-}!r) zzZ83Vnw6@=1ghp8_iG8>Ys6lldZZ|Y0)1~~7pcWJ+3YUR?+Bz;W|I`pE#`)~WXD42 zZC0R4x7@F1U1s~2Rp?zFly$j~%SGPh50YIyJP#iYmT*MyBL!jKJ&N=in0mTVo#XeK zAS=A0ZHNj;zRRqXve`~5Ijf%!g|u=L z5xO5nNI2+xVT!EbOC@QE;wc=8ZJ92r2#s#6<@-!TEmLa8uc_d(OQP|~C06AQ|Mk6S z@&3hGXz_q+(BfS()uqs4sfQL#x+0iPA(68e>^W7JQfSdZSLQz?PFn%^?*VJox!6A@u^pjF|IW&`}WI)y)nk$sM@VcQr14w2ZE28CM2 z7vcQ?g*r#~$DD<1J+Yl1V@mQ_m8)vL8FdDE@!~1?+GA_l^DiGVZ)9}r)$M^fi1G|( zRqeJ;Y<4X1bMvj{XHq=IF8z*`{K9AX@9*l>I(ydJV<#4w*r|>wii-1{&*v**O45`& zRP`>A4jaANfKF2o^JWeP=!}`()jnuB` z$G*4M2n}VdsK*y0DQlJ&<`5sBuHCoD_$k~)3NHtK-ar_W#xjSonA=*!Fp#~7(dC4> zONQjIZF+v`BK&Us>qnh+zPG=cEmq@xQBUzGTt|EwXC(V%d*9EpNWs^RnLO6)W0G_=MgmR|j94pyo&1;%i@5rNRa7 zoh|xMObRM14zTAvn+GfO!WM1kM@6ixN0Sh#`ar2c0$0@alLJe3&+yw#$KKP=X+EK>m1fEtoE8R68 z4b18Mx(Nx5I8Vtfn=hxEd${uZwDORkh+RKrgLrfknA)(~!jg=~T;pSSL57zM^&6h+ z4G-VS^XaiIhAI?#qlwQR+gnOy*LQ5|HMVbRY*%~Xs_+W1yh47Jo`Ti?DU_YW)WNvh zY9>U;N+UR1=Ys3;(eB(4W%2K=KgC#gMPmKkWF%=v0~%FRUgJ?Lg~M zEpYrhS*DQLgsaRw*Q)%`e}i0~wlgi?D#aK5*+AK{;={C6M6uJgxz0cOZSMFcR-ev1 z_sZuPm=f%ri&8R7ozhgu3SP@tS_X2o@X)$u-?->|(udQZx-W;+v0qR#mNFV$o& z{BLEXa-08pv+<;Ps`oEXmu|R|wHu~cWR;Q*@C!BlkfEI#A9kMhUdV&ochAYMc{{^; z^EnL*IZegL&xct^S2e zWfxUo*Kat9#xKFRD|%;&0*p65>KsM3-kLzj$t{iz)*_VK@f={V*%61WvDCF6@gUf9 zvPEp0UD@GZc$K;=Z6i=?fR)_+{}J~l@KIIg|9>C}1X(63C@R%hVu|7s#U&V(L=w0I zGm0WYRg_9qtXNSK#3~w`1TtO+X{}0Im;AbkOBGuM+!H|(KsK!kS~c2!^~AW~9yjuP zf6loxnS|id|Nr~{`!d`!=bn4k=XuU^p6&Fs5}VE5=6Af|PkY5pv$LaqOY5Epuy=_v zC&l%V&}b9oy9LMd9n*=;QOb`ei`Yt?r*t&D8B@9l(!ma&eAPdkW?}jCPl>`g7IJ|R+CNki9s6k{^Z;yPeTDZucaSTO z>3#>HSIFO+F$K6}T1pScbKl2Av5Jk!D{QqMIKbs5d?QUccqb}jeKRo8wflm%CltJm1uKDy zH<ym&#N}j5Eonxa#FsA(s zSe6s!?@qojtZ*Z^IP7mrV5&Gu{%8&vl&^ZLojuPB)Z5rTW94VJl(5fJVK2ho#% z#@WFACwm~PMlVt%L;qzN8LS9)+=B?f5q>1Ov2xUuG6>6O7`W7?>^0!E0dZ?E+~W>p z;dU^*J~;UaYP^nUoIc(wvs}&nyg4-S`Ws%mMzDci68*(*mw3vTBvozWSGTt z`!<8L`*!7zM!eU0q}!7|2^X(oPudpc47xy8V6AJ!f215q8&0)5(17)JQ;#GL27g`* zH%P0^-n>4XAO?2yeFX`;g6)&rj?pl*b~7Ys1=G_f0PRE~?>~3Dl6IRA`-+U%TQm zy9poJSn8K&#Cw&7a{@7CTFk&en7_UFDVJqBVn1Tker|k^(6W&PQbKHX4PvWnu++OIk3W%GCoOuVkvii1k0L2P26mdag(bCw zUW$(?!666Ehg->?!7L$1PScssm)2ek(}vmzz5v1Bp2Gzo&oi>-zt{sed1AmnKdB-uOqsSW5qXfv7SfKhJAi zO|+}_6w`c3jSwwRxaZqFVJr{>_-9|2)VMcM09@jls!hn2Wg8bBArm>&vAAYll0|gF zlx4;K=P&BQFLy3b@rL>Olr(+&mPqEy(V^VS=Jf3=gW5~sK?B1FkKKvW?ue%FP*@w( zC++Q(xInEgukE*Yz*&bgv8C&m(Rx8RF*?a@lZQ>i?p0%J`|Ylml?RH0^!%)?Fy0^l z<^N-FMkUcG$4sBum{HM z^@sK)kijZ1UgHA7-@eEi*ARVqS4-+^>ZJ966O27QM5s9hiw=kmv(C@5{Auj{CcKhp z8}o^+$Je3tGR2l&)_ZvWq?9krgDeXC82fjolHg$(|2Ft5LGzTRyY-=+ui5cSfjdKoe$eNLo_{$TM4SjCf-fO-d6r3R$|Tx z44(Vc$gTVUUn8WR_CjXaa14Jw{aQ8JKQkB*oJVp%x2ZY%PPPcw$6U`aa!e<`U%+TTn(=tWXgy!3uAN^?O>*hk&-N+PlH`()N^8!EP)8Mwy zHVnoNjw`p`Mfgrk3k1`B5T1u>{$+o+^{lu^_I92_jzqM|yv7SFx@PSW4{Ob@dbwlG zL-T(v5nR`G4_%kBv+lgjRJ9MfaiZ(a6r2wMuL-fXoKVe+b`~?M<_zH`r8WGJ<50Y^ zHidrK^%nikIMKR%RXG%_a*}l-%8%g_Fo13fm@GCH^go`$0VIRR-nl1bb`EDn}>a5~5Qf2Y0nMYat;eWYbi+D8Jyr6JB z83KCudNGf9&41jFCGOPA_&hQ9Xc${(m!*|q6@y@ zo*+>kWwFU1Bm^Tjnqg0V(;gW~X2mbi!#9*Tuatk#KRjE$93{^dTh^T5JFk>kwy}6` zTa&51jG(@WgvMvCCT+bU5_W??`SYtsz^8euw1ITU@X+_+#s!6QU%fS}qlR5(Dn#%T zhT0JPdYMnCUWYf2%4Hdayu+IN^o!xJ8Cm+`?sGL?Uiw9QYmpAi^%tq8Yal07bAqel z(oR)O*RM{WJNmH{PmICbCsAH!*1h&+yZ1ZVsnbTkxeY39df)OsJl{-wk|wWl9~20> zD&dAJ+xTndkDy@oVrW2P0t4V$8~zo@07_?(D{j7Le>kG^Md`a=6|iF$vJw0Gw5sdna>y zA=l+0+*<)~)UhR5SgLXx&kef}n(IKj$&Z=BVF5N>K}}@MR9zzCV^e~6QiLy@Z&P1n zg{luAC2|I=4BCD?+ouTHA@_gY-i4su^8#vqzkG2x))t!031d=~nLJWTdE0MhveV{d z_7SLX^_+C9xqR0Y8UD0{^5(g*@9V{;Ufs>;=i z&21)Up*G_v7PD(A*as&SScYkHlIrZt(Rk!ZI#TcRnB6|=s5Df~6_RY*@yJ~N;)ePBpID zo~_rqI)~XhF=yLXHEeF}s8a5eR0%kD*V8&+i7H`V37A4pH@CGO5-M=WnQ+uGGSBjGl87F)JY(bZH^I1bL307Wrm4lL5a*Y7pvsdB?4X{!tkkea;(Zzy5Xx# z^V`(|4%`c^Mm9;!(bHNYZu_8B1p%e84Ju(k=9!V=|DsfE`OnC3puoLmF2ab$P>yNi zQg7mCF`k-NLe+PQ_nl~()VCToYe5#WajNO5dyE?Op<09z8wPl5>AJCB_(SMg?-M00mr90W9M|Nym z3#z-@wl-^faFb{bD5g`SHGhxTZ3CBC*18n*Zwk;q_GVj>1a!{_SJ1NAXL*tdCE5@4 z*Yl&0Bv(`O_pRw5)wFq8vZiL$w27LaVXh{Yjx*e5c;m0Xy-&>=(SlS>ZK}yo6GU%K z#b`#C8`Q*o37OA*dtFkLo8nYmxvDFJx-6j_xg(+Mmcc&NeDQE{Tm`COFf~9e2|}{s zbBLioX=!R~$@val_pmUio5Rff+j!AF=t&RKYr!(Y{kn8B5}aPd;Q%uhfCNwuc-q4$ z;5iC;IKZ?17zaFxtPRi8i=RoJXWVru;IT*@PO?287InZ(&4ogIw<`@v-<6IlO;Y?M zIJg~3g;G1zo~c5~m7ZjGD-}xZR=*jYtSPyOlkCp54~3FD*GUTq5@t_8|J~w@GiN=t zlf~Ib)(hP&&Q6`l4;-uguy3lurCRN}mgf{eUBvQ~8JaU}7rn&IqLyaS(QZOX;|pYd zeN4yv9$?GY`rAIU)_7vaCf$>UQsC0FXd#mSHVp6pX{Isbc{yen1Lf4A(Xn)6aM zbiv8|Pj<5Gq3iayfpm5hFwD>4Mf;$G%C-E@E|G>|wf(o={`;u?_aXhuf0Fv9TtCN- zfK5c{0M;TZ#yY|L=&sLzk(4*H%3~WLVWAZ&mUw>lu|ooplq4o-q7VZ5hs!*y;jL^h zlL$<*KsW=-xJ)kR zMdr_49tgLz6&52ah*)fxJ~(B6b8Q%Z>~Q>Y{M9aMj>a$FQXX11ti1X^q3RDU;kz9E zir|FBA6E1$ul)(GR5>lO6~^!|>c1ZuZcT8ib^ijUJKRf%+z_+gh7R>!7X9l#Y@-urwwyCMxx5iJmFP0X#><$Nsh zVxx0y{Akd!^t3(qolbkCXn)RnnIM^(jh?5rpbm*ct68gGgy0+NMa7KRv%c@ z4Mahr`;v8bM>U-XW8R80tI+dvr{)Grw}lq`OK_ez(%Dh^89bGb8-it^uN6YCHz)8r&}Solp2$!-v802$ z^8zlG=K9lnvoo;&vzlu~0=Am#l-7ENu4WNI)rC8GR&{-L=~-59{m&D$tBl!CyGmW5 z!&$*i^1tt1kImaTc&1k4+T>~+({(jA6YuJ~7DF3duoySdnO1bTJ1mB5*}TlpDAtXg z!Bl-^?F{a+c#T)qa=Qvwoc}G$(0G_#226Y1GA!qJunZ%T%g~9R-}yq!q*)f?S{ttU zhb+YS21xs;EOLC>2PT3RPBTNa*KqQ7LLEg&_xk`sysHKOr>n< zdwZ!>reJEmi)hsZdDw{4RCHx~+gJ&&;PxFF(W61?7}a5#il@Hg0$2IzY|#KkHO>Fz$(F4;e;OSLC!UnNj!+=+`BuoctU7;&^8Jloe81B8 z9UgDP@jE8)D6O48g@>8+6#<7D8vrjhvpSuXBg5;K@>s!{9?OHTv%;VM2j80p3A&eB zGPNyQ^Ph^{PD*6`g%XOE!kc^!YufnKUneZ#l;2;9MSSf!0PcdAiOu%{TY;M!Vv@w~ zp#qNy(5#p_wd>`a3~t6Ltig#E2wWd7P}zp$E&6_9qJ!+)klnUE}Z251Kdo7pfycuRa+nADv~# z0)*kjLd_uaU$3eA{Q>T4{gANs7kKk9)$yJt<4bpEqrXVK^!zF-gFvb)>p8ZJC_EEmu(2fiEjA<7K>NyQq9k_#%+jw_S=f)e$^@WUC|)mHCZ`uc z4zx^uFcvnjt7uZUU_Yiy2R?6A8$Tr$hq#$K#+{^N$*1Sf6U?MMX1&Bb!AZw&Z9MZD zGy$eA|GoBY?Kz^C-M+8ly`RIf=X|_K&q@>~X+>?5)TR2p*vO1ZeCdzP2-WmC{)6_8 z`appkv9o!e|A;LKzfMH*J@6*TG57!Yz4k{7?Bs4VyZ%+Xr(dG#Xf)eoD8t^f5f~Gm z({lSyws#&f`e$oiCK{5sFMoy381vqBWa0}O@QG%s5qU0gb1k2gp=LLK>nFT^Lccw~uw&p4@1HjC!GB?#nA+FK)Sd>lfFoxWgl<%% zKI~{9C040Djh>qa{>(YBAp6Jzg(&d-I>iv~tmG74qE1uVJ4fk){&|#j9*#|2*xxTh^LP_nFr^qp;L$`gTn$FGMwZP#hO;1sCGmh?P z+N!ouYJW3~GW2^+pxM@M0wL%5{WJMG?n$wY67NeD!|n3?_=!iB)c)#d%e4nHfLIec zkUjnc)l}YW^$hX3TjFz#S#U0Z$)Hpm6?=4Wygb)jMy4|6kWplgJXpvdonTszQTCuu zeqvjiVAdTWKMyDR^#^Wc4%-KPaG0ek6nm9oW(h_3c9UtJB~cD10#=7h@BFz{9>}&S77W59>MSLvy&s!zjNh;n@yR{Gc z^-&N_=3|Mu_DDN1i$vK+KVT_)mgdz_cDD-*`n{cL&by}h#w1zaLwO?WOzN+0V%kI< z;Rq30`)k_=-FdX5>ihj&RGl)X->OAZ9ak?_3dhTd2idlln1l8eC4cuwI>moG*q;=L z#hUl7BcIvPegQX8Q*S5zb|Evogw;w}!_u`f8=HgUF=obQ!VV=6FEh_ zZ8D#H{8jsBB@=L?_NM6Sjy_n?dT0I$>lXMH5T~G#O8vFHOFXD ztB%VjIm*%kT^XT`V6~+j7`byLwvMEJql}jA@pT$g*)eY7g>6 zu2z>6W|)zW&^xegip930gr+5((R61TzRBvW8A-QTZQEaz=W7X%BPIG}_IbO_#?&QG zJDs_GpVYpv&SdamD;ToTjIm`C_4H7@z~tXkZ*}GC#_C7CZZV8Ll zhx#y96afdYLaHc_ zp4o<4|^?8l$MeuDtXJL({Fs8 zeA@@7aYe53*HsQMhuo3XF?;5N+tYrftsn64Q^p@IQD67+rccZ%-gPc}SlQ;B#JCf*a%h=)p%_};s+rd%zpm}QNnc`}14 zsl61vYH0!45G>4gTwVcr9(iyNrPG2ue$Hqtov8y%{L)$cf^(QxCD@2RxJZx2d5d|t z(hmkN>hvQ1;1c&(>K+!M;t$rlU*h&CvdKNRxJR>l828xb9&PTCA)*(5Fo%Z-OChI5b#s!`-`LLvRxn9JVPjIiNxW_cT)(Ci-D@8F9H_jk!DM6}{1+Mhr%(zxB zmwKxxB(G+YwIp*$HZD-z#ON3m@$DC;8V?mOe&-^xIK_K5+<(e zjh=$vz`l4V_uZ`hWyj4SQHV;y*9Dj+^RH?b03euPZ_kg_k?9rNhkQ3m=#K>b7VmA6 zO)5zQQq;)NBlHpY8w!c+rP+L${g=#uPl1}^L+O7M$HEuleIbi-p`0@uApU)Ec80&+ z$~2PTsE7&|QQ1X#{1p&JztBzL=ps9R9Bryb;W|Poj^7ACaxb5w>Z-Ij)2R;OKPU_L zGqFI@xP~t=Bzdml2>e4{(8MP-yr>pSEhj6Vtb~$nn9fb6dWq*wS49aI&pUntun2c%xNr3V+l1!_;y#K|1JQ<7gSCWHgR035M#q`Pp%}6}IN_Q`~T8{P5vADNK{O zKozBii$$Fq?ld>t8D>vFs5O@xZBxU|)L`$eQh($3*1E?c9vXE4PqXEgos2pblwRyU zs&kJedNjtC@^F(7TR}31zs6V<|GKGg-%0|OT>MaM0q;@(aIS6Dw{;5!ZnE|MU@({f zt_ciIR&~jFc}%qiQ{y7`3K(n)=ChgIPf$IdFhNc3v5AMeI+!OiB25t19DoJ?Zcc$k zEGWIjebnq8MvunWHXgwQwUNx>uhDYn!35cF1@mr#zRV59uBS|Df=X?xzOCC%kgd04 zf)4G9C*4X;M`&`6P*thPQH{yTX(nw!=O)!|wqC^K?AbnOuL7OBVhx>u$cz6Y!xA}m zYcU^igW*M*8O1AE+$H@v{9kZ@}_Vme8;MSmN0pim`O?$yRx8Aml9Y=dv-ej&mf}X``FyJoJZper^o~hKnc)2fP3 zdu!~riV^iA;ea$fngp$fdC7`t>nRYbeo%`)y`&)4)+e;!&lVCOu-T`*_inrY+u8}c z?~XEHQ~R5`DCo12T&yUoY#DDbg+Az&nqjRJ_HHG4aH)D#VLM=#B{rv^M`cuNK1$ND z#GqW>*-Sz;l;laI`?RXAAS7;+*@rUrB}$tK)HY7F&F|7s01m`38$$@>V>IYCZG#L05d(*3P-(|!%T(`oGcy0R|OSO9!tUN;7Xu-+{$-aj_J-ho$ zz6&iYElRG1oo}fH8p`6OIc4#1Kkg4Fu+PXIq2JaAg{<~%4fjapmR8N#E2DyK_rx5f zD)({z2E`L{xl>#2GMkt!`>Ns{elyuQRaa8Zy49xqcV(N0cHD2WwS5?+U~=g8>CW+a zsZ7g{xRAh35n`Rv{%l3*+&O6quI8C_Rr2WfZYktqKN3iKkAu{_; zKT}O^5|O>k4feO+M(~C9N7|qtW(Gtf)SSjbS-VwG@@#ND5w9OJa&3o6mMP%Rq zM*7SuhgYu&w6cP?E@t2x(fJGFDo`kktoGtU#v8pO-wvbr4|eT0lh2%>K* zlhY*K9BBSTu6mdlIN*Hvsa%1=o#eTo?5!AhHbxQ)>-emsR!Y&t&CR3{duU5E2SE9~ zk+#8#5lC~QgPc8^)&;rEE&LpT4Zr=y%;5qZ&rj%k?w)RWii>ZU3@?6L{$PrmyP1&) z*dc0$nl=N$USdj?`RJ5w?QEHNWG9Y$6jz;4^$on#IXlt+trvP{m=7sXM(nxF=R?(x zQjr3fTcdMx%w<^_GLW}1Lu#}sMiMo4+l$wz7nHLPfBquCSHg(6{VUfJegyL+y6H|=wMti7hc8~3QmaMMrZ(5aNF(*fn4oun=HxG z)h_3f<|3z(KoxK%Kk?@&DyzNl*v9g@!&oIuvX=nv?&!1Jx2^qoH{04032mm)&We26 zlOtzidHrD|5%AIELP|-)fbzrd|7(84y*y^Us;qWKK4WN-GGUY1cBMo(NTnrb+tb9>t^|IQT5)L8mw{pa3-%pMh+E;SK z53i@nM6^kGF-tYhN!B>c3>w7gR3iGbdP{JM%yyy@J6q#J_v={WM?tohe}kIf<(OR^ z890d9hYZ}v&kizhDW^SvyxC4Tpzt@Pux@Q#+!ZqV(ovKCGqhzO$Q9-E`WL&|IZXx5vD^id#&D=e$JIEONCkGjG zI&?5yR&ytiaS+|L;^c1Du>&%?K-tbD%%AQf$atx?12Ve6n)zzC05VR@4j^MBiI$I; z#S!fAka0^G&Gbl@ZRbQX9vQ+CYYz*yogwC6a=UIj1>|+!c0{s?wwNa^M>FZ3f3Sul5q? zouw)vN~*B~^lYR}QYc2hsi#e5G?`C70T~*Chzt34Jk-$~JzD%vg-foh&=s*F3X}R8qEP z7^ASnOZfl(j@_86Ly1w21Sc!vc6u|C9*Nn9QR#QH%xCCclwd*$OZuXj&xRXXdYb9K zw9uGDpL`7?oomY^i1It_jHFzed0dL;mH;8AiZz_KO1xi(Iw`pGwu^psW!{u`ffgoS?oN9eu_1l z<#>jwfM=-f;292}M1YPz=^* z6DYdawYcOgUXS>UU1F(hB?4dkg8nDiwrnJT(Kcxb3S3+V)FoD~P+Cbb;JtPNS4{&%&FOVHsDZ60ZD}3YL9tJsfz& zp2T+s?u**rO*dSax`OIKzvm-(%r&%Sn}QRqS4e6Eyk44WYO!hIbFylAzeF<_G-Vw! zL-U7lI#9=FnFh+WK<2R0%Q62c7n&1Jt{Jy>@LVCtGKrlz`&`24f#3?~naRSTQvV-@ z=MbDDZx;lg3ReSy-!o4L4y>IHf@3Z|!2G9|qBr8x!?_%D@C|0fuOUAEq&5H)^R>h| zS>|VS0Ww1nTx#C1}VU9Yx&YaJyGOjqv{3=wv5LO5&L8*_6XPwR$rhvCqPt>Vf z;l$)DaFrFW7zWwf#Pz1lrLhe?bj>L{!zS~t)&W=x`_GzbdlDn;AiLl~gJ~4xk{opI zGOL+j8f;OPSY?0yHs|7aIY`u8`q}E9awH=#aB1wVZ!BRxLejnoow>!m5WOLXe|lJ_ zXbqRD$E(3;s_CIHaFYzRY`3)>?#a2VlZ8q5l^m=}=7}scmN#qMNswAyz6oOjdW&DhSi^g1IM4m;)ds#`ZWlk+llrSJkChyJU# zgMoguO|R!jB$Sv^;3ekdq}Z4>*H}V1px1X1%CECigt7;PWwapLlubH~P;RG`2qg+x z5lXq*1Fao|@(eXskbRh%OW@+ynNYgpm8FzAUKRA;)3#*EFEay5xQzbU95`oocJXK{j5Q2f7plWHDD17$WB=FlT~w zX2lm>=r28h{(isUC1R~r$-l2=$)qg~wi)VJnwo&c->27iP?NchYWQ>qVs5Ll=iOPI z>+1GYbGkXr)}vVF@yaTOUz^;dtZ`dtel{StBMl2(M?@O(ccf$USMs8L(4Y`#)tQI5 z|0;_bANTw&)Odpu0T1z(O*+(ghjbch{F|Rbjn$>cW`G*~x}wG?HCK>5FjJ@jvF?H! z-7pbfB-<^>-X63Ic4Sfky%Bcg*kp;tj((&&u%j2hz>d|WXIVaBR%&%k*@dD~n_wc2 zrA|;I*EAqM>mDH%{MI5wK?)we7Zi^Z6yNYG!Gl}J&R{Hz`2O3_Hv+Cvwlbl_4y?AQU%3;kI0Rhof)(9DvS+TRik)Hv+p>7OPFv{C&gMVurvp+k)wS-T zbsF(mI9>_g{0zLdIOq;uTelfxvL!rgZbu2yNnhaj@6)}+%=|TQ-cI+IJ^SB*+`RlS zq~#djuuaN-@s8tk3fUB>_^S9-`lwDYgtIxntay_Za--+VGUxFsDdhGt*V*5#nWg?} zzaHY^7555ND+Yjx+6t-r`9NxZus%#yg&;c1?A@g*{kB!b%ZCw-}`4mYSROKN1Z7+dVl%)M;*KEkXVxPtjiB2t%wcK57USXlYlYzve7 z(fk6sexrzM87F{}6o&Wi43pj0Ws&k8Ti4VNsB2H^+RxR6O^e&7DnD0*2fI(@ew@U} z*KC}v59mHb==<$czov`Yr;2HgsZ32Ab-ZnREsWgQx!2udH3wpd! z)r96>Yj=?7U7f4i8B(sw5mNq@8e7KjAvWlL%n$|6&HfEf`Coci!7n0RTRso2{#F_t zRu->}(eMIms~Ai_FoJa{@z1U^1taa*zXM5nlko^FV*1&?m-(>Bp8c^H=$q2myhmR0 z>>pKxCF(?N<8&Rs5@4%y#;s-*V32~IqeO+eK+nzw{CsZ>_~8oJ;I6>pI%haq~P?DMz6m7Uh=?oe@OtO^6e+jJ4 zTcrgoJv(WXn?}()>?bW(>vX;l_Xdc2Go44QV*T4BL8++VK1#Q*xb7eeoq*WYEfDE+rtG09+o-jXS>h5I7Z;SYUK)e}8{1Z{=VfnR=?3YHnl6}Rc z`|5g2_V-LtYJ9;k24=m#%*e$ZzI#eN9{4dCj1!#amfN`@Mz^QvUPUfDxzaDg&d)h_!e`?)VSd~uGxid2OY)|3${g*)Z z^Y}1@k%2wvymt$kCTky#Ns{*RLi6B6X-xYcyBu8^G9{3Pjb1Mbo>L5%*aUsSk-+BW znahxSU>7Qh5vqxbL945tCD|j$T3xl?{n{uQto?M}Dz$k|%gD)DDf5_TOQ8tZ$awhi zsU{dV^$_oj7SBJ!x`Px({9{vf+d|=nx3dvl1x2bMzF!Og1JtDK+{14~!e=tU2>S`1UX(z8pat_<=JNp|F=U_l8B5AI5-LOB9_ zLhn(5SmJaf zsB#%d20Xf~TeCxtQ-OI*O~vtEuUBxJ3s!GH?072~v)gI$ z>ACp0$$SBUUhBa2L5cQWoWrf1E6X$N0)4%YwhKtvS%{_WbQW^u)k<^hhdRh)O?Q3+ zsr_!S-R~@LPaE+{B$!xy=Fi~G8F~B_@Q1ADj3WN*WQ*VzF%Raki*Q>b!eY7wd6)|| zz4%^U{HHvAnj3B$V-25qTEpkkM)YtMkke2dR{s ziqU~-rq~%UoQd3E&K=L7ZOOK`p^t9(^^pX_$7PpY5=V{8^VlT|v`e17()7R~(fOZP zdvENZgxP>-_VO2k<69XfD*o^4wAKm)@yHTV@=jw}j&}ZI@D)W)ld6bUAK8*be-qE+ z?~XwlH^TjlwE;meLwUUtx$_;85QY6Gx2Y@@(O`NN%et##-!4^ba#d^zsyMde{-|VS z63~aLwH?dity6zCZ%^xw$_r@sk(9G|eduNYrX;U@(0wY@Sgz%zhQN~b+Vg}KHeSw5 zfJ)Y6@KCrQp8hG|$2}tM;pq|lXW=XGFUGlNtJ!ChwJoe1h%2!TLQUg2y7LL5&8j6m ziIWC+uwAuuAymM9e_Cz8pTnMrx?gRb(;a^)YYTOi?Z1p2;OL;&IEJpNz(7)87Q@;0 zNR98=Zy4XaRjNDLlaa5EJVQy&vK zEiXK@7)41*<-S;?cx6NznA>I!K80Y}i6O6h#a~q%WcTylZgmoq7QrYjQgvlA2s3{? zoqA%8fX!ExTf>ZYmU_X^^TNZc^Jmx}Q39l+rkP%EKcRtovu-SAc)?~#pdfi z_%r02P0n6YQtd=}28KyqsJxtTk1by28lv(yLBua^>v_Hxx@IL@N2vM&K07~j`4%E8 zTvJ~yeTsh)s6VyVLe|Z;QUv3OCM}d-^>wd|mJv30cN%EIKWbyu8)~Gn>bRa6p_)B; zSB=dYsx0yde$Lj*)L;*50dSD5+E&L4;mv{6NL1ybjEa5i6gf0g33Y;bGS^N5lT?CV zbmJzmQlaW5{J?EohDF;{30AWmMN!VjfF14Jw=xLH@-hj3+)7*2KmOpB1wW#2AL4}4dshkkl&Q{Hz%91?an&Tx%Bqs4= zZWHXVKuOHUX2b0gPlw?~BdqY}B~@>+TA3x)ut8GZ@|j!Ts^fApD)&sS8!N=bXwBB4 zCJ;5Gib^b53HNI`1%}**_l2hT07*?jmzK9IBJBnh5|(C|OV_8ZA|A&-({G`Trud)3 zm}|PKerhf6<_qoDo!4{Uf7=+AA-u)o{P>vJ^7=nNfXKRyRqJa3gqQzt=X`=B)+bdX={sku+m zuc~J{WL6LNh!_zjL%}ZNz_B>?aEDQ*+H3BRkkn`CD-SxmCA4 z$8hVxKwrB6_h=^n6TQ!s&~0!BKam&l#Q<&f{LAPIyTICTYYPD{~ABU%ryidX@aJblhqU+IVGnO27D#n1%8cs1-~7}(M>Zont*+zI76+}84CBLo|fI? z`i?}Aidu(0J{%468{E@sHc#WG!J6REc`+}`0l9iq%Q@ck@}h94>{X5?T+xTnDC%D` zn7PcAJqUC7V#Hyv?42Dn$@E_!&j~`4jFkmPG&6F@ttO9dYCZ?J$aDs=Ig zmI^KAJ5eEfr>%+|~?GimtTskYR5!+kZHUT%~F z!o~ke;OX{Fd&TT|q3Ro5$3Hd6j<-@I`K7!-F1pBe{Ld=jIzG{L z{JQ^1c04E5@sm_4t>br`yhF!Ve&jknI=$nwCnh_7n;k;X@k`!HcD&qnytg{u`9Iws zXirhjd-n^`KYvT74W-YB&KpYNMr}Lh#9xR;;7IBmco$guH_|?!;f-*Q85!2uh-0jL z;qmB=XIdvDn-O%QL}$1>xv0!*u+{c`n`#pa3xH7b`awcXNMx*`(42Tg@WU?^9#%~B zGlrKI)zn`zPUICv?CSgynK0=*KB2^$zDuICU1&aJt>_0tV4XSnp{$HY-JZG5d?e5O z*atl-*>m~SZ6&c)d7XEVV15Wxwrq=x#qu;P$3tjm{LnlG0EmIPiF_~iq^tq6LN`3F zUmP7RZCSQW4@Cg^i?Xd7hJVRmcgXOspuc@h)*A61FL|+V?B0WT6KVl~YS+cJPt;s#+;VV7#XxTM>i=)ir>&%Of$3cb%%0J%NE|!&8YuwggcZQzRA=L$kkS^ zG~9(>?Z#w^c#fD%A;f4Mf}Dq6O(~lxGOf|na_U8%(#2@1y^GP*_Sda=YWx{8ngTWn z0o#bp)CamN8EP9Tep5D6|1`5Hr#yvUJvotuj^J5yE_o53_LPYc9)#80e<7?_hltGX z7O#bB-UbF0bCu<1@&dt~o#&ad3AHPssg4nC6+uevdP$Vtgc(SS=aGk7;>o{}XjU;! z6ow4Q;QmTc5Whs}2Ycvv`VBw^m5DVwvlN{4{6tV+b>eO-sR^h{g6uwRLl~W7HFB-iU_L@^I@}cRQFWn-7op5|WYwxhcm}+vh z@;tFbXPioRg&FWerDs`=C~b11sY)8;7K5i!{n3XwTH8W!({+s6X z(|4GeK|gmhvqT>!YPJB(!R)M0pB+eKp5fTtd1jcLp4O|Zeb7_y*qPyW^{9`1<%{Mm za58yqqs9i|?l@!ymgjCzIu8YlUC3h3txqj>fsI*|$R4*aMFe6E0QpC9DR04P)ZIP<*Zq)OezBTbUpQl)Qaz!(EY;lif_b~3U%{|(9l+`|#;i?hw;R9`BJO;am zs1v^m+@sJvM83!@aSx9NwM@_>{@4_kIn6z0@DS@VBQ;I?o`$Wl|5B;n9v%*|bj0h3 z1)qp!Qu!SBs8R)uv05I%ge@ZJCQMBQff@8|r#K#60y8X`DA2U@*oO1C$<~WfBnV*g z0|GPrPF1A>GuYlbnafS;vJ1?h+D!=|=oFZt>MilpU7~w1Q;R9YKv5v0;&U(V7m5(EU+EFQSKO2t`Gq{1IdiFm1TczX9QUhu7h2}Rr`Gzl{9=f6c&v`a z`4_QOAhll;Wo(kwLy&A-(wuNd%qaZ7)7`&~bN^P)z~%=Y53t!P>O{2T#IM$faB?hf z!~EX{#Uu8Z`E$F%Hm>D{S<^D`1CaMW9zh}H7gFBg)<33 z+#eqUDYVSghr|ilL3;^%w;A>sk@#O`(GGhL<1+`%CmFN1njz(8AC4$-5tU%H!W*dj^`^5P-l2Ghp&%+ zS;t32&3td&9cGy4Hi~DwMQvGyi8T&ji!EKj{7A84l@t1^)~vomhpIu#x9G@OTg7{` zJ6ufIzqy{Yj6Lv&HjAvr4vEU3(gbtab zpVgt4p_zk8MJ4%bVVX0%6~D<3>;EioY=cs^4cy;9yqW zjL$lPQgQwTl)ySEn)y%ebAw;8j{J-C?SLnEcNHGgR|Q5<5mcsF61XA)t<%JG_>eNqYf>u{^xg~MJoUmpvB%hpv6x>sxD~p80Eh& zT0HOvixvehbfCr8uLvz})sT~DapkZi9*m-(d6^OpEt>Unoqi@jiy!YDpvBe~t%F%r zhtt^%lf71lIf7z#WR{q1YozzaM=3t1u;q5U4*eg$wKw{sUijo-9?*Zxi;l1D!N}oj zPk!F-&Eb1xLWq7YA-kn?VR*rKzxH}jv!ggFD~hv@!A0WdRi#m!X|6oEwHSp36b3}Ji2t$f473LIah8-BsW-EJEcFK# zKEPbMe@PLv-4X~P-!@AmWvf!mU17^XyR#}?NQx>>k(4*b zS(2iy%+i$m`>0cMn+1~bYYWXu$dDi_KNe;9`>XHc;kG`K7>l~dk&{bw7o#I5q9PC) z>)E=&%;&qPzraF8Vp6@8>jos^UXE1YkI=~6`54S`K!pQeUp_GaNqysqFk7&2@+6|_OBGx-^d#GA^;STz; z?@7=XM_2+fBk#Ysy8_hF8S~C2;5@Z|D%Q926hA-g4Ac^ir1(v;7TmQYm%lvzxNqv= z_I7JMufY3QM7_Z%=|9eld)f}s>1Z9dII~^Gp5_h{sr+<*W_g`?s|oZ$r>kjT{>}M^ z2tC;eepTqje^n?A9FclYCf;il3111wD^tN-dc-=eNcmdUnYpXq#YGtvW|$r)PWum7Q+*CN1Yzu6cb-h{MP0pW@_ zhhhtvi*Vw|O+irWy`BBh?k?cZ<$KXyAl`o`9KRx`Ma8j)TYHl*e&F*C<4=3eVf>yB z<_vwsSi`&=zhE$`N<<$jQyFGcE-mrvV-adx#|XVs&3oB9jlYg zSF*a^W&_t9;M?5tAhkJq{p#3e&i~?mn>6`!!ufb z;n3`sO>XsuyXn4jefsLn+kMCBMu!lf7m=aN>*F-tt6NUw+G*Q39AXEvC<-2>MmzbA zf^T>xHQ5KIO}671`_P##o8uj>ym-PLDfr=B!Q?3TSS^z%`29n6I@y<>6HNB8PY08I zxDvr+kLonpd+N=%Om=U4OQBAh?z!Dh_cN+NyfE^T86Y(~DM(x;Bo=mu=F4A2epV&s z_Y@Tde1p;a>_fu-*xc}NYj(pf;T3P1jW~Cs8FUOfMj8EueW=E;1HQ&cdo046XU+JJ z#mj6eeQXyI2ni90_haKLU^o8D9Ej^SsYKgXgXw>_QfmSa(eyfVsa~QYCH&GeQ1R3; z#Ik)(zT-$}a6*tSSsEcCzt}TH{BL$!KNboT8EMm@ngYu?J!=M0H@5!ro#jmKuQi|a z#uv%<5$~Zb9nrS_MSju|DV+JN(QlpDFx{}+FK564Bc_-X$4}zb&!EXwXAz1u}LUX8fPYjv?F!O7Zts$|32cPO;K4T4CTU+?)K-J#)ZFlNmx1DD%KavaIScsB^ z*X?@+#weCJY)EH1R-P5W>-A3s@H$Tk|8}(?`Vc{f->kGOx3!)>(|ZfG)@<7rB%YN~ znGQlRo)8=zU4>TIeo{`uvO7;d&%fD@Dx+RZV2x%hISGxnn83KK_HQbb`od1(2HVA# zf;smZ?YBW`Ti{1U^f<@jmJ&SIvsODxr%eR%+c6nwmsdbZ|`!`tv%{oLMK>BQ0kO(l+wDBmCk4a{J%K z2Z5WyeKzUb6qb@sb5ppRpUwmA!ei|Qp`-9|jKppf>IuQ0F0L|LnMOO~7k5L%W^xr0 zM9e}%UY@W}mVDYOIzhw3X8;ZUq%A26`ufgh@9Ysf_|RT4);w7v{&La^`mqW6v&AjN z#V{;*5O7s>w61eCJF}i&sNLSoQf(ZhscmVJB`K@DxX#?VmO)r9_|?Y+tm1;7C#9AC z3GyolkVw_EFD$9DMC$7fBDE$HI@Bpp-0Qpy?N`MT())F$i2~O9XJx4RQ%hi)%tPc^ z0<$R~FgKCmoE@!u;{KwZa!u~vcJpxrq;}If4w?&QL>^Wr5dLXpi!Zi zq${qPUCfcLno#xg%2ZX)nnLo*ikm{Qr(D6X#8!Ws16G(p$y$@$`=n=AzsWb1L&sd4 z!6u{MmhxF0!p*A2uh+d0e!m9u=`%?2VwN}0s2uDF9cKQ^pmB}_wmdJL8s~C=5;)8o z?=WipGXX}~UOmuPCot{dzP$~CJzPr^YsgiT)sX9#4Y!USR z#-y7L@!dY;N8HPEY{s(exA<9mV*ctA4**yv)d8$-i#9zDPVx(lYDE0PHAw1qf^nlK z{}&iH(L@+VSBzU-UeDenpOwul>JC`by-b;4fnK*s zw?O|Uowh*#;%E8-g?Ct>qg|8JSAU-cic$)ir*{4R6Zny~K;``Gc7di@d7d`NF|46o zpjQzs?PP)eIO)Gwpt0uO;+-$h48K(M~BuQMmJV_GkNeSQJ ztJ$zv(T9Ug%_8TU+Y!U3vrG+SJOXE(?jAY7+)J+LPhw!dlo#n;5k6;mwvoxhC=qyGK2mAEA(kzy07 z);Pim=Ya4yJedC5&ze)F>?y;3B^W@|xyoi!|5u6kwph7UU|yMnEljQ%8%oOOAb=<& z)|r|y63)pYv}QXqLL)gEj$(sxd97Fc1y+~%VRB(=GX4w!P}>!MrlB1ZimyY}8#N;` zp-4uZS(P4j=8FAgIHBt|i|Zqy(am1+_Ral>Q50IRn2(`U>A{JzMts)Ac%tD+YdkSv zqyTIig0g0`$m8N!+ZBh*EB>-F+w+TC_q1+TFPRaPwgJlM&`F6b^t&6)e&itvwtXZ{ zE#tn}L+z28%H-U}p2>+6+l?kvbFb*WFA2>C6M9v*mjGH`{B{dd3%~9HQx}tw3QSwz zHn&_encS{0HIcj|OktP}OciOyJHwO>yD-wWRZ%3oecFN4`3|H`ekvWL4krf4jv$34 zxMXFzYX#l36f;r`TSbj;?@yP``}`5i>AY1^8zuF`ay8lrkMXRz@Lm~)1pn>eU-1V1 z723#k2;zn%k1#@SJ97Z6XCuT^){*IB7!F0LIsr2TNvPJCKev8uB~-+XI#8LY71H8H zt)zU?KWCjOuwU7O)TLlv|io?ET+v*%KUV9~5u0+wjFV(ld9y7)s0dzR!4ETVnYF5wgbe zTLZV}J4exT$F5AKK(Ga$Ws`0To<=%t3;roTQ(JKPU6bq%TyEoMOrt9E@R77uko~JC zwKq=sfEFKcEj~4s*N#VOJSS+hp#Qm)vyB#HUtp8g?RlolmD}^BF1JMP`<0~C6&K6y z5`Gbe1`p^9N!6B~wYqewwz&l`QyV2-ddWQW<0Lb6&lBno0Bj2Ty3N|#@%-{>RGYOf zY|_cYhLOqZeDvtv4_X#>rcK!IPwH)PNlamp&N0?S!d7=UEY%0!r?xLNjrZ8vrfy^` z60G*Nb(Mc$&(!B426`zabIV-{)TD`lHqwdLr6C{wJo?Ax6bfMqZc)e^&Lsi$By}}P zg0@7#i)qfC{@lz_hjn0{eF(jNpmVQxa*As^!jAt=di)eUZgf3zC=v>Xt zPH|1oh-JBl+FEl&ZME6%4e2S|RDV@d#6KI0Q%nJ6QQF5G*&Ey(I;POege91{64k?T zE5m*kz6G2n&QJGGT<7^;;hp)Ywc&ZU0s*(=?rboCf!trhcg^j8SskiR^nx@I`}IqXPs z9IoqE_DXd<68Hv3GrtM@m*iOeMyLMv5BlrT-(75fTTX@c&}0-5yfW@+DI)_~oP%CK z*5Pq_tXqsL_Hym-T#154o#f zW7rh74CJ*M_;2dB=f~#{OCN7gzuw4_@SK*1c&+-?!Q8-x8+R&?>v}gzjhuDc;^mas+ckrMW*>(&ewTJ1I!7uN^Ej2QLx_1GWC|}H$9S9Ythr- zW0(JEIaECYym5Whbb5*Fw~(PuveX}$KF`6_B^E9fX^cLsW5&WdrT>ph&rtd(rTtr` zDBWk#hol!OZ5`~*l0%uQ#KJfqp z%j{Pt=b9_EO~S2Ss%Kz3^UOoGADfsl^N35YP2Ho~c#g#7PC_T9?Q%vq?PKMxV89Z#{(J*eTWea=!}XmT8>R`(rP3(9?3K zc{=uH54kh;eOg)dABU#!cXki+hrjm9_!xQLpWYIm8ak}uvOPWyoz+0%^8TLsum7sp zWclpidM~qqW;(7)wkuaM(OQ^KNgWtMF1m{U;bU|!!wWsp#D?*Fvn2Tg(4O5lN7}O& zm$UL-{J#7ul}Vh)v5-)jeX%lnqDfks3D}IbH)zE@@A-dQbMk278eE^)wXT*|>A-zV z&lPC?<7dM>j^;V05T_`Rd6ef9!0DS%wZa=pH(p|y&(!%V;-3Q$9v$}AMg8eiI5Fi& z)z@t5AxF6}g;D=74{xqWrU{R{IHR&pI6gO{I;)p|h$->UAuiNs+FMI?*DaozgpzG*#%@{!`kiv9IbP<{7BJ9 z8hcnv8omqoJ-Me&@UYOWvhyVB5?eK;6n6**Uz04ooerV*TW}s3D*{%8TOm+VqGP6o z5&z1L`HQ@s!=0{XXbjzO@oQJVpK68TeA-x!Ko+0_VPt5l>Y)8h*`&#eJ)�XXbC> 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

Mh$uiYg8Qv*ygkbp{tC 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�w2Y=&H0a_YjOUg=s}$SS9cW7eH0yn^B)D@bN-`X z?>H{rXX4^rEpYLF5$al>h)Th7%4Ol=&uE%fOg4m%aAzG<&d|8oupIDy_SP*2%(GVj z9tIJrcWXS$v}u(yIaRCt$EjN7GEUVRFL9z)S%y=!${3ug)#i_Dl-ks|ury3O&Xxx3$7%okow?%;U}l;}&LR5H{C#Mdut(zY_B48a(Rfa$ z=PKj53q9{Jo}G9WHVV;l^x0*6&ZcL#@!XT1OZYjC?vu&pWSMJA6<6S0Y=)|tH=H

@}6xH>Ed2 z$kYr+Y42b@ofy{!xps2qc(5(GU&3dt^S=qdK z6!uNs9;ex}!~r;lERuqA+tJ3T?e#E|kZr3?&CTgwG}5=$@|?cPNZ%S0aQYoa`WE>C zi8Z@in>d4EyA0T^F$t%48|ho)7fxTo>El@ErX;L0vIW*Tc(Nf8wnFF81T*hP=KZ0^ zeEpANb?Zxh?`hjVpI|GySlas$vYWIkvbWO$SLt*fIB~$?^V%lSmwDk(U(ti`@m~O@ zBr{OB=lB#cY@N|_e3wqVOh*Kw-GW$L+a^?mz&d~@RgLV}WRX|jz~QF4?l)tht{RY~ zAF9DE$6YljM+w?ghpS1Vla?O(@$YNeLgrh%Bw<>5xX9>=GcqjIH`VzwO_0cdMJo?0 zQFmG;q`DIg)Bwz``j|jIi2BgHP~UHV&9T`ZjJ021Xi*s|O06rZ_`J41_$}rGoiD`F z?;gwtrTKqA^h&Y7n}WF`IKiuYM4UjY3OWa{m`bvy8ykJdrp4>H?VSjMsQ=IAOIASG z`YeV!mV&L$9YDTY`tQ*4$1jmj;tyC4SrUtEZ6bmakI|aEkn{h~=Bs%++|pk+ z;3l*qe@NPndKODN8Uq&FdCBGrc`%SgQaMX_5=|uf)D;j-x>%NiQO(XPm0yqW(Md#s z7CeQtl~~uuNZFF&$pdMbG4Ljz6(E(SgL3*8jr9LdDIwZG6M+)Xw24U!4N^YV#K&H`3;k5|{bRar$ADWk%&^$3YEEqOhxqPx+~hF>KIT%F zp|)x-Vmi2*qXU0PN{3cWObpoF9AN&C6mY9nDF$599AN$s4>(R7lFhw2arh7P5i4}_$q!(4HH6t%`QCTuBVv@9K{^k5H zHkIdlRQ>wa;*>)_MjfYPAD!s#e*YQ?<&> zaScGrEHReVl=J{7ZLsP?NFi92Tuu{5B`Vg$ri_J&H~HDbko;`oLVh+_j~`78$Im7% z<7X3V#Z_mTnV+=kOa|J=(&aQhTB_l1N{4`ApW>`y+ks`N{xpi2cwkwYzf-NpHZB@2 zpIC)&UBS*(F5M(!wdYcP?BPUyvU8QV2+E0&{b$fSs2SH6?ncDo5`cPmu-P)ne@SwVZ!G@J$eTF9<@+|3JZT&Ji|pL_Knd4H+Q=U zr}!44S?0&J)xP2bgikLsKD%{#;CDU#4#aSaYcoO=e>1F&M^;IjjxYRg+t7wFCaSYc8m;aBw zcY%+xI`hYeWTFwlccO_#1sx&Oa8V-!>jm2xE_MQ;LJg9XP$CtIt(ORiqDvr<&`PIR zy6f)NZo5lcw@bV3F6~;2*4<9Rj3tU1E-Dw%aBaqjL<9tc`|Y`%>w6ArWs`hMpPTI)Yj0ndI>2fy`A2ZBS{%zOEl(GQy3@%}?slJ=t1L7` zgL$Rz5f`^OaB&JIOQ0s`wb8fd9B0EAI1sI}=^*t120y_t_4irYW>}svVsJXIV{qI* zdow-ekK%wp-#;sN&Q9{vr&R8ot;nZ+j@&$3SwQ>zLf$`XsCyo82QBlMl+7DqX)Dde zXLz`Lw&DJAT>MqNW-YIOZ2X@NZz~Q2wWA!>Dq6aa+A67Hyo)8-T~HIZWrvbb{RD z)*NA}Az`*Tc_?Ei{@YeE__Jk5dmsaY=!yRY8hO=NGz@li!#dNIP*AzZJGSLEu;L2E$%-Y`839Y}rv* zHiIE6V7|?#7%nDf;y;rt`Zzw#ZLAO^*YV*?@M*45|33JXl`PGaXA{ngo$&Q)yBs$x z|2=2}1}5kBTLNjoCCh~+yois2^&CF0L?T5AX`{wGJWYHnEEBg#V`5Y_nz0oABo~b| z_(G-yRg9n!1Zx5<(t1iD8b0?LHk+;F(+(nklts}4OA9bxzy*beN?tW1WuOVy_l^c{ zSb!@;3BF!)c{8@4A1`e@+v1@W<~h)pV+JMbOA(V(+}ABybB<_D$9>%orM$1(-^G31 zYqmpFR=q>uy04oQ4iw_n?oF{h_)7PK(g>b4iD=a*uWpEH`~g*C)jXvZKhL&wbAz|k zqJxDwZ}9H27Vjqv)9Pq0_!$d8;!vi7=!N#7=xd#MNY=x z#Ss|5p>O>1>_D)ysrqMH{jOknEGc%>mlpl$e3Zo~aQW!!C$+#UF}Z2IqCc~}_%3Z0;ZK0WX!^Rwnh-u-U=O6f#o9jY+KKV31)UZ2E9-haG zz__ekP9hv{tk0`O#>n~Q2wpX)$&K_1$LdjM0_U&JW z8QncDx1(24T^!FFO<)HFhR+IxV>HXWMPXd#Ta$ZF=EN`u2D$h3A=!$T_xn+(uGKep zerS2&S7RTP^~Qg$KXz{!Z@;Q4T?gCPD=^V2E^UvMmz}5l%FFK1UL|GTtCU|!+1RU; zXEeBgw~!z)Z2|4supldwgW^hDj?fr@kU`V8`sO{c$}sA`k7lmQtO_LRU=^PzGf|Q) zd*-ReG!g%*^Q$H>J+49;HXMz3otDBYQ2&=zUEsV4O|V>rSH((9XXChG1+f!Tj>Ha? zzK$OD`b^S5P+9j|bVI>U8n71VslFB#U>2{5|1)5+PR7Gs1-xl33H3la(47f%e-+Kn zoI6BNooFTyGo?Vvwl|3}=e>o74e7E`N%b}>h$#rKkeeDYs{;B(vUkN^%XuHA;);KS9nRS#HF&3V7oW)5+bg!EbZ@j_KB&J1nKjJM!r&l+*9p+x zIv+^zNlX~e{|P_52j4yK;yaV$OuX3fp;&DoMoY=Ka5Q}fnvSk)+_3JNjkfJZ+cp6q zn_2hGy<)AUn`5mP@1hxP_$yy-?C6y3aBPAj3-6mnGIg!%$CDXxM@FJ{A_Q01Yv!oX zK2+%94jOSmH^C)U}?=EaC1bjSw^uY$VuD zu!mqj!4ZN^Jo0?d@bxk-jT~f`on>6wG~37@fd4mr0Eh5DIol{}!M}C(SfeybfPTB| zBm9riv5(*Y;?49kRY9s$n;B<^J=GEV;7Y_sC~90&-uZ^QMFe$G&uti&ZbXc-MuJxe z#JP>OT?FqF93(gncE-H-7ijdj`p)XF&JG$r4?)OBILS{~T0od5{`Y$%pvog53p@qL zr8Gj&M8JYdw-f9k*iWEp3xs76v02C&5IF-PXF%i($edv?XBfy?I->CFxP{zU`b}_7 zd?sm$hY0FU;#QAa;ix+a)x(!->rS3$Ea9atY{VGWHmMOw)kn=-^|n_TRYyPl>9 zy`oqqe=RDW|0h(tAkHVXSeIe0x>&Vv6t7Em7Mdtdl~XmF**6mGLmB?I+gLzOq5woU z^CX|D>gRcM;=xSUK(H5yeN1}c!Er{ZhaitIOF*6nkLjNI`!x}?Uthq1GN(oeY{Fy- zj#FfkMa2>fD@+N5js2^Cb1K#+o6jw0tA{2K=3;RZd3HWF(dgt^J7Zo2^%++;K5NEg z(}gkljwKj#?nD+V;^JgVSAp)bOzyfLtWUbFC1bVCauOXCv$C;rFw++3w2i_rgPFFs zYQLmn0yAocj@n?dM~2BBS)O<+_N5(z=X0mOV<#RBrBvZ*HWdzgvI@teK@Z}*hEcyJ z2YOx}4GKV|8}(1};Ilj$^j(}mQ&;W&Gy4KO`&xGZDr6fdW#oQWjvAlH$Kz`Ga;s+U z<(TxZX(8a<>AC%I_3W%Qcx-3Znq!C_Ko*EPI>7i99L$yBwp@FH@+|RCDe%%|ZK^`b zFavic5|8eR!R@ln6yjkOgI)pS6tt}Fb70R<-5m7HB5_@7rjcgEZ3+mC1~V^ z0sz=wf-K=mJnjaQpRR~DKCsG9Fh?M+ID;L}?%?&Lcgl9fHkZ90TVHlC7A-r@IR>U2 z3$hRs5HSH05A?iF%JZ$5@7xPkq}Hzw!<(};X^z^dVi81QXjKSxBTtehRQe8nVJVOB1{oJv&oCFXGP zU;%K}8a^r!bF32+9sj<|>EObtyF3Ryp zjhjbL^gwG^SX-Ci$1QeN6n+s^?ocI)q{3^GP_Z3egz1TfQHh16RAR9v7b`5}P&_K7 zaE?kTRw>rWKVDNOeX&cOl(Ok=Hfcy=6VVAv{ua0;M_}zfp|?nWzVq_Hsw>d}XcZ>3 z)^ygYj6}r)H4Cz?jQIxr^3zg3mBAQ4H0M4wVR(NCd0Q^1H-C73$*ov!rEJxgr?$a>b*& z#-5QLR)va8*$Wj9tFcZ=yTa7e^Uso|W+nP{Lu9vzK9MA%DK$A%dOB2k@ffYshk|1% zdc~)!(<$J5P~(ABxT2T_9_|3d11@a^r_%QLc5@d_t-c@Y1CjQ2JuFPE{UPhP`WDBs z@N5jmkYfN6&&F7NLN(6JOP>%*A(MPb(l%}(>XJs1LI4@4h>n#p$`*?%qLBNE)FqD< zd)!kfRueH&8eWN%3@u$1RKpeB4`g!ue^gRWPU=BarsAzL6?<|ud)%|A97ODeP^EB5d zL~;N*{hNM07^AnEW6umoK!vT}kwB4*6p4h_?THlM9`MdvE+g#z?h+HchhZ|F(=aD% zqE*!dc)w-{nYHQhu%3%y*ps029PSzfLSaic861{zdiyM-#ccUBcgu$)wfUP++KG{+ z)mleHX{U;qXyHFg3olEwaEQHaajR`4$K218$Ill*!UHe5A^GtRjIk3TeuRL*rHRgo z=Fc*0?Ak}MD>+hUMJ9{?Cx`1Yr}Se+k(f;OcPiz?2;wv*lNw`4+S4@|r9y2Z9~*`p zJ^AU)7E@Q`v_>VYh)F@CZnvpd$2n?s8o063{Pz~klST=Ow|9aVB=@yF8W(7N$H6{F z=~%NcCwMj~pf$1LyImWmXwa(3@L4$SAu}%RLd#vzv*R@_W{Y>6J=kPmt=P3s+7CS zi9d}ubChQ2mtxfR^D|cv#GP%m$r^R2fxexjpv(9Qi*f9WI<__4B>lk@_SGkeV4pd; z7>&jFr5NEbdoki+UptavT!eExSvH#{?q<5Ts$#^WyQZ9$29l=8K+j%=c&IWgmNplx zrkiSN4%s@`8GdP9DWE8#N zWn*$Y<&qepkOw5A?iHzIB&;j*tMW_4-kMaM?)9tWBFw3C5xZ2!IYoKX=e(p1=eX5Ezqv}r8A+1H24`G}Kb~-zcSxyj z$(=`<{Vu#&8_!2%K$Ps)rkMy$BB(b*ZB|}U@GnAXh?{+O}&)23Ml73;Yu;zQ77&` zfFl%s3kQh)yC}S+DEvO?RoV+|;RT)i#*&i^U+#Sz&Ak}^ezyYn@gH_`Y<~q#_s`iB ziyi2U?Wouh+c5`kINyFC5<7fPTkPCs&ed-~QNOT&WhEeFuYJvO;P<$4QpeSA@R-Cn#AbeW8r8bP(S zzGcq}jib9BgXFD5{;~M%oZUykvmYI3Vo5k8GWX`#N73H!iT1fQ4KUM7>&@p?-HKBE z}K0!2V#}v9!6q*oJ5?4?e%!{g^+Pmez*yCgUtp>{w+4`_jj~ zbMM5#(Th}66f>aD7kX8lFP4Q+peXNKN#$jr_zu+J@kL;Qm%ZpLaH#8jZ}sZ<1t^*M zU*t(-=r=R;_d$jZ1motk#~#d;dIuj{=m~YcjI6wPoTU2q@jqZ3Zrk*C$z$-W-xqgU zZ%c6V-B@xbdUJ|9cOv;J67M-PUq`|x$z46?Q;Y**Ax6d1RC4>=Cp&OP1t(N+*b7I! zaL^0Kyl}`1N4&s=Mm>*5*{)!Fgg0$`Jl61CGtPKoL z-r)en!_A;(9kdm`>G)4D16p)IoM}cd%?LB7T?ZZGH_eoNUZDRl#avw+S&D|pMHXL$ zA8=6%chW`rgZ+r4U!CD(GS0J$=L&Ozv+p=@HtihZ%tB1{3O7=C(Op+aDY?o*N+#mP zR}+=;X4Lzr{n#P^El=6+1B@SK*;djkEavE*u; zaXR~~nWXbR#1z~jqfz%exRYdfbS+fX_!ZDlZpAltID?9Zn_Ki*k zQjIXf+D+X@Cc4LKs@u^kS?ubR#WJXPxEa=LFP1?Q%n)a>l4^t**6t`aGf`}W#WKs} z)-tGgxEV&1T>$m`7zRx+L!8A*su5;byQA1XiDFw=ECZ8^Wl-^OGmIG}ie=CQGsIb} zq#9v{(PXM)f@Ggr?EgrgCPikOMUM8fr3EQl%An%mW>~Ymr3{*2hB#X)sYaM#?T(h_ zCW;NP*hwjiWl-^OGpyNOEQ2PPA zFjzUay5}6~7s>kE=n%>J+~^6(+Gn!r+0zA*@3|3p$@<&~wPby61lJ{;nV59Bh4Z6s zgmc9u)^Mm6@!~5nNKj+g=s6kUi-3+o*7m_c2HeC^VnXy81_pxTGwI?bgEJ8{$>2=H zNiz8CLLKZFOZE|f^8;xvhL3T~1(r(zk2bSk!xNT(vbi@YylCBaSJ zpTjRfUOi{~l;`;M>cbrfKX-FBx$o#4y?@&Edj?!`;yMydF2~5yQ_?#ITy^4Y*IaeF z8740HSF28(GLN?ya^3*&qUv#B$-=)3Tu|1imzG}T(h>=w)`F^=GzGXKhIOFo=Yf5$ zgC*WPsKFtA6Z`y3;hbULIbXgz_`md?z(AQMPr<2T=dFZYE%BY(ktN9Ymszbfy*!oD zBf5sS0RClG3nctyRtw=d<*Zg#zi(25WGYs!e*3isq{3|-iVs6f4cN*V>_t6L4(C=a zNOyaxv4jZ2N)d+DdYPcvz7)Wq4IkIL@@}iYweQrcpviALD z!YNB}alyu^Mq@(53ZY?TDjG5Or%3HI1?F=49G+*SBBK;r6V?_}`q(DVhBmY~$)$ z6yxFD!&&2SCkOr^AEz;#!tml*PHuYPUu5(3RsrKvJA=lIKjQyJ5O);dAL6Ao-Q16z zm&hNMY?f5+No0!RHsZgXMGj093Cm;(Pg#LkB`cn{3e>V!V#eF3%zKH-z>>{sp%7cW zbbHPFVMnH_6AEM%zLiut6ut+4Tu+@=H4-rtUSQFcgzX-R>V1>k)wNQ3tH2tmsy*XR zsQ!Ue)i<&R8d=}6w<2+WZ>Zb)qbh|w!>}N|%ch`WNASnpylGWmLe#FCgusU@03NIC zs&Q6c-YO8gyGG9V1dRm)X~wb9N;lTXDon=}GwJqLpR4MRdi% z-}4}qIw6e{K{)<%GcFMe7EEoD`%j}m|J3c#VD8jC(V%bY{%A0B>JhmF7_a3{PMo8E z2Ab7*IybhbtR;r~$YI7~xQLv`Is0Y7)sD+A--3AzHx<9f3SB8t`<3pIsM)3aCF&&- zwNL30iRvxwMD~skFeH_$09?l)$y_B&qi;*hRYdtEDzdE%o-=hcqbxIZG4xJq$TSr> zsTdX6R*b7DeNvY}@8mL6iT?ine zZ+^UCex2|BUQ->UE&>DcXecf-ABBeraD#ow&l}FOVaLVR9zTdUFqU2VEq|;}X<>TI z%S*ob-3P)KWHIgns8B-2U63^pf5gSvRDN)$uinOIQ^M}w$-3MPxCl=mPl)Lu=P@9kx5qQ=K+d`0AJ7gP17AAq8 z;*mnRYn~@et@}-ezF|A7JOrQU5977a!@yoRpgfR(ITiBO%e>NUcrU5+16+t++QEVi3?!~Xy_O{K#Vy81()=Cf!3m)24`_0$U3#lQzH=2wR!otM-i~Azr}D0%i?KE>S}*un+MM7|e6aZkw+d4#i>E}% zX}MjgtOU2Y)DwnyfrKjJBg>+SHbW;_swhFUA8Dd>BW8lGZZ(Waif)yNm5ovby6?ud zGeETH2`7SQn+P681b0(EJ1#eyGA^<`hWNYCCfh`r7U}p}ED`ANgd`_WnvI16`<+CO zzG{=%9J|a~f@+Cp{2RzyNzFmv*OD5I_PGz4%^9GFGT-!z(l^!k%z)`%L4P79f!h>G zh`|&|%r7$M{XiIXVCq8c=-XkkqGG}ITG;`Gwq7&QDLNQUj=S?a;csEdQW(u_>;$vi zA&xeF6Z+WIG%EsIWJO3c%WiW7t#+UX>smc)H;YB->knOgrBqpt#Fd~ zsU{nVdn*zPaY@(s-y*r~czN>pJ9u|+%30h)I=!=&IT&XcOZGuyn`bT6qvbvn&!iQGW^c4GV1br8(^5B&1XTNFw^DowA;fI`6=VE8oSbszzs zGT>g$XwT4LV!}j%*?u;?BDv|#M!VYUY^tl3wg&#IZs5wU8aU?ZP7EYR-N~2b%+Cmn z`Y2{yt-07Sh`$J%lN~1G_8%uZ@GikKX9uEzC&kY)2iTDD&l(wBo)mxU?_AX8U4n|* zeDO_D``>!jS~s=XJWNU5%{vV$+gkFXZpnXiMb`4aO-0uIknq+YfTHo;u&EK+(~xQ> zfg@T2Sn|$mo<9?T+2}jb=+7$AwkE%%oBZppnq2lbF5>Z;XGOf9B#8GnJ!^?cJl6k< z&iZ#tFk5}s>-siyRo}sXor*-`L5|ihfI4v=Zg3Lj@3oIb7)~U5N*K1~HfLM9)ULL6 zH0yT667A3@TzumA{=L6*g>-C!_joi;s+Pq_U^piN=A0&tVy#qdM6rPJoH)l+KV04 z>uCHF$b=_dYGJni&67NjbPS)b8A~4p0nGP?PP;y2dDiJ>Tb+DXoua5%pW(KeksS7# ztxMFbUT=8l8h&J};Vi3$&i5WQubc+{L_~3kJL?>@)%kL({~#_^y$LU|ReqzZ@_*>6 z^3Q>{O!Ssom0$7M>&srBb^emA&R2I?XI8x52wTmmR_thhp{tr7hj^Mb|FTtcyfx6Fpe3ykRDDpz%&0LwP6!CPGB7W{t#M51h`FO7? zC6lE@Qk5c}u2RI$U5a?ROEDk+Ri*S{DJ`i=5l>es;^!_!Jl&<3j|Zz#e9k`NOy>ha z6Z7R^RYEq~;ZM~L@pQFA{M_vjPj@@amy1;?xhy4+sub~bl_GxbQpD3;iuv-fDy1Jw zsYq3dc)CgvKX)nOX)A^L$o6$j1Pc{VOLDg2*RVq+v2RNHBKLR8T_c8JOemA7_hmfF z$y5t$J&<#AgqC75Wz^4SZb>ptJk(lvfYTw!aNA{=!4C1YOD?lo>B>sn3Y*MIoC=YW zmAEwynUyJ?%qrr_O59df;M-JT`~W*WyzydqyD#jF^2mCF6)o~D{Rg_FdttA z(8n6?`_D=rh|z~pzbd7OP-Dn)i(ODm{pyewdUCkz{C!k;?GQdLGHp6egA7nRPNQk@|*Bq)NLH zscVYkD6ztOY?}^(mdi+nn#kFoX?~Y zS5k3XNyTYPYVtUfwz!gt+e#`1Fodv zwvvj|mek}$CarKK6}OdCoGPh{>n_D6m#N6lhrKIB-fKxJMg9RMGOdsFh9chun_61? zyQH<#oTR1n%AT=j^0Y=6lpi62L5cdo6vWe>xHz~|iE_{9BM$yliF>Y@C9%n&Dsj)X zup~BlR3+}I#+9Tdo2sNeSFe)TWK@;7=c-f^o2;r5_grndn6 zBi5nCRR?j~>R_@B;&!dtBv+G5n5*BFtGI2snoPmC0asjc+v1u$z_=BzxZ+lET_pd3 zjpR$Z(N7!xDwTdJ#?Y~q3MoDsHs?U|``X7EXg=37ju5RR?C`ZDb|8bN9!femLCHZ% zo#WsF6)&ZFad3c&mr|2RJd^q=UMi&_(M-~-Xekwh#52jR;-%CD63-;LikDLCUF80? zjod%8lUpyp55YB0j-AP3CJ@P1F^7z?)W!NMz>xstGW_)76Iu^?U%@iLJiUM=FKaRQ${ z!^OkIjKuMamx&c`M663B~X`Kt32)}Ek1h{a@fQSURFw1}z32@*S-ni0LR*_&G z?N=p>ahG2LT&QL~0SRy-oC$GxsB^KBT<7LgE&Ga7U1+(RC+h*cCv?aDVbN`mryb;(tTnh-874I#?=AOIoki~`o08plxh}e z%&`}5PT+Z>xz(~Xk#ui@Ipj76SXINI;iP-q)qhQ|=+FAE$-@>^|1~_Al(-e)J=K*} zZ$<$e$|Y_?=&W=M73PIGOsM*n?9$Kbz5>t=Ri8^P+g9pcUFtS>skfk1d*{i$Z*-nB z!Pe)p^R($hL2JIC{26@>#j~z^Qc}(~q?AaCQpC?)ig>z9F~`EHl$3K7DWxSvDdOiYMLgZ5n4@Y{N~)O- z3bAkNnE0~o?Z}EgquDoj64){a=ci&_Qs1T z!rUiaqZSTRh_ETW?yXUmxS~1s*`2hm)@mKxcJX8|1{)AA-6l2cfZ$hM;Fdqb?({t+Dz-vxmH~OK~tI!R#Sj{7*Gq>*_efZFL;t)Ls5(?+FEk zCR4N2h^tg_TcwKAR;tOqOxof~DsC&OIBiKyMn%$|_G}K8WRZSXk>a+B6sN67llho5 z;7TfPE2%hbNli9m(h65naa&2nsgk-FiW|ILG1M@;+7hqE?rhgxlf@({x+TQ}43Kpf zt}epyXTBaL{mUS=+L=Cni1IIZGx zj(rpok}#5|5UV;!%m53@}7#9QrAd4lkZf#lxoGrbKLw+5Jg|#bqgMQ za%^}%j7Vz3`y~)YX^yMACXv+*k^gHg{+BwMBw^S}SC~l#hDBUqCh8g1;tDg-jWF97 z%YkAh^ShFnXk}Qy6=tH6VHH-G3w_+zcBAiCVD$Lka8D^|^358VVhU?wo0N8Q=ZJQ5 zmx%VyvP%qktNt5zy*5t8vvEfsJ!>~K+b?6YeV@nmcf6;V%l8!J;lu@bbBeiX@(-Lf&)?c0g^-9+=r#KdcfyK21qV{ab*5O)uFn_`C# zzfQ~c*xtkM(y}qO|L|MbalylhZ*~lg9qyRmkL~T47KrV)9!}gn<&K>#UF_}79mkbs)rMA1!p84PULM1>fuCQ53h-U7ZP(5FC>IV{wPx(ON*Pp<V3rf^D6i_B8bYD5u3jAKl3tT1IlsK@B;NP;zu2?!t&&W@$W%T_55MPFQ4LJ z#ILxE%ZN5S+>se=czh9XYZfRQ3(KVE=I* zZ@nruo_|T!(J@KMFuwC3rYlDMnjH2BpQan%384En>Yv0X7I616>c4A11=gMP8sGkB zW@Ns#&N~e7{;q6=oy0@VC)IsGm*b_}y=z(s;<)+k@_u-Aeearff@9`$y(f9~8{&ic zYA!E>!n7yA%|TWQUcr*8kTPgfXCm?Ft{Cj9J5z{QOO=P zOkaiq9(bb~JX~|RdgwQ3?F&5q zHeYN<*{;}|chAHGp*~A`}tt~{#6~e@)~PyKqYE!KzZk*JS8vB zVAAh?g}VYQkcy+b5gVb^6*DZKj3>11 zIr6D^GfNk}nXBI-x+UD@SweXwL@HN&0q@9F+}%~QJGoR@=DM;Jx60BITwe7?;ay2N zsQaV0sIIwQ5$oDE67k2ZUyb^eROGEy_#XG45K012;DsOj<``sJEpOajVx2Y+ua{SH|PG3@P|~ z0IegR!f33?mc8P~GTIiExQTu*xjIOFUGeE}lP2 zT2_@Sf?+RLJi2S_8R=nFsK}JPQ1P%D>y)%BOiexiENN<1qF*;ec8ll}Ng`?+uyNQH z2pG8&@Gnj$7!y!BeJD7VqE~#nI-Qc4mri&;Zn=d~IEHY+7=K&AskD8pKZYwg&DiVdJ4sAB1S5@5-Ay4+6Gpq*Mq1`MMiX{Vo$DSk9!uCqX>Y`QS4Gp zryTskl!Ga!*W;u{teeUIHHpbpKeR#jLwTwDAu{GL;nh)N+H&1}l5nEt!lb?l%r%V6 zHfl_q0||yvZe%Gx}*~77$Bjzv{7=sm}V0i7Buhd0=$KVWEWKuJW%o`^f=CzEMj23H>vt?ENs&l+-JZytxy@THBkca}5)-_KY4C0a+NQxu zckb5=A+t7Nh&g^e7sIe8LFqY3y2;?MjQ5;A3u!T1KF!_oAxUliCX{w!3BhWuBcilZ zMNG8tpQVMDC0aPd-nO{aHj-oR=gH&eiy*amDJyJ9e!K%?>_mtkAz*N6qI078*Ht!l z?W5Rr7r0MnMJ9{?Cx`2@2II$!A~C)1?^Mc(5yWXsCN;*8w5Mw_qS@@TM;nG6J$bi_ zG%6R-vJno!no?Kfv_>VYh)F@CZnvpd$2n?s8o063{Pz~klST=Ow|9aVB=@yF8W(7N z$H6{F=^XIu37$;~Xicp6IJ$Os-yJvSbKk=~zzP0%4dSL{gg8iWv-C)6W$vhSBdXK3 zlYnv6(wyqP)T*4s)=LNLTy&Qd$*V#(La$3Ip!@FBNzW1H%1UoWF}vw$Vj9;MkD^(xjEd!*Sossn>?70Vjn zVdl}6-_uD>LV$X-v}FzjQG{D7?l)&Nj~wAvc)zcN(zhm*<4~t;5G$uWqp`CLGdP9D zWE8#Nr8q-PV_f_#8FjBnB_m2C?d{F+OqAMnyaClktAtsaK@GR4@-~FJEVqUlB+{? zGehClJmzZC;~DW=GOb1UjP}LYQ+EU6PJOp@e zz zCPE${LS|`%+}veuqq@uudmdfnR-6)HyJ~VPCgBl@sei=l5>wy6D^gS6#!Ed@6&dHp zPUL@p{~`QOAl8hR5o^Zlh&AIa#G1j=BDsN*Xyfgx_C^~=uG$}Myl&OuXyc$&CyBKA zrAW69|7QHRL>tP>_eL8^%J)Ybipvj28^)HOj5baO5gVs~h>a6L#Kv(TBGFxrkTriq z$eK40vgU1sta&dL%7u~V+}jmGD&};BkoosBBud1uC*n5~@$!vlWhFyWlCi4Gau%d2 zC)P1-5B~e{KZ1X!AZ2W{VS2}&Xv36_526hdI}Sw~#&w*C?U;M$ve=t*4__90ZSIlF zVzIfOT!!aMqId%2H9Q9PRxGa!&G(jri@oLGVsAOP*jv6mHtKH8zlC>e{vCF==HI-# z75~Owy4#xHHL7}iP$r^3TzO(xU4$Y`4RV4b76 zjd2xwk)NcIiiZ@_fJ=lkELI@BL5S3<5j z;~CA-hObYSkw3u5|E6!YQQ7PP*y=Iz4;lFVvC&>Quu0<^a0tW02HRAsY z{u}Y%hW{@7!3|{x@yGLg`+dfeC!tokN-{o(CwcMblf1r3et^;ffIRx$&&P9pRUY~- z@DzY0BKSAqkBm#V2_=oTea@Hh2Kq=m%&dQ@7asot7fXGQt?zT_Yi67(@s?mWn(1bLoMVnCax>e_L}#S#4X zAbBQ>yYS<2MyZD&k1$IBnsS!6Euf)LtfjpYv+(Vx6-2_Ws9f5~)JLYyQo6#fdy*0; z8FeIZtCOTON^3aM*cDu7Qi3iDv4ox{xA#?ZveDcD(Pr7gOhv^1d_9hr-n!yAJO=@5TGh zgXDeZ%deEE{qeptqvpuNxHxtpQTyV3XGYDy1G%mZB}wHf0LM!unX3dmyv*9Tis0L~ ztd6Y=%CuwAw9J>f7k@uZzIrUWEM^<2NkHrsQeNYXv&Wy zC$HF&(`hAFfr;cQ5XqDI$@adpxrS@cScE;1FNHkOE)j0stVZmoH}KOGISZ@acjlo~ zy#&jnNwURezVAGe?>i6T`_4Id-#J6xcdo%+BFGQF8ocj}4K~O7&caA!At-=>!ZwU7 z3()oAdqa1`_an=aGEhc@W=s&f)vc8S=jK4Se7E z26^B42EOln!~fL#&d}lNedlByo){o~i0;>+PR2=vIkX*(g<@ z`)-A3k!L4@ZSOmGuLkV6+-x337TGr6cTUJQF{DM>{=RcUk`pLRyzi`K_U|X#WR~wc zCuG(VR7j>4PxF0eNR4{m*_0ZMc6r}f&^CN|@h4di0{e5R?3tEBt`>g}z&)sPwG2eFv ziG{eN>nY!NE(uP-7jm2^8-uYUWDH)w=O+h`<@1w+i~0N{Hm_idZug1e@H2Tw;Rd3sBhiN2A8t0H4I>|J2eaPZ))Wjk*0mUQk@SYvw9qG8Ld*M~ z&&odjPe$Zu>H>E!vgrmdRi#_ z7CsXmzr669!Fw#W_vCvZ3Q*gCf17{a&(RBGv3n*I z+L5)ss*2cgmi4%l^|+MvILkWDvL2VR9%os{rK~cutjT6sMP^ySL|It8YVaLdYZ&z> z1;rm6S({mPZ77@;S~kuzKJ2CGgE<ff1k+o@6LyX_0&1OX7cV1e2w2X$uPsV1FXVc!tsX|+qK7t_RZi$shc7*WA+3D|V~{p^t-g zit3_1VVt@@VuC534cE5Md_cK%yKoEMOee+1P8fylH64bN$RW6q5(o! zv*w6t5~~WlD1LMJJ7ckj-!@|Z_3$SU^l@zwOpgyV)xIQqq@L>Y zL`huu1UdG?Z6yyD|ne9rdR z)`~Y{Tj%VLHQlo-)^y*&*v@<2jP1N{M|Ah}oA>pK?tb9rP1s_Zeqblq<-i7#7XQiq z=&swndty5d|0#B|BT5H9V}Bc;enZDLV0_)?omUTHd#i4h8Z^w$-x>u#F7xx_Ben;R zG^XLjK44f?4sLv7`eueAYbY~3XY03Z6Q2X#pskc1c)a+r9D zEnL(m51^Qe@O>!4>!EUlgFgr!Y3N!bgu>oi?HU1*y;awwPzi`<(+G%`RyDXwl>m)! zt6d`?datVfsZ|0r!mUapWK$!Qi$=ItG{XIP1?P;6>;_0m!B*Wyj1_U~hPUcL2qw@t z(L>-5EwAwbiGo45s0yZ>vMN|{3#+tUODi8VuD_TRPHzu|548Q0jRoR;PzT3GR~PGD zs=w_{=FD!k1zdt|wimkD4tBHDY_@Jz^{t(e4XvtY{kJcnXI=PEpVU3;TF%wk<=T2y zr6P5Y`koR>EOSDQkA}J}7=Uw61?W~`g&MCZ80A68)08pkS=px+&^8L+fu4-AJ7rI* zJ5lONcA~y{t08DUqrR7Lw5ZKtUtT_Jw5yLR3Xk)!kDCx4n?Vb^qeLfnEfd(eI*8ba zJcf~Ne9fNj2F7)>cF_3UI1hWfF~;wZ#LnF8?gmO4N0%2go*(Bymp8_E9tptVL<4no zO#ym68tC?DsDAJ1=&q6M_eMTB3|-(z_Io3rOh(KZ^>Mcgmp6Eg`u_$eIQlq@h-R4d zyOOn%UXEk|8ZA=nB`K<=o~_=C1ra4^xs0l$13z`oH5w9hD(&d%u#Bt6LLZ{P!gVQr z8HLI%Ddl-{VsBRC_L7I+G=#Z1o>aZgzi1SZ-yOY9+T1as^MA@-2VKo*=&0S&)nFKh z9-l|*YYO%dY$p$+7um~RB)0eP4s;-|f~V8w{TC3KR&`wh(;S%W?qwxRPSoJHDGRH= zC^P$u3xSbPUDW@zY17x5ath^!{psJKCAO~MGMC_(av};X+b$#skuiwqwOqGIAXG*p zqTnuaDt90#q0PI-j=PaiBzF*FQti4TX<1`h)nm5GpA9WcEMxRZHFOHB+b|ygNf+vQ zy?Z}G>E|^-dJk_5f$Z@k01pO7a_Rv0_;X=2tgiKsZ9TAu7p=sa4jhR!9O#S&Z#kew zOV~^}z|DjM*i7hOjYB~FAKq*Pj>LLZ4VpM&V{!Q1JD2BOiOEmDx=+(48l$&OH161i zJqlRgFAi^LyQO$}Km79^o49<~Um;4dF?wsUamP+Xfi+$n&YBp$a$-0yZ({fX56F@^ zap<;*Lw8La`hF<Z1iSdnV1DZLnDZZA%0%{u%}Y)1z^ zG?>?BUhDYS79-YiTw)Bc#kjp=tu4mLj#nhc5L=AvIyTv2 z4C>g1x{St!K@Z`$J1X=QuPtuM8kJmOkCL)VB?IhHQr4+th&@WGN-e1ctx>PLRkyUbqJxUia+p$hnHG7mUs%DSUMb+$4lB$NGna_Ni zoBUSC2meCYRW#~C*rHr8ZF_7p_6?)hB`hp!!fC;+P?@=-*{|h}$ICd7rrg*& zGg@NnXSByg&4|Q?&1jCjGaW@wN72(!^z;p}lc?NDR<4GXt3l;E$V}&!;#qwrsiEW;a(x;>J=_q~rR^+oEf7Gvr^{YYspheIE zT)@zQeT|N7xD@Hp3#zWgT}Y3PX}c%-^_p9ndqrms9@kYx)tj38=IoR#}{2p z&j>tk85*Ir3Dz5jBI8@W(ZFzTCHsYT^u|R)+i5)pYjEhXSkpIfG#U#u1@vrzXW7se zTH~-z9vY8r{RWPtKEB8=W0S%>PO7ncj!Cs2usE*(5Crfqp`*sA=8f2;LlVIoVoB*X)3|Vr{Iijn`sxEue%gLug4c<`~Dm>fLr#} zbe}J<8CUc0nwqan4O;S3yzIHW)$lJ~_EO#|m^~a{VgdesS%$|MTcm0q8Bx0qC8}tNMHHTt4cm(<9TF4@|~^^amz4>2WBm_?qy6$y>#Z=M*16dH|LF zR$AK$j-ed)sMJ=H8iU%3;)oN;tg<-1gojmF$#C(oN-MclJQBsF9&b7d<+#vMD86}f z7AhY0LdC;gsCZa~M!;!k>vvmVLg$r!g#$cCq2gg7wPZjaccJ28FH}72g^GtNG--^; ziy}Ejta{{sinflf@VlbVKRnxGzWx{k_Qe=5Y3#>w8)R_-J`Qn>0%QF!D(qACk&Fhp z-F1r5U=Buy85kWVjS87NBz?iOPWSjQmW}bEx9nIC#)gqbw5WI^^xcjv?R{~Kdhj9{f(;insDI-IIo;X8!V zONCW0?S3}fL>#b%t^@;E2eyDBaKW*KP86NBVKMKNJ6n3f zp$C2y{}>-V^)zco(pTbZkW`HetoJ>w@xUqj|1Ns?|HbjN>I68#PRB<@=pH#7PS^bp zy|H>S3%xA8y}B2I9Rp~5lZoDz{u!z>!qAz1TSd>7|7G0lR&hzH&8^V>&y1S`cd1qV ztuOeXh&pq|4#LPT+#FgOsk$;0&Zr*l#fA_LLVPtdv@GWvbYY!*+S=A7Pj-lOg_f1) zW%45RKq$PecsVw~!^d94m=ODaeOu>adj0}G;poiiGtlE%8maC*ZbZ}AWyN_FZ5d<3 zFhX_r<`sCxhW`jN-!o$43!Y0*KJxT;=4=>%X=^hoGO#$DUevj+IK2@YLz(zA`}>c2 zJhh{Gd8#geH;y^=s@@k0V__f^ZbbD0Gw|tKsB_RYNUszCVCSI6ueLeio+nrzCS1%9(BjltGr7$R?i9dz4u112hZbr2bH2p|1}AqI9#}{ zC_L)=(9+JTFNLqJYwIQ20C|^1RNRrJv(~`NK@acq|?Y&&Ukn z9o;M(scCKdr;g5|W&N%Xg+FckFJ&puD+q<}&$~Gk#_@tsctKu>NDqFEU-SvSL(8i2 zP|XE-xvGxgoTdU$Cj3#NcESH<^+MrM%|+pUUqE5iy?bgL z;&8t~WXFlOZJKxK?BL>Ep7x2$|H0GV*%^E}oxauW#bKmHHLy(?^`V^jm5869Hr$^o zx|&`%X2nN&F@gJ@To`~ZcO4w{=9iZZ`0(g!^!c$|7QlHP*A|Vzxkmpz*|3GU+M z_vbxi_(uNMk25?)b$cU5en-$KX`emTsC;*aQF0XD*}bu2cF=gJ?PFtM|EWL0cBe6S zLpH#h*@$#}JG=+giudu?V9z;(j1VyUo!Q3hSAs@<3lg`zYE0T-`1K>|L#9zps9CnGkn+Gg#wUz zi&4@#+c?lP+bG`+a|ix=k+f_(0es3o#s7qn|MqO7aRah@YqnAPb}?FAN-W&{X5Fsz z>Ms~Rg$*OW(eNn*p;9IeeI{mo3Wvp*4HIV=#1QpsgGSakR6c850Jgua1-+{N9ee@? z$PaHJOZ&qIji0|e_o~jdn6xf9L@vuGm-+E^jKq)s6}qaT<;6QZMaxTe1ST%8-@$BJ z-$V9oO(v9mLY~Htb*xl&0Gt{6yNsBBe#b>*&0fJCDafvq^+)@Ftq9Y(579X3!6jBO7i>% zjqPHUprp312+``T}1<5&FF;*d~k6CjoS%~daBf-7Zu%no}vpk1{WVwA%B9W zJ>-?((1vj%Hg-m;1{9;C^B0GY2Rj>!haN-Ai;OXEhtfBWy{&m}YcVKvX{X5O|XOlGBLa^ z+-qz&4c}9yg`0zmTae!(bf1tIcwN9RHWvjKABFRa#?tS>`*vC%y;@`b0JR_+_7Lt!ub!Q|qRd3mcaKK_46Cz}ReK;X36GF6(7a zTDxfOMaFj)f%HawIbhqJ(h93M;z^ZKyU6&?-H4*<2uBedpvWtv*ZfBSg z~3i?QLBV0c|{@g9$-ebM5bgu#XnE*lr#f@%lrqKoSq76S{5kil*- z>P{>+>Muo(*pILE)E$G1tQcIpmhQ1bcY+CnozbeRWl$R40wxR&-5$Jctubb8dSu*f zo9DK%pYpSg{FG%w>+Q_<(F@ZfolRnWsdWvD+AbjW(l)h@XlmGb*@f%K zY{A>sfjqFFF90%|DS8{0Zmfdb%TD0R|iL`2*ghYm*k7>sBSBz>LH$1UA% z)RProSOPFEeS2q9a53i1i#(4UjCX?H*sNVJgD){cdL-DnUN!2F#f~Io1Iy{9D?xtj z9Q4&3jQa=OdpY4kfw=+)2&@wLIe`TN#|tbL_--y!wFqpyg7!VIJ34rASmVjgmgLa& zw(}*OgVHcU46qyVhr;iFccP41r(-ORd5q25-+B{#R-h&R>1(Y3amW8pu z+di{arqYHYQ{`K2YIHR}6z*I0Q9AFb8vY2PFUuGRSN!=t2lbkVIj`%#eF$a-m~31T z3cuR=i=%()d@&Pj3I~gr7Qc5X2K}_T#_EamKUe9E`Xx*TRg9+J{&)1e?Y*j8X8P-1 z`;Z0h`@8ME>I0#0|A!eE&UsvnwVWXogobVk)$M8tEk5qSxPETGPTtz?$3*LQT{i~7(XGYXIke;*r*GIE)tu4|%xBj}0tT^d?GA+vQ5 z>hfYfYl>W+KrX=31rnpFs<&$KZysiK-7V(a1yk17MtVK1k=}pmg#FjBBVvBslOL!1 zqwBq%c;R@3VYu(ZbTB@4V#572!%HS5+#4`kj(e^6H!}QCQ6jvE;d?CiEttc_H(TzV zsCPVSxsTEPoaJs{`e!WnV%Fy=%Y98D-1U}w8N;hA_l?)VeXr%-ITY>^%Y6&oV=eb! z#xJzoMI#tqoM=z{28LVi#lzsvv)pBDf41cgGC!~7ZeV_gCM5E^k@(nSxqm$v?#-6_ zVTMO7_tW`sKWDki*#2iM_cg@dQ8g?{yxdnfBxWx0Pq_q~>TF!51hxsS2FV=ea&n17+=zJ>gF z=qri#{ZiU*x#OQ>d`q4lWBz%T`)Tr9w&nf->F2fF_t1Ul&P4vl$d7w0_YYXV&6fM8 z%r9!W9}|AExmllQEVtnMDa+kJ{MTFVAnRLYxwF{*doA}bS-%p?E%+R3xnE#-q2)eC zcb?_Gfc43?-1iNF+iSURWcVSAe|oWgdn~u;v(1+K1@cGKayK!*=PY*-%YVjlFJt~s zS?&vnzk2O<_gDYd+|pl!`~Cznj`4ieWOR5xr9Ipb8oB{}-BDX#SET#8276zZjtA)0 zx9+VmJGvQ2ZFY2DVouKWGu=O(ybAqOyI1|b}o;GfV;n?eR=4TP~FZGq2=B{ z@pA9t*3xgW-_5wDFpUG8xro9UcE-butK2Z=DOZ(b(03#a_Srvf`$Ug~)EFw9^NTBO z_<3Q4;HOV>?F%ieI|m21c#NfcZ;N*de!_hpvB!V0HjQHn@4C?P@%f>2EIKpx`J;5~ z_3PdIt=oG$>eE`826}~auAx0T=_JP_Ik3N2fr6#7@BNipOt*%6>ot9r#%=Veprc3h z`Nc(~&lAWNL>Y->{J}aLRz;sn=$TBP>8xXZMj*T!4mcH`qOZs+vnO!1+{ziqdN!s(ngU6ypjvn5BCa%1HR6j956sA zypH09T?QY7pPMq+hdI%g0k3xEjJc4O{!cL#7X5z*Uce+k809bE&mRMkBmJe4!wxI+ zL2Vw?{=d@hi#}1|cYCjr_#bNjTeZ87Hb=dq;+1RjDQ!Nl%|>m$rOiFsyncsD_f2j7 zyEgY|bJDvi{CnD5ug#0zQ~o8|d`g?|Xfv-xh0oRIZ?x&zsr+x!W~Da&TAR;lvqPI- z*rnpvYx8Ao_TH`hL)u)S&2`$md5;QzM4M~0c|x0G_p0!3YjdMEuiB^lAJpb*ZF>Hs z{BPD~l{SB)&Gp*MZdLK_*5*^%++v!VzPWJ~uS%QGYjd=w_iSx`SDUM~`MNeeM^*ZK zZ5C^DrZykZ=00r}9#ipawHei>=eY7;sOz;aUGZ5&n?KU#z1keD%|mG_-fC?=rOgMm z`4w$uYco@uuk=#szOBvC+Vp7izdb7aAGKMl&6(P~N}IbnRlOh4W}!CQJCuJ^o8Q*v zOl=O(=8=;s-b>n?ug#mZ`N|0u{%vgz*XFyQD*qpAvs{}#ZN9GY`J^_BwK+uN*VIg- z&R6aH(fcaDT5ZnJW=NZlX!-VO_Z8Y~*ZgvxcAwC0Gymb*-*jhwtjZa7K$%}Ss7y2b z<`0#7!FFYqX!ot!ZN}TxuG4>{%pux*UHh-p?yu@}CEyU(eX@o$9W2mru$OeKGXe{PQO{F`%u?&l*UIu$IsUB{$0oWs;k_C+I>Wa_tx|? z%emCVuQsEu^s}}9LT#GqDqZoKHQwiHvqYD-PrJXZO*8$ET<)iId^7xcSNM_rif(z@ zzqc#=dm8_YtzpUH$zK*v|`~SB#%U$VC=<@4zy{~Z9f1e9q zkGHA%FU(MM|7&e-)Mlj)H|zDJ=8sk_M_aUMhClIv%I}9d-7j=L>$LlM?S9FX?{_u* z|5}@OYx5axmTU9Jy8H*V`(2%1m3IH5cHg1hPiXf7?OvkIFKhE&ZC2`dW;-f%JN{kQ zbE7u*XtP6`wYomzwRycZ`)PBb&gUZS_G|YFjkmY7UU}ElL)yGl=RZov|Cx4|YPVU> z;o9G?&1ZGKFKhEFCO)+J1znFXXm_c0S820Q``@ke8=~EQZCMO)u;4;m81OJ&T;ilWK(^qDzd}_5Bxm3BEwb`Q0c5QktQ{g^s`n6f0&44y1 zX|qC`mD;S;<_c}D)aGh!Mzq7*Uz-Km z3}|zbHY>DQsm)q#uF&R6ZLZd4M4QdpY|&=BHa!}DleAfD;?pFEHhtQEMHk_&=$=Xc zqUbv55=DP^c$aRT!vgWK8%h8)f|m$@K#vF5!xk%n2fKY9AAz5sfFM9HiJ*d@lAxAg z1;I*!)dUfOW`Y)ib^_o5`4IpUNJfCRA~HcUK?^}Ufd~6W9v^|9pnxDiFo~doppu}L zU=Su*d2HH5$Z;t}BybQ2<9i0S$ zCV&Wm=M_2$RuB}t1~7?W^%j7NtpNUQ04sL_1a=eb1*jCj&G<_0qgS>9RD1xi@&LeU zf(SvNoi>7Y0^djUBd8$o@dCWn1c5^U5rV*BfQlmkzE1!O2qqEujso}z3dD8{wg5o| zLCbM~+D`#i@VVB4lK{;Gl^p=SPJq<}D|kmrK{`Nypn{;5U?o9>poL&k20(!4#0qj~ zBUsHN3C&jmOyZN3l>{pYYW)Baf);{F*AV0ZR1nk-0%#|Qe2&g*0ag;MCWsI;6BO`j zg8;!KfV2wQDhXB+v=jIS0~FK%tgZ!UCTJ({*8xl-Sn;2~23EB@4940sd z;Qs_*5<#ulj>1-X9AGs;#is!6Cje?Y09tybA-^;Lzkqbwya4S4kqm$qf)(e{kHB+2 zfd2x306}FRfLa3oMF0f^0fGvG)nYSXTS*WhXd&?U0Q>|i2v!p`6RgallORG+c`?By z0L|I-%K->n3Q+MhoqjCv*4_!wOyHkHFd4w}6@V6k)pyZ3g`fj3-&wFD~&RuXuc0Q>}# z#P&+MCv7Ewr=7s}D!}Ru01<*_0?$SOAAz4BLQwD~KrKP!ZGe?K2;L*u3D8X7*#+Pu zSg{A7ouFVZfM*|opP(WQTQQaC0PO^x41ijK73Tr?&Ij;k0<0uheE~p0Z-Bss01<-b zJ^+*Y0#sZC&_d8|095(_YO?@57X$b%0a!t>G8@3315j`&z-ofXWdMO(fJv7FG!wL3 z0Z@UR2~Q=qdpw^006y#kc~%mvz8WCl2bgpXKnp?p0D#(o04wqU{Mgj<6kz8LItQQ` zdw!k@Y;<}mv0Lf!V2jcdz&@WRLePR8Q%?o94L!A3+xK{|3E=T#m)5hAAcFl{PXL>! zo(k+Vds+xQBLQj&R^9~Q|2#n8W`GDm%PjyEw*ve>_TB_c^0TZL{by#ffPs_(5|#u1 z07)ifrl)%LX_8Q#nMpDvGgFzFBuECks=KOZnsiqcUEP@(#m7QraWC)HgFA(w2qKgq zs~{yRf?lt6j~gIf3y*L(&pAS=sEB&Jzu&w3x2~S9YXI8K;gxJQUNd^1a|^jgw8=gcnDB94CoOCcL7Rw6Ye2P2wnnc5jyt* z!utUIqhybfJq{=q0j>K1g%f}tVQ>-QXbYUjulxl-gV6p?K%X%D zKAOD-P<$;Q|2jbUdO(NJ`hGy^2LQz%1oR2r9|E+07|{9=K=7kv31J)1Clr4SkpDjb zx&IRo{5YURDE$PW@Sg$sHvqbX_D=#DKLsfLG+;nz{0t!YSwNSN|2aVJ=K({);EjM% z2T*tuAp8YD?#+NUq45?#@fQJwUjp<9#kT?mg!V53a&H3+3H`SNdcOiFyaN#aDj;|# zU`S}Z3osxQyMP{{@N0lBA$&KW|1m)Ew*k4|0R+Db=o0cD2Mh__-vg9B0T>WUpX4t> z;r9VOLg5eii;(}n09``o4*{kB8<6`WK$}qPll^}HJwoBX@E4)*$AAtY{1g5ngntTX z6LNpXUxeJB0~&;({Q4As5sIG%^a;h!@E4)*7l0n2|5-r$FKPDw(u~mhE3yN?kkI%X zp!C;(@V^53gyP=-a-SzlXng??{5Sq01YZP{2m|@`-}#GB`a3|E5c~rmM`&M%!)}eI z0CG>OD_djU|W1A<5Si%=vq2wg&t5S#<#2t`7P&>?gQLqc#KP#_cuZ9<1IAPfol z3xEQlNXUIBSwfM}5@_L9n-IPlP#_cu148gUfE=MiX#FjJeF+eL8BloMRd7rgJ|B>K z0U#s{ZzOvYSwj0}K$p-XNAPfnO_X664 z4xuaXKK$wva_Bnp+OiDavubQ0w2P!0-;D45Qc={H)uvE z5gLRRp-sqr7?39v1U`aaB|?YLB@};?W`qWzN9Yp%1?UjMj{(|*{BP5Y zkoz6LkPv>HW`y3S0e!-N5PSxZBZPzkp-3nZa$f|5{~gdF48H~_{wtvMZ-CyFS0lPl z1oR2{=K&he2XtzHAtB!YjB-L=dU3k_&Y$3 z5E6=n5}`q8{XL*f=n(pZ0bxi8{{fIE6bKDMi_j+Y2z|nUkoyWCB;*MtLW9sEbO}8| zpAh^bAoovz4x#(cfWlV+y{`fK&$$NhTtG1d^llzizd@-O{01OGa zSwQd#KX#6=~K*)U>&?2-y2k8C-AbjL(r!Rw4`4_L_5oUi z_I^O_HvYODP`m@se=%T4XiNgygxoxo0j0M98ovk_5`wn^T7>p519EQzgl`9Q2;E-+5eon`Hlx z@L53cKl$scfXi)6bMB^iO?W)2wg({EFjk+ycQ6?4$yxSpzvlu>n(uZ z+sM8H(Ee3G7kz75bIv#_$k7FCHqCd@P7hY zUjpR54CoC3#lHh|zY1tQ^;-BPCp8?1dii8HCP3RK(V)jD( zY7t7e(rg=GKo}B&?SLF1Bs2)aG5*>CXc5|k9-&Vd5`sJ+M<|X1T7)hkw-XQ&ii8fK zv6t+A!UQ0A5q}YSguy{T{t$m1=C8W}1w!W~fFYs(GQz`v)@eY8Q2cg4mynwRGzfh{ z@CaGLkPyrR+BHC~4(K%i-B$wgi-2JhFjxYVmI1AEfW~(M@~;Af-}EH>A`}QkLW$5I zvzfG{KkPXgo!At6sF z5Q>Bbp+#sDI)pBvN9Yp2!CAt6sF5gLRRp-UJL!fytY2%V<_`h?(V{Pj%0fG{Kk{|Qj~7@$Mw68ePP zZv#r71#}4QM{yjnL+B9(gdrh!4v;4l2qi*`&?a;V148aRpg?F4I)vP-0HyB&vz z;kyCF79jU(vV;a9_+CK&4*=mG0rG?bp-5=;0pa=UAo&6ycs(FT7|O5j$FGo3`~g6N z&?2;dkn9`C61wv16Zn<;3}8SQ{tYcQZ<-1)w!gr~$eSz+e$DTmlr&(d+^s_bNc=y8)%w z017`$_9poxp!Eqrn=l{*p9JIxB|?Kx_VRR6kZEx5L$%Z>-p=409`_#5dH`t z_)$Rat$^+a`0Im!kkBLa3Hc8J3WV-&0D6SJz=!c`NC-XxXc0PuE+P0RAWtX=a3{R@ zF+hpXB6J8{LXS}TYe4>Q0DZ!MFeC(@2lT$cUta{|2_=Dl#INpG0fn#e*S`ZAo1Tte zgdrin8Bib;3Ed|H287aefX=IFM(7g;gdrjL9zc!|67qxsp-3nZ8iW?1P3RJOgg#+F z7!rc-1>^`JAx|g}T7(`U_&%BuT7(`Ucn!@6EkchFyq0E!7NJK7UPm)Ri_jwkuLpF0 zl_!+>E z(EAHO@RxuRq4-yT0uMQap96FWh0g;@UjX#}2cZ8Yn*BYX^$%pf0vHln|HNPa3}}26 zFd*dq7a;#1fc}-&L%_9w0uN1uPXn}`4j2#`&jbvg1?W5*kbe$;J(p$zH{e(C`GDXB zgc|{^oA~QyKzA$ITLAeN0@{TBt$^G%KyN!>I0k6#02K24H4f+z3cCQ|Za{;O+XE=> z1+)o;{eZ>+KrjL55r!`UgT4kC|)9eQU?H>ko2wg&t&?gKCLqhN)fE=OK0kjDnLYL4Z^a%sP zkPy5HP#_fFLiU&V>#a0B5PlF)`Ve67 z8-T(`0KrEAIYLM%{w05Xp1=Nu@UMXGwa-9=2!$sBx`g1#fEFQt9iUApny>^nMOdcrT#y0YLDlWIs#z8$kcx0E5lXgp{iR`RfQz0Tc*0HwE@-fbi*n;q`#r zv-#_}fFJ~fgc2dR0Z=3~2rWXJ&>?gQJwl%_APfn?^8h(QNXQckgd(9tXb@V2Hlai4 z5_*I_VL%uXg69KrgpiOY6bMB^iO?Xl2yH@#&?WQ;eZqh+Bm^%28At6sF z5Q>Bnp+RU7+Jp|FOXv~$gaKhl2yO=C2q7U)C=iN-5}`q85r%}^RzQK!CFE}bln8A? zhcF-%Ur3hFCG-e=!hkR&1h)cmgpiOY6bMB^iO?Xl2yH@#&?WQ;eZqh+Bm~%r9#AB`721s8znLS_{I2}y-^aiSMw{JHwq$2VE9`!d=Lp=sF=bL z(=YN#$QvcG@YQ~k*&8KMdo{npd7~gv_!|GsDu0tw67{eA70w$4asT4)icRL;D2Ums z`4!F^y~;{h(toAo|CTE){iG~^NiPeY`Rlw<5>LO_qrkWEF`9?v^znWj+ywT0EfAM$4CUb9eQ)I8^S2%B!0eb$EDl7R9 z)@p~851ncGUqzlQC<*?z_D}z6F6|%YWYu2H+5Uw$3KE4c@=@R--zbT=XTyg)65)-4 zxPP@rgBN?FAZD-TX#dI^z4EF=`k6kk7QRrj7QXQ81~h!7U_E@bM}yb!m4Y>U<kyI=GedZL;tV# zMmI(FYJP?DMz0)^ehYsKDPrg03y<_$_)0f#iQ=#Jo6O$mrpR8+uW;VzmX+aK{5K2T zwAtk=e}(f#H?Qz-?l&pjl(opK-n8k8%k{sO{A_q0F2ml$qu`b=*F52g-*oMho_w9=o^wyWE|7^! z%(HGdNB8s}o6vvEsePJ{ISo(4cZnLlbLxM~l}SG4V*g3|O`Dx_`!w&IQ%}FT_Vg>~ z;a_!i%rpJUDQfy-d!|2apXQxQhoAJn<;t}GH1Ax}f71P?&C130XUcJb|h8 z^eY#qKjyXkX`_-f{jt54f6|^|#k_NI{8;0X{+)CAY2LY{|D=4DKSPV{)4Xyk(@#JA zr}aOMuh##VXZp#-@|oh;-nrO5?OwTT_(}g;u1w2M^U9_DC*5z_OfG4k=E)`7a9sXR z{HA32lcU?X{VVT&v*qvZwfxC>`Dt97cP`E!E&td*OE~F2%{!O$pLDP7KUqF%>+Y3H z=8u+mGJLjCkFTab=9zwSF3;P)yJz~-_GwuWVO(Qgxpe$lrY>J=L+qaUpY*R>+JDlX<)2P} znkP3Z{mJmJx;hduUs;IY4_w-hM)Am<;t}DG*2$;Kk0tc=B$01_Z}`; zeo1*=8(8}3_OE>G*6W9sxVw)zxA(kI-nn%6$}v1Gf4X)5+TxveF6m!?t9u{+V|)GO zyi$*a&R>`&`u6aZi^EUy?$+gb`}g=U{qz~zr+MYF;nRnP$MmQDr+MYl{*&%?{7>4` zHs;C2Wf-TQ<6@kCa&#H@|IVx5Wcswk-QKxm`YFwM#v~aZ9e?8RwEScD+Wupn<)8JR zl&|A|oZjGyw0m-+(jUj4wsCmc|Hr)ACgn55vAuFhd)mf4xs~B3{d0tm-81|oPcG{} zY0vRLZJ*|^eNwW8C(B>UJGM=i{}aDSd6(_wsr8?n``5U~_Gw2pBWcX~OE>Fup=IJ*n&)dJdXZfe?(>%GA;m7hBo3#Hl zPcG{}>7MOBZJ*|!_)T#MC(|FtUwu2T>A&U)&Z}*lpI-iMukAl+&)+f6U+MU1`N#fQ z!m)dXpXAA9{U_~N{%QL(f6Wutlm2x0T%Y#%QFdBBQyklqOWUV;TUm_cY5$k>uj@q~ z9@C$c=j%qXeL6k9ZnBzvHoV-EpM33;uf6t({CDjWpLmT^{(j;$*Ibq5-JEvUTy@o! zwd}L*-5>p4wPnku%k{sO{A_q0F2ml!>&}_=k7QnZ`|!LZ@4ub8f7Hq1YeNTE_KC zbWq$c5(3_+5Lm#!+6w`1REXHq8tbJbAHxUXdNc_AD-|O4%70@&%<{|n8xSc1 zl_18a@ z|E_=PQ*%!F`>DCywOQWHX~((5TJ~A@?$75Tm+OBm`PuM1-0b|v=Tlkg^CLIU^0{kp zF*NyS6RCLq#MY-{x6gOT`*%ZtgDUF6>Sw~gy4UXk{|@l*ectc9)A0K1bJyo`*YF?X zhS!ZQ`j?FQMSs8eIW6oS1|6fWckP$YJX_3h4pS(OVhVkr_DHRMt`=6$&r};rbM=}F zpBwFdx?Bm%^YitYvN{gWj&`@z{NuEzgo7uYg5~8$5%L6w}))`U`=B35&wg?(xc4Rm6Tv&BN8mQE;+84JZpW1%=~ ztaP`z-=!4ikHs8EkcHwDvQX%$6N&@LLUATpD3sUH5;jfYM&;h`2yC^Vx9g>p2Z(2piG z_zR`bk|un?D0HO>UozS=3Z-f4?vol1sOeMQXxnJ+s}^6QdFTJd+#7|CJoUfX!ZQlh zcVdoPs6ufORVePF3dMC)p}3JM6jxw{;&Q4`+)ovXids+e^i<`xh@|UUB#Wp1J_-JcYEA?Ro*D>zY32lutISQRwypL3dIdrp}3VR6gtO* z;vTM0+|d<^Yq~;lQ&%W1>k5T-K%r0&C=@yZg+jZV@?Ks!HHZ2@F^BR%q0k?w?ypx0 zg>}M1XPwaESB?KCrO;rf=0>5%PIxE<6pA~$LUF-ZD6|6#g}y+cP#LK9man)oEIjo3 zDYbfqo6Eu%jW#mnfNQ~Gk9)&HaYI-rt`MvF*R=egc~N*MUsU^lR|*x3!b1zAQ0QP( zd&@s4G!(w|RyBuqK;dyaPbeo4S$%@yNa1sTuM~;~)&85c zoS;2V_|E6l9vUr$FMM8U!|4}{|8GXWs1!Ob)&G~3Ler)2Py;Cx%KC&tBcxC$g%lcm ztEM9~S}+RDhhm?zeh8`$g@@up^>4Ig?x9~&%%NRU{aJoOJ)-dL-zjt*iaFFBs=ph| zpS4#gs8oM9nmeP=RH^PwuFKC-AIG3FRNO;Pp-`wQ6bgl(LZPBmD72IcZG6DYKdcn$ zO4Z$OD;@rh(!s}-c0ZvM7u!{i^ApPBn!B1?e*L%BPsM@rrbldfbh^1D-;)4mA7(&o>$=qS7hq3<@kOK2yyLyIZbQiaqqK3Wb(cpag+^MT zQ2(X&yOlyQnD9^^CKSrUghH{H((BFsnP&eirBG0&{{HM5p-^@v6zbH3Lcy9)C{+^* zMQTE!T1_aFvI&JsHla}ACKP&bg+dFiQ0TxF3JthIq5oDWl*Fm|KV2;pD&^GtbxNT= zPk3n66AHC^LZOmRD6}aGg$6~n-*4uBd!_Ku^eYrvc7;O6u25*$6$<^jLZMMvC{&sV zg*IiO&~BpqU#8n7R5OdYk0ai$p}bklvlLpK#oTGu9txht9*R_iLb-EFj?4G(pgmvg z-5k21g@<}*p`H#8$I}75(kXxa$2lDyUyp~!*UeW;2Q+|6Je@+#sPIq^DijJxh59@M z3ay2Qa$vQ$e1P(6;i3OpC{$ppy}5@PQQ@6Jx2W(?G%7UPze26Cm_rw`P-r+73YEn| zp|w~jv>Xfd@?I+*9)BqD-H<=%ZWi}Y-z*dwoP~OPd_J=pg}zpC@6_`d%3Q^KwS0yW zVYOdpK0^bmxOWP*tm@zBig}Nf4-_45C>+m6sKVZmzwWZS_i}}9YVq&+=;aDk*Bg@S z@qsesOY#Q=#Fyj`iljH>&(jBG-5c`f>4U=Ojrm(p_nzNS94`Jnzg;erL2pd1x9cx# z%wORBicxO|P*$wrXZjn@FDOgDr1(MU_=fyJH?p{Q>hXi(5Wnf3zx++yw&O1p(`8O`?p zUXFN6K-{f&9EIXUCDh+7O7Y^vNcVV-Ld>1wjSAuMV8uxHc+Eo0o#KfL z;ql(ZNcVUQL(Prig$#9XG#h`srJ?SP;(-m}@!E!(XV#_hV1}4G#VZ=>-slSXA22ya z@g9Y^$KwQeFF?WiWCxpi{6eHc^H3%_xiYFq3$9oY%v+DtPeM8KBT?0>Y2#@zU zgyQWE<$XQ>L&}FvKd3xj(-3!fsw3qd?{Wz5^6^-Q@OZgHD4y|1xyQp8!aK$D9qP`^ zv+>9KAY$(nkA|p!quKn&^CDvJ@xhxT!s7uF^_NL69xF+?#|tLH<2jR&?(s&5m^<}w z@PLSzXXD?hs5u@=5&QMFOZSJTRyO1hFQI5WjC%g&-Q3FA$0Iz3BJMpMcp*i3quKJq zdn01+6pxUod!wtRAFsuTyY;5O==o_hFp76uL{2swyu_mMuzgrO&muhDY7vTuTa;S* z3&uy(+9BS15qH^o9$NaG;w=_&7p#(QJOv~6PVqjBhQCTZ53PKh;*}fqZ#0|UuC=R( zT06ljI^u6d{B3-|12JO1-g3ZOG8&I7b$xri{_xa{_`|z18w#)V8g=g!Ptk~fyh|fA zn-87Ws<~6VRU__NMpwAE^?E#Zv!Qt59UF1)6p!0ze2ix2d3fkX?49EE8{u0<@oJ9n z-VX6>j_^)%#s@~T?(y7>$}@^La8#brtb4qrBlb@5z>e?@quKZu%-m_-_|Rxp{=m$g z_KokY;y!QjbQ&6;bMwr+87~D%e4XO?AmRH)v+?hn9H)2`NZfZ9g=geQ%}-FoY} z`@@Sum*fx65pBpH9wQR>PVqvK@OZ9BXf_}4mXVk{#REsed#xDxO3V`}O7n z-bYe-g^l^c%SqyIwe=0Wv849CFY*fIeZ0#0b9s1uX=MD@lIQzeo^HI6C35gA(@1%% z?c2CNJmPdo{_q0ShWz18C~@x;4@IeequFxy_~Cu24Ta0lzHKyk$mH3)IG=GJ8lPLuz4`b4I5a+IG%FuZbxC}j;(0LP z@s5|!Z2U`R@3d%q!D!Zf-{R>M@0W?(o|$Led->rhG;!zs{(ASr@wVC}`NK!}8V3r{no)=7IB8{&?z5FZDcrj@=eU0dOGkPoS0|Rjc4P;+^N?~yeT)*J)Vyf zbEieCk9b>dr2D+L2cs@Obo0#oxNCBvd^P!au}|?B*>-|=5=B0qO59L5K3~L}iW~Ch^HV&& zxFLUdol)H5fyNE_^ZgIJvUq9!er<#PKCJHX?4pF{`!jfpQNz#fYkx$|@i=43Jzi`a z=^pP!syjP3f+r+}_k9q&H7UIBzu?))lzk&(k5?sA_JjAO{p0<~l)dLCUZ@oF^^V8x z4=-SD$RFOs6!)GUJdc@*4<5P{-l^v|UcuCGGWi|F;~i$d&VCh-Y>GUm9u8jM92rjD z!guQK!&Tyi=R8G@Q+JQIK1a&;bl_=FwO?mCidO#7K3b;y{ropx{S>))^HV5Z{1oc; zct=!tyds)1_w^P$4l3sBtslNlfCov%pRW_(9nz60)i)zR)BQFA;fs`kzs#jBd? ze@X4}ps4V8o>VB_B^8QiKG)?AFN=yhyj?03&zB0t3#LL{9^Um79WJR@Rq8$!vms9uT$!B@P4S8f2W1_Dy3_s zqiFe;O-CUU{#yCgwshdBSc%7K<+@&Xcu-a3tQD@iTPvUY>x>^B!j*8>$~QbEEAF!8 zg2!An{a!!4yfWpI&F?Ui-)rS#&g8C@Kc4Qj(i2$ztmO``=dLS%@V2hFTPq!TOUGK} z=ly}_xA(_Ry&X7@XNM(xyga0j^`@yPV7RldPG)8pm4R=U?)@4a5(ePfBYQ#^VsJYGN+ zn%&=9D?dw?p0(OZ*YbBQc|P8(m5=Uj&2X(Aua%D-Ywv5t&+FM*^6+-JzhL}E$Dh2(Un~86lfPE^ zc>lLnzOOewgLURpxK4M2b-HVqyS38c{Xn*S8tW{dwer*3&sy%<7T#LzqG0J-tGvCP ztrc!=o#Rq}o&8V4zO&X!N5kZ;6~Dg8TPwZZ59EH^#_5kK?HcVEEjhJ)hwiy2%lPB8 zZG6jU_FhEE%$*jD&#&UX_o&Ku+A+RuG%G)6a-0s$-C#BMuTuGi?^c?7wedzv-=%!p z=)mQlH+M#hE#(`=cZ~Wy)Zly7zGre8CcpRtdN0>$`2EV~jAqY+4PUSJPIJZwMzi_h zdeHiRpy9h7wD6CV&l@cmEgE$_4&iwX&-D#-E-3Hc+3g=x-f7Fy(=eJ{ujszP1lmJ<#>9!n@pd@4N7}Ej24s*jW52)%&$}0UqvrO@8cJ@ADVrs z{LNDTopwvgcZ_D!6W*lug(FHE1*OB=l(vobjCRfaz-ay&b?56Ig(oTR_n!SbY&F{W zMRo7AV0_+aw!Q_6>i+R+AH7$q{DIM-QEwk@i&yE^Z;^cVdRH($Z!|RO=kof-J8c=? zFq$owz|5TvUZ~;qjb`g{$Kus9+Be#{PW`ohJWWf+7ma4m^$gA2)7Lk?XS8e7(^vWl zmG3lXd|)&i-@+Tzeb@Ej7~eJ;yh-hy4m-*ZjArwzXXZ`|Z&derquKC_Z&!P#u5YB^ z<~E*q`ugux_rt57BIVwBpYnd+ziWKyooZfqm(ra1YrIGK(D=bsDkpF9T1F%DjGms{ zQFUMVWSZuU4~=H?rETU;OYY8TCY{4SQTfUM2_`qm(d}-}c_pT?>DOI5+|8mBZUS{s6Eu4FlZZdl*Z2Z2; z_=4FN?pJrA@h(5>9mwGv(ZJ~N!)l)Gp8^ZlY1iC$jAqXP^ggC?oOX@x7|r%ieG50DzhVB3X5-T}bMMaz zA5!;uqx}ym@8d$t!gX3QzUVa5zxK?(%MXpu8SQ=`Ex)s*yz3M8`K8x8&;KmVw#%&j z*9%|zYs=rvc()>cf1~dDMh8ZRMuX3*eeVlOgD;v~qa~;RsOH_TDlL3XX>s$@rJpN2 z#rj{P1vAeZ9d1&0U84=7rR&su@MN<$>U#V@M+2yzenBY{+IbPy-F^>kW+WPYt!=c|Do<( ze*a3fZ@o^|6^7E3s%1Q4_kg% zc@^Jne5QU5KBVTu4=DBcx89??$G`PH<1PNZ35|c>;$PgWd^UdqbJsYa_Ab9|?p=Oi zzuE^Tzx_hxTb@5Rjh3Hxcekj0+v~&4%DepTR^^D8j< zh2K*?n?J)pHuJtx&!65Wl#k;7hst+sd};lI@_Cp4dF8Y63xBWX{VyqX`K2!?@A7;9 zL-~T$_xy7-e@Z65^>pR4@;lE~^Wn2BKdrtE%)QHRJX7s^);~1frr~wWefLL|&&qGS zSZ8T3e7VAs(>E+q& z&BdA1{CB2aKQmw5;pRIU<;7-oYNlRWs-9mOLkzaglxwy6Qdp@jRTmfLYSnOIuGwUi zX6LH&m1a0wUkvBxmSA3OHp^$Kw*&e~wer}^j0YDSyyx)2d&AlC+G&%Vhv z@=SF?YQ(|DGE9Tu_=!_f_Z^=+Gx~PiseN1AH0)jS?wTzarP zzg(S|xV!3gkuEPUe)YwrDYV1osuninrNTM7yi}f^XVVQv$NOaUm6@n}ykWCkt<6+D z{#pMgr6*sR`XkMxjr$IQ^4u7!VsNndz~S@NnPqks#l`xgb7;(r-w_lan@AlMZ+58Xpq6P?Ys$l>WmCAY++;^nTPn}h5Uu$OVPlc~?cAf)P%5Y5Kas)UeK zJWy*VS#Kjr6Xu;wVY(WYE0tAC2u%k`kW7j06*$GcZKHOUnpR9!-qXmW51e zvXX5J(Q3mWU>{el)tAql4Vw-2{&=aafjI^Ok-R?!d$uJecNSBi5F`I$9c5g`)Fjpa z(ZvjUK+3^nNAe&DN@aBX7Z&Qv&FwX0fP`_gbOy=3b3^5Ox``PPno)8}};D-Au$7sy0b9noYY;!pGD;z;vEQX>1MvuGARnxuQPGW#{8ZCP4_mTkbK zpw(*i(x&@DM1Qh)gh^PevRu#vElYyngiUk~qMxiU9B(x5o10!NFJ71k?~=JIea+YL z=pp9kH1|AS;m<9MuCR~f9?Ke-Q9>uej7+H@iT-UnK84VIp(V$GU@i_Z z=<4o6p0H)12xjN-QM6cJ2#+5-_R?^nUa8JQlupl9iPRY0Bdp=S^T8tCD6HX)!nt4} zs0LF(115F6T{tIi6;4IDI>$yHvWsGu!Cn!aJ7=_3BF7%M?>;1)ju_@VdtrW}sS(Dp z<)w=X&@WFUGDKGYP{#P$hmHgaSS=m(*;#x>v5rcHT6M7; zsb?|;a;*Gf=lsHME}*!y`^vO=4qo@kVuFqE=23=O1Qz+0N@9g;c`s47Y?tWM0IgM~ z@%owI=`vUN!Z>5&_z|gsmK>BDzp6mkjm2#tnw`lEOk$YzN1J#Shdjq;B^@T~k*DJ< zn!Q9Ckd-qse8|$t-&k;1W)p15$jZ=ifceAr#pYjMY>tI@M_&+gwTI^_=U=}44xf<6(8jf8#e}Zo0)~D&SJ7A-@)Z2 ztPGVgk!5Ps7wVa0s^-ViSvcVrb2P>CiQVDy%vn!X6p&Ajtqrj!!2}KM+GNMs?b(X& z=R_3ZMydtt@=zcsYmI*#7401B44~=J3LdD%)xpvr)9Jf3Y$+a0!x!{3su>=A;N&S5 z$xe&WVT&;8)g#pliHNhN$xO!0_)ULodEpS2%B(ZLBODLzg(r^ONvBQBlTj?oHEo6n zeVSiBvz~v9J^e}Dv??B_;zD%^_6W&5iDXV-q@P06qf#7)yLzLH3b8fVX6ZSJN$nh# z)+*?m7Wl2g$VoslEk!@KFg;h3M~CCyYq84Cm{XI)f(6D%iWbjUubG#xn)F8v!bE-5 z`JL9<X@GCmnX)dM=|~Ik7US+^T*w+7-FSv$-vKkn}bYpUJy@tB!T{dGpcD+FDiBMuuxt? zo6!#4MkV$;C{L`bMgFYM!(!bOrjY?=A+_?9%or+D=ua`1Jj0=Ru7+>T^8D1yS*&nP zQJk&=N+baEU%{%Lnogm+P^WJ1{?A~QX6fuoF`kcX1Tt^JO2_!v_?|H?3MT&0nV^oK zUSL(LA_E(~x;eKAAHH$<<(`*Ou5Z(i5@w{iYlaVxZwu*`6Rx=0rzTrtm{Tpv7be!_ z!Urt`d`83zxfUnd-^qpRkjvB);hDLm?U-QJX3pMz&*8~K`22$b7tlcFDz{IUtJRt6 z?%iA!p(j?q+tW+k+rpWJ@*|iYoj)JW&X><1&>e>!I&y5+PS7d*ICT7>li`lT_cXW9 zY!7$5Y+tzJ{w6;qk(?bbyJzC$J(E*A_v{UKoU82KziYS9eR+6}T^%ik+YcQ+a`)k5 zQ};}soH}^mz|_&nQ}-}Qr$SBGDe2R--C)IB>e3kOu&^?Zuc;%=qAx$l_a%~X+o?OY zR+yeCeqbl&pZ=XcF=6XP^r4}w;*Jg`xzJO?IH>hi=O1y&b57{P9~+FtSC&c2^XJMJ z@JVV@s?0*kSa=ubV78Jbz1xVcW#u?{wA@IHgVM#Mx|O&pp$CoD>EMf%(l;HXC&auE zUk);>#mq@!5ZrpJrtr3KCb?Xa&PU7qgPO4F;=!|3EI?yL^hh%@J3f1gg`w+LvObS& zx^0T&!*7z#oLn38|Ar0cg`%vXl_#P z2<5+ti5W)A3OH2{EzmRN;%q`W=``SCbKQ!99gMc=53KSufcI7N8X z_Wn49hmuT4zDNg>aP?T$qqRGvuk-R+rGI<8vg_-lxGvHGf1Q`ts{Q%@<|Vf3fb(@; zUXN3;tQ@}{r+~g*I@rf8dD%InuQ#nRiH?^19)tR)M}JnEL9fz7dxKc#_-D?2yox)( z(f$+Jot(`-&T+|>1*i0nTmB}J_*l*ewyly!k5h18FYR-K73y)yjsM?g{>m2Q>u+|x zu(>?loLQV}$htol9qqF@-OhZ8h0F1>r!SxQSZ}!{y#01rgorlSu>Td_aeJ5#Z@LMe z_gH70nVP|h`)$ke{f~2bTj2tS_w?HzOT()l-IJ(9>mXRjIC`I~dWdtc-yzGrQ}fuco%ar8ROF>8zUQayvfj*|P6x^#jA zd^gKB0rwAOwNTbf8L`9I>*O&l>?_EEB^D|d<89A)jV86+2Y<&?`+l}4K3`rugFOX3 zw!!rpI}wqJ4MUCpj+W2QEi5nCDyaj#EdMawKW|aF|uOF<#*B_}Km&I)Mx{33; zBg5bs-DLG%Z_KR!!}&Koz=2Meslqu%jdzh7$lLZ3SwH5m!O zxKj(~bo1W&wWNG*tje|*OKNULvI(0twK2+?!x9Z}f(XkX8Zc+je!$bhs zOvZUl8=(%@9!(_(K^&Dca@q?-NsaPh6$jPYqfVw5{VwhN;F05ZqW{4%aY9l!w=~wQVpOl_Vd_LA zu$|!^CMM`p&O%uG#^+B1hx2Ev05;g@bSZOUrD=K|brPq=En^q$yo+|Zw+APAZqqlq za8V$|BWw#-yMvV>k204Sua+)G?zM|E539LnzNte_8iSxQWi?-q zaRk3?`PntvHtO?JoT8gUt2l!RqTFpr@qU;oab6}Bk5%shq%HvjFGrZT!NA6Pq{7P? z_)~V`VdY@YHs~#x(_V8IYO9G%)St4f7v_xT1LF1tv6Kgc$X__8AsGq^(P+!`L8C<&*6z;%LcX zJvPYdc^8giru{MtqH%$8Jf%E)ZK2p{p+vY?K}!cMIk~a$BN-dYueiP}%vZ3bulEup zvC%z&HPh4dLs?65BEhOb;5omH>wX*yQMmOPo~ZS6jQZU;#xuY2X*oZIT7Y8=5P&lq zN3(J&b4{MonZi-d+S1f3E3Y&M9!?V{sf4#o^0Dc; zzrEZvLp1u}#^Bq6?Z5@W3Qi{97~CVjj|!fo%$kT4I4GywWL*Kr)aE%Wu&ju_$j_a{ zWk_AQ2-jqmn`7t}?v*|w)ecAWmwqz7zIae> z;Z023HeX(tu9T+^?A&=EKfZ6*{{7YQ>FM(B+3DH6JInj_@7q<)&+MJvi(TsIlzG%0 zZKVB1^S~%&QGcfwM7JZyw&R31&wVcjW&Ez=+_(O1G+pLRzh{`GTt8Tri@G>V=2?o2 zW-V;g>o}SY%Nd+dNEi!3|6GF{|Sj zc(`Fq&Zfut*Tm`eCjOg~lkdy{{X3-XDAdaza)eN?mxgNZ`BX(tCG%-U?kj|^z%>F( zTsXU2L#@JzHb##^(6&&!@S%Y!=#H2Ll)M4|i{%mikz5rq#VB|ypN(3?LuWDNVD<}M=QdFY;VQ+nO?;z^)-1>Q(HZ$|G%isnE49>pgMFMZ!VU!TT+DP>)h zvc>^E{ebdf=64BPtGCKXPf}>{?GFuB0+Y<#p3Y3kWyS<2=+Q@GrBb`8`rbDg115#zrNCI{+)f=m^eib@6fn$QWV^;Aid=fpzC|c&z zdKE<}GPjf2$Y}pah7_9vWePGLTq?fKcCwC>q#O#_2IsWy$yrn{e{FTJL7Ah4A;S(G zy)TTT;S*B(-o2;%C?#o!j=aV7ollGSiys`1FXfcOa;SU=~Z*_rT3-GgDmKoaYRz_TUjrYF^-4w>FPcV*av3I6%5?7)dTt6hWyt2tcr_cMxSS~~HK!XEr9y05hu^UJ?J8R~H+$fQ7^ei;1EU!~}jb#** zC4_afd3Zui#`lh&`rb1Zo~+_F?b)TJMss4v4ji{WyF5LH6W2R1tzE1)>$6Kc5|P`1 z0eX7JVs(ByPM7Z<%kQYvXPP?@)YM(_c`)@r1D`5Y%)6)HVAt3JHmTS*W{Xm)3sxn^ zaPC`|d9%^g`l`w=Fpb0&4L?RM>;1aYx0d(dsA(&aI=-fBmK#Pey?sy#i;LAF)J;?? z4^`*RoL!0!3CADLdO=8USL1hPfQZ*!qoeh4U!7_n$Rhb;_}QF@QjS%fBmO_9%adIF(~2yqj_-?>YZus+p9$qYl(xxixktB0z57qq7!`|| zgI`*g7->6fE#bH)E1h!B7=TK z{peR2TlKDAi1sX+xxuf9vv( z7S9P3=K}b(9)ETpHVQsa1H1hN2@PMx+*PC(%a*QwHmkn8;qFKfzvVBGacxNe`Z zi_*15{lZeH^n6FFOJyz{ru*xa_0io&^-+>C1=V5_n;1?mp;NbEj=N7G5~yksEN{h5 zmXpVLa}~-s7IDRe7gmu$>^5rnGQ)xnZt&Pgjdi3LCtgGkx~rA+p_07}Rkp`yjeIy( zJr`|;i5Gmw%wqXTs+6s*$;5UIImjQXr&)xu4NQvT(bShq*PFjujWEw%BfP`4ipCVF zmUzeOYUiN%38N2ZDNG4IO=rqnKd9l$iT$<=f;s@AwqTttzA!4|2Q{^EbJaWWvd*av6QeiR%8zf_w&NkeO@(&CJ(>Tx{mOZ_kqnn z#IEg8@1rAWiM2vz+ynCE#IG1js3a&c4yE!(+ajjNBa=;Etf7f@fp`*-$p~slC%XK&**cs;XB-zm{ZJa#VQ?Nzb%jwCk&164| zmF-^Ff9{hL7I)Pb(U>jbYt+w^vZj1gD$*pYh%INwHiB{>3_PxnWw%;(Vw+O^(O@On}f zf-~72Orq`hR#H4LT1#Fr*-x}2wjbQJ=54rWkb`jfJf|k4NUG{e!txwlqgR@)E}i4P z?gAD*=AZ-*RZi3{*=SQgC*nr0vdg)!Nb<<|X7-H5O(LGrI-^gLQMGaDo~hA3M6ZH# z*<7xIkA*Vz)5;ws#ndk3w}s=>D}rxp&(|pZnuU5?F#d*QI5j3w)0bTxNB%+o<%36# z9go)OFswvM-4F=R>5a1E^k$Sf&P89+5fOOGjEFy(b>Q9Dju6OPV7L;r<}DzK@Ow>csJbM@RXX{0^+?kFel5 z$`QuFOKUZ#Gkau|l~jRKk1mX~!{{%?IL5C4n?F;f=p#5lyTSu!tSq& zMLFW3s)V4N0veNev?bNgqQOtP{)Lf3ael+M)5LK!_m-zC zyJrvVo!z}FpIL*G!~r&Net=q5CC$y#XRupb^%@oLf+o&Kx%}|pvs!!;S9zqg9~(jg7^shMyKCja`3`OxHK-Ctwwzcu6j6K4LDjQPOK zpPn%{VnXd@<`J?0CT}4j8(wj}!Rx{7$XU@#C>FR$)_5ON%{GFSN)E`+DT}>Zy zy)lKsgWJ#b8czMys7|a}Nvi78vwU%#n`tbc#=jBuj@2&JZhZITI5b|O0~SqXdYIFv zNon_^ly1sB1@)xjROi~raNys?r|cJS+aVd3qxY?dP0GEUqgj~en!^-6kFei_^F};H zp~p0N0BK&-u^ci>eh#Tx2iQ?>0UcB;$FayDH4U>5uv0u;D4Ix8^Lu=l%JK##d8v3D zZ)kF;s&)aZ1l3qituJ5k=#;G?xPl*96p24JL~%cc^JjHTq6C3#MP)U~c_+0;tPGLZ>5 z-0H!{>6oO#Z|pgw+{vm&Yc2qeja8+o_74piij0< z;)4t;B2el?pQ@h@iyJqnw{$#GQAjXwn~JYimxKeaK?x(1FQHFa?4vKqDh^R08f~3racog*%d>xv5G&s6EADmpC4(^(-*EugbRy`A(LX9m#_3_D9s-C&S)LW>* z1a~8zoI%}(j}ICde|*s#9fy!fR7`yTijSkzM=ZBGWX6vL8DE4~fysXIrQS)xY6Ja4 zV!p(&i~Ymt75#&rL<)i%&Wet@F`PH3o;p|8lGD||`0x(G$94lw7Dc&!U!7;9du0u*hv$QEP-x#__mof+li?lxlY)6X$8xcu5MRe^~7fAaw%a zW&t(u#cKT3GjIdt$5$D2zAOEEs_3MaSEwKcI^B`X=sajTJ-T=C5C#JsP+b#I%9Wg# z!og3hAfaO4=2u^%!8eLKf24dKz7+YYLJ6vNMh0+M@};p}JOPh^{EH^wvgD(ax$UCT zFEjrszd3iNhE)?&9JHbgE<65QlU${2FT4IQ{;nusl`t+l{;O1f9}k!L#tF|6aHnvb zdm7%=>7E>pe_>WTmRbk@wnYD(ieIK1W&W(y4QISyczoqDjwRzH**Vu1izre3toF32 z@U(xM+Mm?T@K`DfNR&yuFfct{-kqPF*|TT&`0SqYuIirYUAv~s2XIPf-_G*xeS20} z7+_}LFCG6&>2Kl!UC~`VCh`*vc0>S|6@Tr|E*ijP$sg4pj7WnNgu!Kp=l#Pf;as-- zWdATCjLVXr9bX=6`7Do%SJ%sH50rn=+LUQ;>sSv+%u`Qc4rdqCiuL)qnG2&H0l{_~ z-on9DL(cK9Z2Jf2=i~@H?%evU67x3nu~)c3>;a#~hh zp}%%?d6my!N_nkTOl#$r)$Wx^T_c~g)n&ZN@`v?%@*CgR+n3~PWJ=C8;qz3?@#UN} z-j1b>RCxL*4q6|+MjowBVu|HazXPQ8aI){`eb7vFGu6I({YJ$JE^bzjR-pn`{_q^n z680o@*;Bt??%?W1DxRu*p?R!+ir*D@GpvdekT}m@y$f5zA}~I=gb&%n@v{S#OP5oh zqUG4r(JxuS(l1om2jiPkybX?{&e(k9vmi3*;?yTvaNLUBr$1(-7fn#=bCsBMEv^O+}9diE!fn zE2TbOl?TZpCge)>k+lX?Ppo-MDA1m*YH_5l#2VnSy(@3t>C%Pd*vR-N8lqND#GjFu z$-VRdkzNPOc6;|wS`Z#ws4@4nk;s}e7rydT<#6*O)oKHF&70*|mb|Zrj~eYtJkqj) zbI#S)qlU9f!A%!i1EIBF6AxUT$75uA?nR)75GWimf9aO}Cuy@fj{=yI<|QqNhWO(u z4wrnWpJVIuJe23*1cU#+CB6&@_o;BLP0Nb?ojAgD8*c(+4JDWeE`5DQ@|-mQr{is7 zDX{`yW7o^xYDzA|O?mn;9~z4e+9MVx>UtHP|3ZwI2wRl4RjI0)8(#e~#zKrkp2zGcIxtRrcGvbAT2+u~^ zTN9ahU~-J}w$<;bvhqz#q*#eXx_&peK95pSxk;wd72Dijdi~V8umdwnjgu}JzBJW~ z^1Pf`Z#=xr{7}O?9fv0ad8(YEz%+ksvSE9E8iCR7qse_>FZ3}LjWO-G;={=hAvvj0 zxoAJ0*Zr<&aJi^sbo#4~Bi8(|?p+SYw;!@5C~M73k<}Z$YEfCn15LO&gby6+22=LX zN`R`5E?ehz;wI_ew%p)I9w385F12f7<6#pgK;!3CgPZa0L*r&Wew27YD%$5t$d6*j z4w_?yPiinbkW)=dkqIWkNe7rGGZ?pKy8SOzo+pv|s_)%t9iZN$BQiTv}pfixe`S@dO|8GY)!iFjERLis>9oq>O&L zPTrjgRU*2~gd+}(TyNG(BCPwX<%j3ON_$m`>BqQs?%cC)*PfYuGyC@Cr>m9eUE_Pl zXZG*RLoGsO?}5DsvWp)!SByRwxb5s|CtWMN@m;%TX38_WXQubBVWd?uy^LuvfEbpo8saEs*_vcq=byzEY^j4WJ z?;MA~{I318uJf&OxId&Qau;u1C3RDNsR;=vp-RHKkxxK`?mwF|g^jN&(q37T~38a~!n zyv1|Qj_E8%RyiQlAoGv`;wcLeJ_y-}Esav&D%=JYS?8k{uP-~kxO9UVLloas zeqz20J1zJ4x0L(Q=)8e`<6)dn)gy5Pu>MR#!MT3SO>{^2Z{PIHp32@zdDrf8e&_zmK8(wi{AvfmEs1NV54xLXA!p|dN_AIdeBZw5>6rru z@+jZw>G7GJyGN(ba}f1b-dw6wqj@za+Kc)UQ^FLp?GdJM%REW1EW_yy3DcCuqhx!L zAw|x7HE|%{rpTO;bBx1+1G~L2ub+yN^Lmge_J&6mx7Ymjbgn68=T~ugczV~7pELWa z(=+4a`>H$lS1UUY?A(7~d{=qrp7GsfO!#)LnDMz}rEAOIHM^&>vobxqvsxXm;^lT+ z2tbY4zdN5lP}#k6=e~=V*V^*;PVbvJfSP>(&2HuZrc(#<`}giGADG@-uI#Sv+ke^e z_oH_0*`Gf!dtl$rYNd?34Ea6f-P5~w9oVyHZ~n6LXWz{3%AQ^MN`Ck5-Icv)qzCd+ z5@@xRJ?NuG#~+v7PC_*Yw%xQGoJr@Gy0AUv)EI;pzN<^)yE5(B+()};Hl%XUau4a^ z-$;L-nIFn|M5-4-8lvGdFg;-RQ;i@h_%?s%N zylDN+zD`OT{oBC!l}S%h>(6OZ3utClXoEsBn97rrM-NXuP%IwCM$?0n_Z>N8;kw@V z$>pVbv0ULW9CA3b>%Z#nzT*$k-?8JTP98p`9_=`~^b|B{N*54+f*!)_sj@ARo=4-% zV3-IBpDIzjc=~#!l?08hDV6^k!Bh2wb4yOzos|I6HR)P)PjdGFj$^9{Xtx?Q=N}93 z=IJumeE3(f^mq#K1^{)yYlqA^<3l=QEF&MMC=fk%B6<@O$;^Yi$q-SnfqG%pbdC9{0ijCTs;@no(W#V_H?+%SA7vf+pm9#lV;pFAIkRX99V8fv;C1KFZ+ z(*XNEarQ?7ee+@lw>MDxs76XQYSTdm;Y(MMgE=d!>q_rZ&1HZ*277y0!Y3^Fr6_1cvRzcL_U)|x5I;; zb=dxZmNQ&iw-`n)UZ^Fkvjlzzj114ZfmD!EkjHgHG7@*x1FXzFI@gqJgpei{poNomN-bw!U=gW!PVtDne`G5^k#V zdj@-1cD!N@6>4(hRReg8`fF)CmTqAroZ9%%S%JJH$7#iPI0bezB&t~EcgtN zE`$BuB2{0-Mlu^khTyA!d*4U(Y8MxukJ(SEG>P;ux+vZIWQUB?F}i-RFr|x!5|pP$ zLep(cggv861=D`dC$t^y0Q)`~#aOP4=__QW({o3-lQB&jVuVPik#V7ubwmUAX<1b9 z=X7F8U6O>m6uK0`C2`qGk3RrpzAstKi9a%Qm%Oq77?% zo~h3-FVxa)np#2^s<<)3wW4XcW(aL~Jk}GPBa1UCTCCv7X0F7k!)?qvz6c_15Z%_j zp2w)4Q3o2kzgb;+*C{bP(!5jVn$!ciaMG97w@!-!>M7Ab6m11U=TrFNa600{iEvsc z9`aW=BkC8_C-Z7seU3}GljZR4d|lzwMx+?2R~^<$q%;m#D8l#o>9XZTdmwz zaX+dCi1r(-N3tJCe@aTsQu&c}#ElX3g6WxzCMb>p>s+ENsVOaSWh2Mqu7BcCv6OjB| z6u;gBO6LicP>iqj4j4>$FfBHTh9q>CzQUKD@7*~O=J5p-_rK`yH6K>EQ{zbgkIfg^ znq|JY!hN=gO>)|uw3d-^$i``;zg5CuRMYMsEiaA?Wu!YvY1;n+&e{5WUiVit{UUc{ zEJpbs<#3d{QALuf&oW&&hHHU-+CQ$#8|dFM^F@50$~Zm6M;f975K&On^)D+8IGceS zS|vVy&N^yZtGJ6+pd$H_>ubu*Iu9^?nxg_fc^CpR@R2XP=t}beGr6UX`30s~`gR`N z;}px>JTxj%6$125Qyyk#I9D{^I9rCj@RLR*bTDo%{GB#O6ytQh=wO;%o>Pa08z`^L zd}4w3eF2y*#LH_V!;dmMDwRw=TRcbgimCE5ck$u z4{9mTS8Qo-fnp);XiEn2uxaWf&Z~9YBz4<79Ou#0iBl&hujWZo_cUpflr-)$ zZNurIX?mNs9AEb|Y1;Vy|7*>B-+WtJ0^ywBulL>!qrJcR=CNkYnl)?IS~H_N9!t5e zJr8}5JCtO6f@&c}3#Jw)Zbs%`+B!p&Vc)vnSME<)3s&xse6O6IB6x84L=ijzeTDuh z&Nqa%@JUWkk&FXYndqvc8CW(>pBSGiZ02!B7;8hh>&UYbZHt*0=w_0q{!qoYc_(Hk z>;`u-fR`glTl^&IDJt;)W%N}7ddS~FfAi`DsM_M$8cQpWkJ-`@Peu4t7qrmBz25Bw zJCMOaS#}r<&BYsBJ|}Id|EOO?IVZzNpQ)ZoBm|o&Su4&b>+ZgDpc~5PK3u2T=}(C0 zVc*()xE$*PU4`3uVxX_Bfh483A#LE9z~QG~J)U_uCUj>?aCDQ?8*Q0My|9!A1+KeJ z-5AXRTp-5HWittcuRK}d|A*+SFEz`CVzG2ePrJh=*n9xvP;no7%qV2a1cX&>?G)}YYdmO&!O4-XH+%7=c9%qKFY-kH(1B*6i}$H#f{^=u_T?NR`6)V%=RHhl1dN@hLM8R)?| z@Ane-3Apyf8_7CHCwUA7&eXtJXrNL_v)h^4tiQXeWDcZxN|Kw*3e z_hk{c_G=?CoP38Xx-HQSYM0Q9g$md?1vJCQVY0w03N%s&G-E^5#BdU>5g0%f!SI}+ z=}b-h&ePg9oXym3@9*R3F$v?9z;6u!J{0ab(07r1X!Lz#(szhW;!(RDz=?K6FXO3L zr3>eAU&^!!|3%24ytFWORE2o$&g?YVglaq|D;VE_spMybuZUUO_O2Z!tWA!O;~-cy zttQ(CHlHm)v>q6IUs3;&zM&TA-{{ECx=>+*@TP|ed3$J)`>gas+Zj*jI-%M4(`9__ z)DUlyRGny?N{17M7d4-TVe4z1*X(|B>d2^6*zDzl4qoE|(UAvr$0b4kPREqsJksY) zZ`jX7({EsMQ0yl90sByy##=rTkFGDGlip1tzH8)eGJ~i&u~ ztf~eF>DixQpF}1O9xJVtzy@yjh(t}a+14LAqKTqCT$_*$`+4A#pS5J}%?OSs3ZW^| zEr^x^c;?WbrRPTnwO0s~>c^N{0AK7_8|ASAtOz*bDxynkmEYA8E0c@&Yw{KejtSSH zj%MHw0iz3cW4fDo6FX{{)C(6y>6mY}Y+=429ojdE*>uL*67|LD0LP>Qd=C9lnxB(+ zvG33?$rAlB!#WGwE4yI&oH&uojzBJp7S8?Sx`MXe0*reDPsGb9m+8^>nk$y`K;4iX zbhgjMccWZxdHv(&bi%&lr!ba>lg#8WPV>~8ue@aA?;FKaY+vRjO?DS{>&Jxxq|yoj-41E z$zp%<=oFt5cy<=~%RV2Bg$4(d#M&K}Y@g>}zSBkpX9@YT`Te}gCldZo!ms83AB5j^ z=4?%PUik6lmuNzwTquC(gcKhx+dXvr56x?LZgL(CEUI&>w zrM2L>U=iI+gWp-NRDYdp#_a9ho1cPKhPd##Hl_FJIt4c!=(qFBE*KA1V3o1p4G(5FwM`v`thxRQCpZ^f}|TZ_7}i7%XhzyjRovgem1 zZk-WL5#*g4?XG9?JxKUo%M6GT_UXaE-sJf{cpNyAeP*`5=iRCz5))v4_a{HV3Sa!T z$QWO`--;YY4Sk__;&k;%jG|~0*)m~cVo`)vstg<%aB6L2&xQD{q9M+)r3=JfbEoqd zh}XHeV4Y(5%zjd#o!+&X3y0F}D@6~9<`w(bS_YI?DktHJPdpBHj?KJbECE+U%v=Sx zwZM#oR%Y5ZXd=EOS`i{ zC1dEZxiPC(xCr#=x2G>#6(+Qh~zQBl$RrInM0}9 zODp?`?)ezFrHAHM>5DF1^0z2CncHjUEgRM=&^!+EVtSs^3>kkaOS7ha_l&>=7>pVh z6pO3WH+>3%)e2Wq9RLZM4nc(l^hZY?1F#*7B5N}Vp<^uDXAbK#3_)E&=}u6~ zlsNy>?GYV-<`66aZtex#rsW!PW$*`F0k=sRsab3M$YV#DiOf?fn2h$GPhYPPpuL{p z*wC0S@F~#$YkyHQlH=-pn$^Z9#@$n4aah-uf}_M>033(&+^B$i%YQa-gvG^F^ZfDc zfxldQg8=~5Xdigh%uTy|{JLU(X7mI2l1K!4h>bZcsNlblXz5Q2uL%=;cC zxO6tz;R-M~ew<{%0p)sQpa0f+OTPDqW6YGFlW5nNyTMwEk*pHlbogy}a!kOIrTYV@ zZu2aN+E0!XFe#`NV20slZ?zk;IH;v@9jaMisD+FfWd)7T-8WIyx=P zktyyK;>{aQ>eR~^Iddl9o(^;XvC+%i;f@Ps33Jb1%=`_G+52-+30TD_=aDpfdRx*s zbxxQqiJxLnO3(rg+JsOYYw=Bafrf2U;eu{q9BD(m`_ktvt@_NbWPK&+$PdzF*Tn6+ zHFvsrICzoL;R4lMvL31;$UpYlVlc-&-~4nZy)R?~UG9tJi4t)4k0(pB9%k`@w zcisk=Zp>Y&QHZ2DCdS8l%!_-I82@RF_x{qbVP)^vHMmV2HoPnb6UN?g*kH9B zzZ^ge-F>iVk0k$2T{U2c6)zjG$j_Zpp8{<`0{(Cux4KW6e>G!-bk>+w$`T!4>0SC9BBe+smu(a{o{h}UXs@t^kE?Xay7ywol z|6ZB=VTC#Vry>aXv>#ng8>o7({CJ*=O30!vk5i_22xh@E9*F}59F4aT#=;WQ9d@%B=Q+0^M)yQX6~tNKbGdVSvNCw^%!(?j_gcLMp8KrjS>g(=!p8~;V4l9N^dO_G3qW!@3)0Iyd>QhCL+3bOvoPu z5S2cV5a*NpJw%eyd%?5w+2GlWwWQ2I-%XyrgYl<3YgOkKjZW%4sUCLFTcy@ODfGeK1RZfu1mMbpY*y%ei$J=O>eZ$P*x^M+h?A@+{@uR>)a- zJV4HM|7`X1>Rx0pj)%-perp6(5o5<(3A5B!Dmm|SgBFCaXTeEre#BA@s}10b+ijgd z5!F|ixZL{KzQP3XHJA1k6@N*56ebKGv(Wh-D7No0x+voB!JCNQorWjI3w1(ZI=NE; zmCZ^g9fhFW%jj3Iq7fiJiL5LnO7sDh&PK&eoA-qP=yI#~}mQCC9nk}(`FZP4(({74*6Af94v^V z%?3m;6e5a}2pW{)PUYhc2Ci;VVfqFf4gg39Mc7*GD{%B4pmq*)804B8Jq8&Q)m@4% zgM4nhj`5~ka&MSTVDNIo&1u$1eLzS4Gza1^L}3Vy_o@s4K~tF%a~8*uwiN#(x=#io zgPSoN$5Wl5Bfwes0>!A=+T-anXpAu$|C584{!p!bs&$|L?jWRaBRhD?+!&OeL= z#_6Qd36hCxoCn4R=BpZCqrfKMoi)E!>%iCC`+%wu9J5IoLdT}zFinS%qNzly3e&sZ zX0xK3So+-gjQh|7S{~jyjka1YhaG(7$YOHc}N0HKkvF#r2{sc;n;U zy3hK{PHFbunI2ws!6vv`MwaeWPW&0$S1Rv1{eTUJ>F3~2!$+dgLL!?5e>@Od zUZvQ8-FAFzc;uLY%{3m~+`+ch=NTJGMovtf!0^<&dWj~v8*asu@Qs9INlJmGhJJ{E zH(B02xzlPhA)S#y&s=PJOB3}C33v@C(`v!AihFh~rV~y^MJIY**?M9~TMbVzjw97+ z-i^^?qFxUE6gVR!aGk#k@HsqbEE~r-{Z!ajZ*C|D;}6be1UrDnTIrE4moAwJ?Ou)~ z+vZ9NCLit+2H8%;qwgf|+r&bb38o6LH?W8Ve)`~+4!}bM(d6Yy(i%&`1EV6Cv+k#j z-upPez=uqy%BhC5s+R2m2f^b^-e~Qw5Lv^n4F3gdK-d9R9PdepAmSva>pbF7hp_J> zbq2{~VNlb_4tZmLVNFayMwKqv@v-Z`+2~oLHB9%5jcWk;M=r6`)3ID%8|DW(S|Eed zS4J-w7ZrjU6J|rlTm2kOfFihE348U-A5O?R??s zB%KHY(joisuNS{=lCwyN+i zTg9r&Y6#~f;$dUl^)b;X5((l485*CMn9370MKQEA3IRw^NzsW|mX_tsFkX5=K)wlz zu<;3NA@lIF5j;KaMamVPFGse29m-Qlg9}gs4pvq|=&QKp))O8P($(5l%sTnLdVD4AcVp9|&=5l{60G(E^tFJ<)6wIAS*0rXvo2p0%JVbf?v%|99;OJ z>VB+qjQafaUp&WOR{faQurS40)GQhv%+!gvMwH?=A+D6qK%7U%J8u@_JWemy<0~D+nmr%txIHs5k^#MT@!;43`1XlBXbifaSX-ddCJaC{)_0!D z4MEnSg@Okzrg=Cgmo$n5{IS@C3y!|>AQxwF$I(v9Fgx77G!?;4IT1|jnFIYC3H;6T zZii1Ki1u~&bVh9j%b|6VMu#qLY@}1E>RFDJN}_PY`|wOZ=Zz>TnmJVo6UJChqF}_G zj}g6hf=)QjBH^C{^iuDsa#G!l-z#rGc=;)TZzs&|$GF+2dP8W#9ch+Ir^ix({=lvx z627v2(2BJWa1=^jNw?Buqvd=3y@PmQ;Xl9IuHC$1>$b`=@ zOSMe{#obWcHJZK@oS;|Lm3ZK^VJJ3-4pzG1Ss$j+i95Mu>81OnWciNf_F&;?>LOU( zGeeL9jTC1Y2Q&H~9wUL=sDHiNVUkWbD`B_I_(W%B==dGDP)aAQ>3C5}!x8mJ-eG6C zc=E9MF`O3*u})G8a(^)FX-uNPh%F<*s>Ip|1r%RlIq4bJ7%H;~H<57zU8j3^iyqkTWLL83q$B)szEVmL$_#z|zK}Sw+roh2DS?5!~5z~sDExi*LEQ4i^^(7f>n*^TX z!}eW!W~skt0_g6|ofyBDEr=9BMpw>10LBp<>Nzn2F6~r?IJn0$1eF2yVMyM@nO6_> zW$wksd}Zq0V6;j=@X*UEf?QkqH4FU)pyLQP?5B(8Q?I|{s>&``3=%^{Z|XgVXL$Bb zahk3JCP)knX{RX*!8X$TK*Nx&!)B?!$GL=*?6`eg zI~6jD-e|r>!9)~K>Y1fnBLN+QF&(Ic&NaE&WiW31Q9x$1QU41r>xVG3bC|K6!h~8d z5-{`uCv!YO-Qj7L`t|(4A-Eygsdq6K&zkTJ&AGp&v29DHbqE^jOe3!9Y0VC|HE=mmy9xY#)vmo1$hgVLk2IG8q9J0WBVU^zroyWBBsV=zLwmO-Z!2; zJw9dlkDN?-H2mnO+U1hO3ERRn#6ed!1|Ns;ndDBp5QVbbP|9CgJ563~0%Z%&FXMoCcy&;V4AK?4f`mu6&KLxBa#HTTah*K2F`aQ9GCl6q1P~aa;iUFyRh8bbiP*Rl1)Q>Ogj+=*feTUz>u2-^0IWVrgT20v^?=L zbyZcdF%EH7zRClTvY7ze_a{ei+?h5R1`%GWLKiq7)OjH25|@k2NV$}b+-Th?MP7VR zKU=LD1~899wreAZfES-(hLiLL#@MHC99_(4SnNK?5sS(GYcF}E>jUFnutjfCZ?LK(11wG{%E9(N2qow_)Mo233@p~>#`7%jVT$RS8dPyVfhw(k zqcwS&d2g2T49*#fBpXwCNfCfqv*4;8C_rDOTQa=Jr1j&xJ>?h$6WLTxuI`W+tOheQ zRlub`Iq16dVcnJL2W(o=-Y$9Aa-EJv%k_VJDFyekSb%d3mn%1%(&%BGLD+-gU3sxj zH*=vT6at6@9x+|zCi<`<%&|!w6UPp^1!Kq1&=mMs1{*0o;O=|Q`D3ALOY87pb9P(H zwkhEO&MxzYTa7$-jwH2UuH{l)Ant{TZdY+*`eX>TX4%^rg7W0 zEsZT(np<18PP-~vTbPd49haQ%OO1EsEg{Mh@Q37%^{iXIhq25bV+=QPZfnFH+-bU{B`}t#FY3k|mKWX7;N_x`S8$vGM;E}^1u9X@PQfxB>nG?x z<4s9wCRCkZ+FHk%&crFdkL^%q44ZB}y%fnGP6Uj^6O{`&B)y#lDwQFy6*9!J(~xTX zywu}Vkqy4y4VnvbgGG4v63E~btIhIkAnM;MThE;sg$}?@NFIoFbSyA|U#DjS3yim= zxVqg`@7aRHf?BkaPzfU4or7z-UknyYW6-}wsPLG891S6br#yfGdlxmwm6dJsiX)X~ zAU6!a6+Q$1i-D1>ahl=*eP#HG*_Rvcay#w?N`++6tJpn!@653 zUr~@~zp5Ekf0)zp*4~cA09OZv{&A;_=*phbb;peP+_0h&VbavMRQKurC1zB?Uhf$m z7=yABLkJ_GC|!HIza0~XU$+2JHQ=RlNGDG81euuvz>6)qdNEo}zE`~Hi$r^Ryxt1E zxnK7K9m3EboyIKZ)*pdA%*~IZCvZZtwS5uCq~Fk3W`IsLJkJKlPvA_r(>`?(er9P8fdz>t z=ZQFdaZ};US)%a(v5{6DgVAiy*QW0|G%^;a?t?iO>GBZgCt>Oxq*9qbZwPZ0*?VV$ zL*-UNZXYWbM*{nTUHlyAGZ>$P!$Sj#;7Gr}XM|{CBQ^};AaU9!aGYP0D%1E58gPYZ z!=Sp6$qeav8={K9#d%7lzaibUb!*AgQmXutDQBQ-x(|)vBq*<7+}bugJd|x}Ys$8^ zY;WDt0ztQN%a)-n*<905W6QSbvL_CZr+N%aYQ>X!cVS$4LX5N|Gt|GAWKN{n{!)?S zpb4e@NF`_;I75C<8KR3RvMnFu#<5Z-SviY9)io3U#F{Cq*zQs5t4O`#ck@p0 z5Qw|6F2mtTVIzELDxz&iY7vk&C!cgFXMnd4(&?mD%);=gAByYLqs#FO(p4WBaPE5? zWq=LA=L9S)y#eYn>`>l_eOf&H&5eg>eK1449^Ji}lim}<>ZfuRu97&_*mr-UHQ8QA ze`7k)c{&3(mRv+Cx_bvJl|p_5f;ZO?9QoEI4M{-tFjkamFQ+qz1`b@d-nA&bAtE5C zbl|Pv3Bo}J#Kb&4#@)uvI|-m0H4TvD(W%EbM&^uSxkG!OYf;p$CC`9I6EyatXzfH+ z4G56q^3r!fPZH;0MKk2vJB|zc3fNB)(#I_62@zCnhcc%J;a~0YGW{IM3-xVD5@h{Q zQ!;`H%#nnm1>f2eYn!n>`*NPXiYRb~_V*o!Df=FjN9LLCpiBk5FI1rS=%}83+|a67 zJZ@&F$5xS1e`0KmTYs`$&~M+%HXg?r;WOkvl$$uFmUFjqP~8FW0V%~i(5P47qzf(H z2=xBu^o58>t7q$lD2vIfmrfU_AlBgz#rldf`}iPn5u5=;T8zI(KG}{E@=em*@cl+qp<_d_`epF*P!@O0g zf3HlQGi{x#VP<{IjBuEjaR^PK#IVtBOhS?)dl1WG!j*T>XMCdlou>|t3?3YZA`VOG z`+}z{rLWv6+;TNIfcqIyq!Lv;KBvYQo!-}Xm>qnZKCy=of#(EVPP!PMh&pAOb}rf% zH{u*L@8yO$4l|6-=?iAmV4p-iW}%5{^J(~fW&Q0YCGe?ZZcJg|z(um-B%tbWvyN&g z;Et}O3*86?0tKdosZINka3tV8nt@Gj`hALrxNFWvBQ%Q~u7xXv-$o+X0>{$C>6k4D zJ&20;Wekr@;7$^-Tueo$aNije^%Nzs+@}k3usH+m&BD(jIjZXc?9_%n zRf4IBfw<=<-H8P-&fL*s6JrpRA!C&pS-Aa#!(o`Ppo4{LInho>%L0CX0#i;@K>EP= z$s9Pbw#6C<%D@Cb&m*87o@Z)VNUNP;zH#?V%=={ zT$fY36c*~+gMOcw^bQKBPVpS1OyBN&7d(@3lxxL8h98FfPCqLUeD`e!4{D|O(~do8 zW5ZCbtCNV@2NEY#y8QYA!S+%QEE&J6z}*o?tYaM!ZN+!XPF-_)h&4xI zoH_eR7OMIYn7ue79K`17(Of5dgv{=KW&8nHM*h%rW26eeDcLAh)x-3{b*J0w%{GyW zb8cImO?!0B5!*pw4R-tgWR~){9eS41tejH$z3urruMUORCis@xqnXS0pUs$GUl^<< zFHK};@QNKvLO#N=Y)$|LQ;`<&!EU@)EgX%7dZf3vT5!{d)#sh0z>T=+1RBE`_m@Qu zRhCvc87_R+8N~yTppV$Tv!9zULI?~CbDBQ_ePnFEQXfueB`;a8-)};kz-|uC8~Oed z7ISXl#yWrRMuYC*f~OhW`Bmw2y{2)1`{~rMX8ziqm2>T){@W);6*px2{vET2`%lun zJUWw>UGuN;3I$kN)Y;W}-C$h9f&u#)^((`AXA*X&PC?^{Nm1c)8KZWXK-Vx6{H__I zB&3Z%rw&6M0Y(t?bM_RyQdN?NC{D4VaC&S=Q^mfGl<{XMZ=iw3)yyeRcUfHJN%Tys zq5+9uON$ghv-f8aVfo7OeTDqS+p7nRp1f9Znw=!-7G=2TSHD_{=2x5BO`ya%`e_Fn zE^h%>xQEk^Q@mle;?|s^l>503@MF@ZUhN%UPy#QJZP^VkC!u*qX_IaHa-+kCPmY<7 zq#e);nEEG7><<)Bf&Ou7OxJDE1_6^)ZnV{y+B?16tUh6m6tJGNiwxia5ILIZ2;kn` zVF-P&MgRwpZ7|mA(OK?dpl+N)vpGtP&0IJ znxV!Fgxn+A?4Y^^S|ZKOk2^=B10hVln>sNF@d&`Xay3@TTKBTWo{{j(##Rib1YG+K z2nZ1Bmtc1^u%|G7ja?S#xWN7`Fufx+hbLn;x~k{(#;=$f!HOAEvvMPqbi95d=x}Uq z@T*Rkl5`epo5J8OTf~(O9|S`D@(v10}`qWWOfqC$jnFItsYkD8@t& zwiPK*!JqzVdR`)(yc7cinkkB~U~Y)b3&&I3xQLCH zrbX5jJP=8j#IR3rAqxh&n@b>ip8%VubJ*!L)dbNZiuerAzn`hyj++|~fK#tSLGmO= z16c2?*5lov3W9$T$qif5-TfyUlsnM1)Gzkn_inDSOa$R6a{`)oFb0hKrb7~Kj_ z-SHt_Vd;i;CT+`Vot)fHxA4N+A4{dkBig$!%-;Xd0S)0msvI=0(N7z=e#WAxlc3l` zX4LYN9e3X8F?zQA^H6}>n*Pqu!?s)Z{j*cMBQ5$@RCk{%Z5^*sn=}nU`%XQII(7g-?XvcK9DkI-dWST&1qiP zf-hop-bvauaSv1$V_+W6KQCFH_hf`p5W;%+6d~x!4NEF&{HRY)I#12y<{ zBzM}r7gbLwDZ4gL9*5oz4ma5Rm7Svb5xzGWZ1(c*(L4>CN#SgV4F&_5VKj@+n9oP< z)frD$u3RT$g@~8-C?*QH2c*}ob~YQz04#$aV2-LOU;bbY41q7>b&VzySaF?L1ce

1L^jCZ>;LZN_HG!5Z(EK5Qt!^RQ6V}LcMM>E)bb=+%S zqGf|Yg>|PwlNQ{us8J9JW?O=f;BLJgv525+wn#Q)0g3jo72vk!l&nlMYS)BLQPeTo zFK&yQJ%7){IClv{b2@vv+jy)mG=WToewej6W0z>nW##9bGSHy&q!AP&JPV!~AA7=M zr)R-iSEMUpd#;TC6#<7n@hW4lM^O0&Oba>~rG#|m7)5O??&(>@n(gD6GN=zikO@A@ z_^{^_!<>?j4QJEYQ}Gk;_0T!iQ732`q^pgi>L7t9$o$2H`1&LMd5^N3;_VNKy%@~n zJQZ>N{Oo%nNQpkljN2f*6JasD2|5Sx2c0|O{&8F-%SK|Fa1BVbGm+1o^`){KUs#5j z(|bo{rbR_=OPgO{`^_Wpozn5*s+T_NGU~py+YFzWk`15fA>FhCLO{PMv+xe`7@sbU z7P%KYo>+)_g|OFcUZqInT}IQab7uHmdvB*b$RiAL9Tx;Pf#8r!uW&-$N;_nRPzD_X zd`fEI(pYO2C@;jRp)k6PdKJ$Bqi_hC8@#c@UdwRPwwA%xHf%&`8)_LE+`2upB{$TV z!B&gyZCeMYZB9`IKiKDhHUaY&ngDy8HJCat2aiWT$kP^7HV4tGQd7(fuQm{O#uxRI zqHs3+fPUSfMHKlQ7_;@GQjDkAoCADjxIEoPt|6cqpL=$=z_!43iu1*Nu&uGVrFAfu z$!*WHZEtRF-L}0k*O+VG(mJ@cxpDhoQ;F>^v$Si^)W|5#rgMU-hmfvFqvOY5VsrEO z0M&_GxKgUO7~F>oOU3|BQ}#+0;;_D}fT`P7tQ)Rp681d!g1M*Ky;Ii1MTdjx5+kxI zSSCF;ALH+2v~->s-)@}sK{gtte*lD!fX9r&fQTjQxSl8rIFsf04bG0ar~>^!rf?kh zn&|8mIfoJn7NsIn6n};D6+Cck^ZtO_ukNQS??>VkV>&s(?<~If@XF@Lg6-B**)bQI zeUkVnk&LSaJ?habBVaj=4&?(rU6uwc$iX*xrnnv2LhXkh1rY1QCaBnq=C?RL>+b2$ z{oZaS&zU$}sTKtOe)KYo|;DGUZY%iF_D#hp1B zMrsD!Z=+7LL2JD$h>>=J9!uh%Cv(IVmpH4TdHe8ib}-Z0JlNK@+;L*(}3h0%>NnG-ihMEW`-9|gT)eq(*FBd^Hjm5ZM zBnvBathd38fisQmfJf+@v=rD2?C?*jjS%b}CCwURcp|o_$An2nS9VeG)p zL$08H+6^^7H$io-C*!;N{MyuPqBtKMxiNZum&1`)83kKGE~75O4Qg~!6|L-}W3tgq zFoHn4lbL&fb$3$&N(|1lbwxrbz~ts?8lTW(ExDdi<(c8dDVt(rJEa&Rj%obCUQr1g zf0ypZ(hxgz(7q3*9%DG|UJwD4mw;hCjGDU?ISY_@bi0g8*XP7k_jnob82zKt!#baE zrHJie-6;Ez?YfF5$kyhjZ9{{@_-Yw!+A=tl+1A{gY0I_Z|JLl5=C%?;Aw16|CLsv= z=CAd$fX_Eozb}pdIkb0hdrQ;S#-S}kZMke?b{Knww`W_oY}>wluyv@lWvH=4d+j`i z%NRP&Bc$)15k1?+*s$_7D09{19$Bw!ZN;Gsd!1`-Kt+BK>l<%eb;-o9&!%w56MVJc z_YHQuY zqVelj1x|-WRX-VrRpE~Tf}4w;z2o#9S0*o@*ra^I1GNlvhs#7ejk87VxC0g#OrJew zfW@3lwYKYU!-VIWWLNR1n}D(RI?qU)_Y?3`lHX3xX%$@O9Z+0-Mg02;>B+c3AlY!~ zh`qx!p{SMFs}Tk5#s%zVc`k;LAQd$)nD35Fvs3sfiCsAtd}9-co_ptIde$49+vAI6 zG|wwm9|v4T5y-dP`D>p!&`+Rm4KSk$dn#lgRO6FqM@%FHRmVkWI>5q7>h(Z5J3tj4 zUJ+oD1v}~c8^{E~R=pA4%^WZomtj6G+z!W&&Nv(-lINj1RnVW$BDs^|m zqZx`o6od*GS$v0m|0Z-JUxE&2f)~!cr-w%M@DJ5-L4Z<2|3E|1612e<19nfPwQbNj!`7EVZF}kO(uldx?=hZpdPM(565AMH*IwXqoi4mZNFzQI zY2ZdPEs=qye=nz-mPIq(cKjD47*xDEwv(C60qOvL+ALb+%|7G>ZX6E`n_n!r=RbjI{R@{R4@ zOO9umlH$z*uD34vB`;4EgDMPGLNZ}>BM)i_&KC({(^fC+VKdfu#SL|R(va>^{to}O zkyAW~5r=7@%cFf&p1Qc~3r5szC=7bLh|lW)F$R?&?6|`-+Xjc*S_ijhTDLT986Mu! z+}zlf9UdBP*}i>SOKZ#Ev<|O#a%zIEW~v8}l}cxuFJnwP9gns{M}wW(GvH-M7zflU zZT1TwhNoS+Zu573`-#qp22OzGASw*#Lj7_I0R*M;Hz*1DyKGpd`VBS`V4EMv|EO(1 zdv(#S3{fN4pT>OI8gebHVr*-GrssQd)XVK_Pal^zx{PmMZrKEA?)=Nh*H5%c3fghp zFgeS>*VY3*By($R^pKv)!;_X^bIKQH%buXCLmWXR==_S>V-$GrNDk*EMr>IQd5=l&o;Ioum$fY5i zqeSAEp9EcC@^5cDmwZ~H*I%KnfO3GtB%L2GU{Qj_D?Xii zqoGne4aZo9408u4ENBTq4@|IF7BGO7AK*?e`255I;B1V*vKb$7k_Y9@5$sQcpUupI zN0`sRy{v2spEZ6?@Xgwf9UkDg6Txp(=?J+Uu4&MmQ>1p{P$02H%Wa=t)d91lofVEg z9Xs*FJQ2g=(8cktaH)98dMr=BllfwU(Is&2%ZV;7Vp&1ME|J}X6T#!yU+I=#Zeb{O z4*bX@cl$el<@cm1lnRM46)#Zaq;&L+ua9(Z}rM+m#s_E4ZQd0+&&bqw{PI(I86a7G8hbTkEA;#UMGC$q%>hv-xviy@Rxo~jJd?!*6ILD@F}Pc zO>aAN+Fwgy*?PvuN4e<1 zt1U)+yN%V z@z#&;`QX_nzlyL&WcRH%J^tBUGO^{$zx1Uqe@Y(xWc%2Si*`Km#Pv6Cc>MaEKY8xC zog!y&lD~X~-_JdF|8s^(``g_7s@>RWx~pT!)t~#od*6T4KXiWg3olyo_c!N%V*)7$=O$#w02_0mUg`t$ERy7f=r@uRl+kFUDvukq|_EdEX*q6}dkLOH^Ggarr- z5uUrm2T5lClvgZH&0n;nY(eGHc?+wS*&brOs9JAQO^mz#@!R_MxAlbr>0IahQcY7zZ#*P#VNcP|pY z=$;3kh5CYIGn`MS+mlnWB~U?C$LCIGFD2?LFL!c=d;;FR!{E1r`S*E^MK=Rj1N` zZm{@L!h^L%ed_%;!MKwCXVp`B2|DukoyOkk6MD+6mUkB&vS3f(z66cETcf4#w!M2h z`}#y1g{bbs1Bg1Xzw2P9Ccv|z$Wo*I-M8Rk-vQrj>AkJHzv~bp?%dni)8BQt+a>gP z>*+n*e|XPr`+a^r#CT*#3JM?aF9kU!?b!2jt(?T~yCtnj_ew@a@o%q;%a}|`PEO&k zr8^#^V?I7_aNiqILM2M@@%AJd$Aa%cNfRhBhq4DzM*+VYB&&7teQ#!@kfXEHe%vtI zd1@%9SIfh0p=U3oPZW;XQf6ul{t#(hR)X+(pOyEZa4AU;NE#Hu;-y!&-*$VqZ1;RX z_aJ~U^##5y0_i;{ni+rM)=tSrIpUt{@tp^D(mvUY@wh?RVU~Dc4(8k#<&4YEYV4$p z06WC)DSf_H8l_F{)O_qO|4Ac;|NJLG=XYRrIDWEVvJm_ZR8~2Z;X!trs29hc<1v?& z`evLO!w8&&JC*k(?lt29#y!{yZUo$HZzFk!f}n{=mSYq4dKT`9mYt|aGl20~9ONbg zqr*u|hmagLYusED7Zqp6J)eDgnlfD9pvQ+duG>{(b;4mRzBdG0PMIbG&52@US!{2T zko>bF7rY0q++GOcvNW8-dJ;l0q&QU8_PuGL%8_pN_=B4_HVu+YSt@+L>~3_rT6fYp zDA8ZHk+}CqceFA6T;?N~RwpU!964$Iek3<`FK440L9hPPojV3o8g5Q;ou;k!vX4si zcD91Wb8C?0Ou$)0SBXbgk;(ghyM|RZFgzA-UGj>e<4}>}3>^<2NCBFliLr4<16H;q)9zWbZCbqqyxv3#*cdthM2}i7cmo5zHlz!n(181h=T(RysZRglV8C<{3ST70y&c?^+ zE6hT)74Y+tZp=AGr`&qE9z5+NW|$m$C5;(qLQaDtj$zK?(>VT);%^2#GL5w2{)!xQ zu?LZQ5Vz>|U|Ok!)DiaorlOu6LXT(B_wmfVKS3WxVZ&M$DXakMI{|tcN4W;zjP2a7 zt4&8jL?uT_Xn#P*>h=Zf^T(OTw%?8%qhOx#SmI+U!fq^#_>;!R*{~Vwi*%q=$DX?CSxqYJjiup{$jwMDZU6`Ob7RKk)Yp$A zCPtlUDv=%x1Bk)uq-(4P`=JSu11I{L1wZhR8lB4Kjs!*OJ*RO$b&g=!fo)KG;9|+E zWn&aXj&ea}?Z#M-7bl(z{C$|eXlkMoE;=h#1-8UFj^J~!Qy?7`scfw6KgBsS`4MgV z`us?CeY#!NPrC2y)Py}3_$BM}$MKzBf9HA}c8Je<8axogxrm?j&_yw2`c?StHe2hw z#!Pts8Z4Gxv#C<<=AsE7cQVC*Jr(sUL=MaYs=>fSgP-au$P)msgnq3wr*ZLHY%un@ z&c{kRm}CGybMk9&r}&jdZ8c!pz7jE~h;xx5wif>sj;u~k!h zoUM#M2YS|?N#U`_ec$Q6kGk*RMrh8MII!6A@*>t_;F0DZLWb5Jt-(24@k4%^)>A3; zQU64uIu-5ECc$8&C1y_G>_3F!_os6i&thiCZxivEK5NH=?)wq<{bBd*A?QBb-O1l( z@KJr0zOoZHoCXUqV7l>3JVPJtj@MC3oZB!nZpM&V%&^@w14M@w=|I-{67*4Q_r9Hb zj5!y^_DOXCF*#e!FmNA%+zmDT_ymqbodp1`t%z=l>pRTCaOwfdifgotuAcZv@Jmz` z!iBYmo<+)qEYL73l(XW)tgrjL+jj`#Ec`tv(%oMj+c1yJWY5(8!a#)h47*2cm7EoL zpem@Wy}cN}2EQJi6v9pnUq(LaP{AciW;Z*ckz`C|fLuYa!(xVVEa4Ijm=%t&oT3IO zzGkW)GV`UXp0!?=KdjQmlUd`V24A9Wm&P;jlN@e_SI-pU0es1t6h1JI%gy5XU2L{- zJ2*y93vovt%Fm@L_Ukn@z$;=bpSqf~<+h$^8XlW^CH&p#dZN#;J>_0OQ<8p+A8sJu z(>T8w%qP(O5aSa(Doabp`~=?@>-eEeAyR-O{0ouUm*ea4a9VwCc0)VUNHCty;A~Ij zy*|14J-@fXmI>z|IuQ9Nv#UUP6|F_RP9{cz+2y$p$xY0VfpJ&ysVz-yR)u?RZE-a^ z{Ir~CPT)(QnS}J(5b=I8(->nHwS&YH(i*8kF;&H*)_#J~D( z>)zM79|o9xR%`rsmibfd{YRW`<_LDka3A2l+#sp=2o49x7mi@{nj0B~SwFwIFfqi( z(IY(S)HZV8rNp;PWN`)0j*QIp`jtY z!D&gk^=Az7Y%aUemLF%N;_r5>gKhd++NNp8rhOYW>IT}gX{V;GoAzn=2yCT&`=h^i z-8R~;Y1^j_oOWy2__xCkpq=(?+U{usr!AXyf7-Wc)25FAZThsC!xvx&`~}p$PoDt# z4bWyzzXAFN(B@COI(!M7AA;t@`)$Tiu@7?aV;M47X=XaaG1LN>{@PF>s@0b4w z-_;%T3lKRA3;g%+eg9s4r+?1l_wHNqa{&Gm_cO}O^#8)&XZUQNi(hizUp9Y%hrU9e z2>M*O^v^wqfxzHD&$%D|n~y03jv*#v1z|XY=P)o|7*fa`{!6AlgS5$isiF_*Ck&*e zFp#doK>7*;X)O$-yD*Rj!$4XL18Fi0q|Y#rR>MHL4FhR64D^Qy1L-;pr13D2-orrJ z4+F9E)M#xC{fwXc*`- z6b6ppF#N$sPXE!j|Lrq7{r95-tzYKejp<$foBSXQ zXFpx>sqG)j?(*N{5n&*|2m|OF@8fXaraxHx?FH}M<-f^K!hrFO^l_Lx|At2vt@-9I z{|#92IZv3Q@7)dG*JuCj_z>P--1XDf-jKUx^}j{mnl0v0yY1QYCI3zS#E<{>yvl!{ z*{!eTsPZfFEFZqT{<}ZE?}pd!_TR?0$h&+X4+{fJx`;UYrter7fIINEFp$s1;l82| z`Ck~2_x@zidJt#d;Co1)2zbZFwoB} z4D@FU1O4B^KtH%J(9bRmtMB;r*4Nzd`m_EU@P8#4)Nc%N{#*Ue@ND1CkB`258tC5_ zh9v6lf9?#h76u|Q{Gjf{{85f)%3)siLV5RJBA_@VnIY^>v4)@hXLt3wGo^~&&~Eos zwYl%(JM8&?(^-z6sZ_Q7u)l3tdtVkt{tSP=YsBQU;vyRze7oKE0r%bGzVCG3%-2*{ zcbwmZ@ezb{VJ-Y*)-o!3M;Un)!e{aBvqkSHJ0C~Kegp5mQS^>^*yk;$)=JCEtxP;d zpEIWn{xh$#@4wn-cyDxgwS;-4A)l$@1?%M8v90bG$PM|BVOdrZfM}zlg@cY9E#r6CAEYs6Q2nXv4Kj*Jn7vUgGcdjU% z&%-i*5WJfShOm9CL(3aU*3B}*bZ2+2lOCkmP$HeLpXrYW?@tB4nTBQfPuL!o>p!*l zG4IU0GoM6U3z)_a#@51XNo3`6k()qRFK-5OzC+~eFBSPd!aME~`Qj0gkHIHy$$-fB z5Ux3jA&KxYgku?zJBDDJ`9+cc{SfH#S46Ht=>H%@@9&D#orj;sKZ6rqpOU^erR32! zr)1ZYDS71MDY@z^DXIR8lr*j?ld_sJdE3=xvaG&L#t|A`R3>ji_zQ#|U0)_Iy`fA} zyUJv;t4tQWx=cDRl*z*Xz`JGhr0uuo$(}FGlLrwV{^~qg`)BjyD8jnGnI}KJST6s( zXuj-x=Y07oLfO0u*)hLDo>@^Ln^sqVHY?Lo$+xRyS%Vl!(;-$i)A+iK+J5&i+;(T8i~D+u35n0kASoc`4s`5lD6LwE+^7aysShY@}Y;S&gd zfw1b=YUCP(pGUY4;XMdnLHOyf*T|vYKp6;)@2Zi0gjXQ^Bf^Sz*GMnI8xTH$uVa-$$7L*&2D|cWUH~pR19jpGTV!eu9wxLXF&v(1Y++gm)vX_)?8rhwur6$G!}_ zAiUzMDDTez55gS?ClFrtcQsP@K5&5Wt-nWq{|NQ|dyP!|q(;8@3v1-vuU#V-9$X`D z{pB^%@*8Vp4594ZYh(|?!wBC;c>jCW$iE_dWyAQLTKmvQ~bt zs#ZppfP*cqmHQFicU7%?7vb&~*Gk#OS~=QKE91?za=xur-gBTdP{(P$7`UU(J6J@B>H)Jpo7Q1=SVb?>W{i{PUNR$L`N5PYw^N{)kRw<2vlCiKq! zI~tKC_4=jd58g2UO`l&-MX3#+-SAPPJENMr)gK#XZ#X`~c6?j^-rgLXDu!|c9r?UV za?8|6R+hjWV6tPNXJX{u{>-t0REEX98{T4pL-SmU;j!%}GPq_yZSUpBad#>F-Q*3+ zoEf?+D;4UQv6p6f_Y-=mWAqoY$3tid&WV>Y8g%j3sT!pW_VJu73<1T|0VN~-vZ!)< z9&kciM*nROciBjxH8319IdSaQ%Jct4$hH^VXfe7SRX zs5k+HjUpmDHI$oBm!q;olrO?!_o-n~%5WIQaDGdxEHO)C|F}y=HL|5t6?stJA>6%3 z0|M}k4aPa$kt}7=@jifn8!#rivIQxNkOMLV33t-kp?dYc$??2IZ$Y7BcpII(>xwXY z{v2pDlg;Ge{BsZld~p0EDOf6kxC1x?%Oazi0oTeTT+9@`24Js0>gn0#Pz@`2Sae&L?Xp$2SWrRVkd@MOcGgAKuU0>BLRsu49ni}W8BPpZw@E)@PN=l z101z;L&qDi3k_xuG^XL6lZ6JDyc+V^K?M#Xn=riHec!UT{~-BX9t(~Jo`{9`Jmkc) z^W5__S#`!~1Y170;3`XV%?S_-KHz(;_|klcyQZ;GdEw`xxKnZwX^vqbWNA)knN1q6 zk_}LLH}H<2%r#pXg*764>k-%3I5do%^+)kcTSUX&-u`Ru+}pu4#}W6nIPM_h8gIHv z&c<;#g$$Y!#07a@#<(9P;`V8Ivg0Z?-PN&A^Hw7+&bv?Z)+XY*G;cZ?r|C8%;tpy$ ztjU7%4q_S*X-mfKW8Cg!oR)VW5!a*T^(5mo-JOZJeoc2Y8K>#6?v``cp}oh3N5C5d z>ul_9;4|(I!t+r)r{_U7pJ2aWoq%TM(UvWI$=;ZvwTG@r~Aijz5FT@%dRfh4~8P7F$ZCvjw zU-`=HAV^2rux{2qoR}QCrmI8ou{#m>GQ)2e*Kg^15Jw;zn77~3VZF^M95g%%EMaWm z`79QTe7*+HSchAEe14hbc@S~cFG)$mDZ}L>-?&JL-PcklNX?B0> zYWXnBwQ-?s|G~Md1w+rrH8Y=l`|5D~v@mMJcdwQQHbv<;EFr(Flk*&BR=jYndj3W3 z`I-q`Po|Mf-(RCgVas`}F^{|eaf1bIs~lY?pWTmkjx zTh^%GP55T~AmZyPq%K<}b^Vo6*Rn|JdROP`=a}S=2QD{Jf)OjaqJhh3vi>`(h9(UhT?#wo>L#F4DL$#IIsJ z%4M4HIgyW=ZsZf>lj1U8P%bZMsX& zRj9j?bzfY1e(~A*Rpqh@{YF}<-YD|(2o?7c_HygbY4Mn*f^=5?0);JAQzQYRLjw z0yviRE;_$3zu;)9rkwERmmjTeOs!cUYqFKHrhk#F>0KGo&Uws~|BkTfe(TrpIkjV< z?6^=a+a~8pQx>{Y)ScSBPYRe!luwak;MJmM5Ti-Dgisc9<44{(G!YcW=8n;d?~ zCnmrjmMxHF*=4c}cwP2zRX$ZYUn&PZ)u2b#BF3^rMa)ctC(w zvXjVzaj*ev+$y)kG7B0Vy7Z-R8b}s7oh*cDx|Ypz9TR1aKC9#* zNXYL*c={KNJ`>OEpX2l7TX_FB2p3(N@HqwD`|9j+S>0bPt6P@I>Q5{`U%#wemQ5~2 z-ucpVm&m&ju6eDMA3mp6fuFQg%c@@GDd#HBR^-{&7QcLYyy9ya@U=u%OgMaL9G+W% zM~_4DaL|$Ry_E}O<%J6H*@fV<3#4%nQw_pr9X#Q)@mcWLe(+e}k9;#>0|58+bYGsA2#28x%+^lR`c5%shH&0?*oINh`_Xy`) zo#At8`+V6BKGouQl#RuCl7G3#x_iL)AFwuu&x%XP8q2ctq_Ur~2*!CaA3JA!Udsc# zJ!9aLa8d1X<%Q36FPJBbQZH5>Nt#cm+}Ok=PmfNB{5ir~T)yNp@Kuy1m={e>m_+|g ziTo?VpSv=`=hV8zvTm|U)@3VYUH>9k2fVIpy6R%>`I@u!OUq>`=!5g%qhJ`{M0m)_ zRN=Gnvr10`#?LM+l1H&6j!_hY_i9N;g04)dgzf$#TLUBrwUamKo$U!(Ca#k;q-dYLYKPULmvJ^Feqvk?;IJ!R!F{x1;z%9U6A9OhM; z0#3klBH2?O1V2F7^ajFOE{id5&IkWs-1P`;j0b*-pTm4613~@)|EO)jT<>Kdl~b2U z<%E}07t6UfV%Q_R%axmWCU3!bJo+Y)&mrh~0Ck7YIv@68KBP>wq+FIEpcr|dax@r0ORC|TAUsxhdknbv3 zZzMm!b_*H=T{!-_2=-a5BM>GZG@OOcI`?6i8;wBjdkAtM!iQbj@VV}K${}sCHq{`> zS;yw7%Fp`|zuG!~>Wd9WJt;4<{XQdv6@$b(B3%926Mk>_I>scs$Q zm}gYhSGr{T^S=GrHFESxoD2VPkq5MX)D=9ZmduB|-YiSdFAI>VZu274xgUMM)Aw!O zx9L3ly{Ss-v$slp%g;%DYL7tDwi&9&aL4A=ZCEI4S`NyZ)P6B(#ond)?gp;G*JBNy z2F|Wxez%gbG-m;K-3tlRHo(-PFtI%kvF>XYg0Hqgj@c$F@Q!kS^sb)rT!$=6?MT#l zjmUWw{s1s#I+PcTcjM7hwJX4Pq^$awp4gWIXG1>jK7cyeS<9YpE!n<%7N|&Mi2r z91M-*yB@${WAsMJ{{V6o!ZmLNo;cp0-K@`B{!wJNkGs$yeBO)D&p6as{LC_#!%jevJxvA&>27g9SSwML~aU5j3AdQu^Sm!X7rMTDftBT^VZhb9i zFpn9+wTo%%SCq?&3l(Trwe0>^ktYxy{3XL(_*_gwaXmJFMs?Rs}TQKyCV zA7rLg;9Xb)=2L5`z*}zuZ*815Hv{EnYdKk|n8Qj5Wp2X!tzt9nS5)4xO>x;iD_K{&^9 zD$(}I1(5ref)N$HqrMjJq{KUutF~e;*)*;1NT1|~#&4G;_$|kn>OA(?xT{yW7CLIk zf9E%*@!w}sCx&6!Opc|U?rlXzwt^!L%tDR~&-tka{0 z)eQn3d!U?cjR@L>+5T%2x5$;%Kbe#PKRJiEHj;{Bf>__`C%F3rUoQ!>9XP7^+- zIG^`oO+jAAdg1JO4rwd5q~rmum-<$OY4MnIf^;d$^Pf=J>RkOA=qaCqE?^RJ1KLrA zwM992=#x!=0pT02J;~=v5#&)_J@N?hNKqb>Z8k!-d2uA$qJc7bdd1;FeQrnGL#_iQyhu%0}Nyc=%0+2rS@SbnZk{jtr% z7z+^$jpfpK0X&0!xhExi5vt$m`ZDnhIz>8}mJaY0$2puH-J6nEAcQ#O^P3P}?dm9g zPULazOz%s{OA&lK6VEQq(ax0o8iG%gc#g(>l{^YN`JW>Aai4e&(jC1eCGSM=>B8r_ z|E!SzeCig+jveBqWa9HY`nrBCbOg`tlsXbx+^6|eib+^dUyU%O8&ar z-Wd;mA$V|2Ngn)R@Y=fnT!eZ%F)!~FNQ$(EMDy}F)~$06))^OWmW#Kidg(P1suE`NM20VVi7~o>!!#ssO&{U`RZ> zG%}fz&rii^!e`T0uaH#}NsWT7m#_};y60D=qzmB@rypz#pOtQ)AHrPpB;vmwq)R*p z>C&%G$#w)^UgDYhtx4ES@&0cRye=g1?CJhBDR~?rqWj=Enw!CkRQHqR98?LtUrK%( zq5Rja-xANR+{XJ;@=63>ZsM7GBJg{)qXr`T_I>!lvJ_wkDog5AczHLrPwU;AN4-vrAL`AY>y1 zpC){+Q+>f^=nGz)So5Yq^L5ukf04Z&a`r~Z*)NtVH^=C^#-&mZd(T?fbJha>wJp%m z1o|1z?^CoTV=P5FTZ}0ihpiav9g=@%O8yg}_FdM-CwF_YXZI_@a)NiM>cgX3@^aQquhXl-&7l;t%*jyiAJ+ ze+$y3R>G!(b<^UDmFFW}1aZi**ng9p`(R3L|4>Rks%1hpOgwY`O{Ph$;5roRx+0sU z=`U`QqhO$ahwvY+yyP>=d$uTzgF`-&lGh`6IFio>M;Pa9){)Fn|9FKw{uFH1utzO@ z8hR+`5idRg9`iBqf%gz!6_7E2GrSX|lWFe}=ig6z2OW1%maaL!sv5I=*-?{s4sgz) zEDrgXIvwA1=#D>b2cSEL@0lZFr&PxguVN+T>w$JFX_S$&}rx{eic@he#K ze--?X<#F8#TT?~*Oi4)wgq69B>z;sk^qcUsHrXj;E)WNcHcfNe0HVH122 zZh$`N#iE`NJ;tBXU`5(5SVx}yeaLdzm<~rA#C~}V50o)<}JqkKEe*hW1J?RLC>7SFh?chVdDzRBR!Kx6xE}) z+$LvJrGHja=qpzx)#p;O0pV+|?!+^3*}qVp{5JR?!UvpOo_Ka?dj1$XNd%uJ@ys-n zRdNyUE4~xg6+TCPc;JSyZVi4zNI!y*{gB}%d`{872>KSachOG_{MXHeM@>gmDG&WA z)+Y!baQVY$wV5Fg@~hv0t<&JskTsu%#y?BRZ3utv@`lf*2d|9v;A($c0(fB0dblcY zy7QG%`Nw82IF5d;+emqNtI4)*#ZCHu2xHaK!`{(bWKV&fHT^$9%Lra~7(NGbkq!rjf4l6AR#Dh~NF8Ujp>F{|J514>9k5*wMfG6@Ug2w;EwL z<55oWbC@snh6;JZBxD}oS^Y1MI-kI2tK{7O!nl40x-VBw_*_>H9*|uPJH;wl@k~{o zcqhztm}@RfR?DCDufRHKrNFvxH<^7wM;`B6&t{5U0lrR8(HEyH|V z9FI9JNLRPod@xxb*n#mU%;Qh~JH`RRj^DC2htGA`YxJ`a^wa9sMp$hb zuP6N|ub*s@Ge1p9=DCzS$a2Y3vs?A~4-xkPR~O%h&taarBlG15@OuaFTmD!q>uNjT zb52+`5N~P^gU#+?qt^qBYgh#P;vu;jcJZrI2NLs9BUoi!ZJ8{3#>!ATmGXrpa&~!{ z{5gWhMfhA-n2-C$7RWs<&`l2-JX*iE(K#H@exUw_kcsDm2J}8z z+_BxM<@2!aYm`b5pv}?EvU_cr^dt1Rvcl)o(lS}vRM}`cZs@(&mC1U9GcIlTY;b~y zfsYu!xoH}|fe0pbUt26+dwP|e&0Y;1;A&fg(sB)|BAgGgKLgq&esz8EFnoJg!Cr@T zYr-#vd^;iM!>4p}nfxI_C|C1&aYLDG_^9D5`3xd~Ts3m%@5ARXkK*y+1@w35sb348GgSN$@b-xKs~O=a>N z!tp17H@4^LDt#_*E|XU?4*B^$d=B%}ZKB`ejo{;(WgTQi^+`DgPh&TJC@-d}%cQz@ zv7@spd9t-kzQ*8WgYa4B>j}v2VZT$JfqkKR8^#5~s*eFK&I6E1=1(rvxL-wln(=^_ zY2s&-U1VB1&_r>WzW*r~6}_vw7Jm0=pRu5Ku<15H+~qwMM847?7n3VnkHjGyYIJt`$*nM#qSmk#W6) zL95~zF^;I7TW_qFjibb88L8NWXAj4JD0N#!ALZ79UOtUkr>1Yk_hy-V@4993xRz=5 zmkERK9B1qu#BZ~!2D`qU++Ce4wTvyJ4;(v{eP~by?^-6W0k%S?-#^5yJk?Z|r@Z_& z`R--X@}6a7yYvvxZmMPNx=_%}Ord8m>sCSgXI-tVn>(Mg(Gcgz%ZN3yOzr~i(Q>uU zGZz@V=Yz}SpsS1i9^zphJEpMdS1B=ZS29jJtes#-ydJu~Grt?T?|5B@?YYPOHpzFe z_1P{HpW<77dYKG<#?=v90>v)@F4r{5N#ao+q2V(zAG2QHr@k0`=lhy+DPyZaj1KH) zGu)-9vg z-w@C4Ym$9)S4eT><;>3!;TG8KHg5f+9NQOH$~ZhO{oXR!<@khnb~U~*)V;c3^J)L~ zZK#$FV=K73?vmoqSoeWDG_QW^VdBq#fBvy$GU@mw@i0$$T`M{}w>fNnhVfy@x5)U< zm&v`r6TV&nUa=?5E!mGnzIApzcCV=;7VXDFejH4175U9FIThIbS=)ypZf*3i84Nv0 z+*m>dE7^55?8^g!ohPZbf6Bbaa&qtw%j8eM0p)Gx?okHc`p0E5rD@o~t->a)V`dvV zq9aAqfA=(V&($S~E3a~1zC*-c*#F=q@Dg|l<;%!X5l!|}&GM<4Z_9h9zk^)+-NpUF z_L*9)wnN-emS>I|Cktmtfx$TmTz9`~&)n$-UzMqn2~DF;`g@2k$^)Otjw+c2LOzNQ zbydkB$0v!0d2AgAm#E`zDIuq(S5!&w=X@Q{H25vuRg%{<>Zrem_@X@2F};%d0AU>! z|0@0v*Ev2(Jj_$>$N9=#uNeb#yYS(xl5t?#@dr5`IfD3lJ#S| zWc|o#vYz#RJ>SUu!nm{J^r9ul={U<&_Au^qQm5-aQ(_e`>$cg~)PI%ww2qy}esM1I z`D{rKRLMoa(C1xWML1Fu^a8y=F9~{M^O?d|UrRBPt(_AGb1&Tjpw{e;65#GvVY;`T%&sl*z|jl*XJ3Y1HqE{h`_2 zeWy=nE&%?nI>J|~Zx#BSIpj0lQ^+$3?fn6Lh&z9j*}jdNawX0Tk<;k;uEh!+)~<5aQW2-1(w= z!b-rbg{mVk>qwrMX%|PSuU%RqX7HeneTj`FfH4|y$o_!%TrblRId9-rxc&d z+6wf1$+kJfole7@!LW6Cew91~3_IEg&o@ebrdBp_mJZL~r59AmUjTppj`5|>-x1BT zoa-lFSS9}kc)l^dG~bBE^j({bUs)xe1H{OS+IPt`iD-<@0o_IAY+5Jd_)UHg82z&C z!w@&){6p48LdWZ%ALp!pvoETWZ7=4#xqKmR&I1EYxjydn*08o`p>G*>I`7w1$+1A_ z$EWy@fkTd063+#BvRfNuRsQ9&3K_qm`Lgo{QB1P^>Z5)H`+vVQ&w5W^`+Kj-u;%w1 zzi(djdrp7H?yUt`-1**{`J(gD%rovri{q@5z#aeW#$1H+4H7iQjvjqW=zHzwzCD9- zzjITSq~2H+*&Zss5_sB`lf=V3>VK7{J)sP;owisRWSh*w=ZKq;1HNMG9O9`P>*PlK zO^m<3@qBV^U7%jKR>`YwL;iF5Lfq=fxexJuRo0U?%g~#u z4+~8)`<5zs$({7A)31lPiK~EZZk(q@=HH6^Jy9harfl0{obR!apfTr3YY&!wdzBmp z_&q1W-TGAG_g@7x5$<{A+1Kx`l79fa9Yly*Uo>o-IOp}yUp;#QUo`7SRbHni-dQE@ z0iJQ~332Ni)Xp7HTF=`>9Y;fcY*Gh#FFw$K&l};+r?ws4doz1V4SUMq`;grL<43IR zMaEJ5lfcMVZGR^5D33XVp}b*^3w(_ZGQroLNjEJzd+A(E?QE2tGab^FxDR)F;6fih zD1D5>>>PKi!`LmTEcoFn`3R7Hkosx=&mhN5H<+|NAE}aVO*h}JRTTdPuwB#Wrx@4u zaxsnaF7qKzSYD+23(kxB9ke~>evdwE98*0dcQBu1od^8gVu-tYH9a@jd)zzg<<1#r zqd|YFz0uI8s^o59!PK9#2)s>SL#Ow(@$aPh-xvMHol(H6e7CaK?x`xjq;!0+H>@76 z<9?-9Ru5#0X8o8+^HfHaocOt_=*~P&qn`qrCF~JY6Kwp4%4_L#i{w79XCL0(Xq$~Q^ZUgA*bcw>*7_{S>wHt>mQJKjRv*yB9N`ZeY3afq+6a-mV$$M8w!-f;Fy zRr13xQ%B9K{LsHEegiS87aYGN9_F!nwq5AiPFPYuG^O*+#IPU+2=Wf`i)@?^qt9Lw z>T%0w!CA(I9V<3IPkG;3Vyq5+ll=>Lwy_%j9*@=dH^KfQ;AQ4A-=ue?Tm$&;9pZM4 zIV`dh)w-Jf93Sg$`nP)+9YY=+gVQhQ?*(n&>MHKzHb^xKsiuj}<1X%>=hop5au_;- z%`*N-mHa>8x_{-{m~-!XgKzpiYp15cM}H6TFptVCTk}2k-fzBk*35ZV-h|dceUDi$ z%-#N8yRPe;w6Q1#WLeSHP4((lZqLi)Ppafep!@5#{0P@R8)lBoGDm<1)ZbOpIEN}e z0Svi(Nj%D2 z%{$-cSLn)q&0I2N@eLAb*}fXa%5jV*?0AE*Vb_4OSOf6s(CAs^NH=!;JkI#Bdb(pJ z^p!MrDr3kFBa9K^r&t~MfK=xy<8G-j%FpiJy4~2J*w`ZtWg8jm*Ruk@o=#D}cvFrU z=iCV~&h33c*4-E2iwaG)hciBYC0@ULK<5E-v1Hpmnd%O(>m-EmgLkE!a7TKl^pnGI%}lOPp*U z<5Y?>M3`pp^Ny(4;c4W#A^UAq?y$b+ThPrfw!=4fu6vtv*{sHjSYg^QN!=`-HMr@| z;CIvKt2E98-yvtq(LBaS5IutZyF#q}|A~x4^oYg+!P4qofjMik&uH8bOW)8Bcc(Oth;f^N#+iDpCJf9HH zt|TVfQ`I^B*88;08v7;RE*cZV#Efdte(5y*V%qSaUz2lE{9U!&3HbRQ;;BdK=4x5Sp5t6vT_dY%$p2kCuR=V#mi;u}rZyS#UQ?pu zzLLL1O60w`wnp~3{1G0=0#b*b2k^2$h}-+?O-tU_m~)f*kP&rwh`52T1iTMfggY7` z#^qYT(?qzVnd0|H1DXhTGzEOr-vD?%5$5m!BkMS4 z__jy5r@4wd#+L>(A@0hWd_|4?{OU?s5$@LGp;y+()qr1*BizyCu>U+C@H8QwYE}8R z*T}aiQ#a&oqtkv4I_>ip>9j`?2hH3ZHSz+$(?xhd*L!!3oC0{d5V!jPdMJGC zx{$S17iISgVx6J`?8F|l^FCrYV|RD>J6l4S*G%kjQ! zc@rP5kTCml5Hv9z*|7BQFI!O@uGOv-e{)au(p} zBV6Sk_FmmzhCW#%1;FdvBYbtUtX^R5;UCdCrnZp8ycuSWHTbtJPi1`8sSUyN8y__@+QF7 zA;P`9^z9ls9Pl*h5MP4lEWfvWr$Qg$OVCf0YUGQ6=O5wzJ3q{K20YDBh$qHb@Aqot zbij|Z2w$T7+#@w|8Q^(GxGR7D`@}B!L4_v5jom{$cBi0yGN6xe$Fuk&_FKT08{vsI z4gR=BUIh3yMfehJ8v03%ycY1hBixlQKdq6KfTxM@C3u#g{YyX};Y-j@JjQngJpTyy z-*t}f3V52K5Kr_$?=SeSfbW9{U!wfnFZr&3=N;kxyFSi${Z)l#KE#*$uFyUi&`*W9 z<9YBm$ZUWwH^fsN#O=q{8@s8Z)kmve0QVE<3ky#m#{r!`vGY5`tAE%6CdFr1 zGl9qX0o{wz=!C|4IAg8?tCh2W-7bHGyD~~u=zOY)%k5|) z+}ES7Rz3lEnqq+4daR7<@ld%Qz0_l^^b*7FDxl=b2=P=8@k7Tp5g((U`{IqnrCBFw zzJ>ajb)?ox{ZwtCCTHy$OUhSuR14T4&aIZ}u{E3}Yvq-|=AYU=igCSr;SmmKB}tp$ zQ^2qFgMjA~<1wG`H(SruQ9Y;1^|ZE+)qIbM&RY2{P;&K*apk{~dh*Q@w3h!SwOuUw zen>NBj2uCqHO+CKGrdtJIdlCK$j#b*h;jHsC(sFb!rv_aRS|zvfAw#jTPf8e>tz;O z&b9c|PdMH&uJ^RmJxLejpXdJXNbI3~{ur<157TYE4%2#-zyD_6?y=3ZyPtM%65)-3 zQ-IAsv+a&?ZFfKIhK@YpZ&~~rI*BLjEqGOLQB?jqkLQRTyq5X``yJmH=b)0HNvYjn zYQ1>>31j~{$5HGUmM$q zz3_VM%y}^DsvA4fgUI9#c{t;eJJFtm^UZ9sG{Sy49@H=VQT;Uhvi}{7W`?V+Rn}a&{ zOyBfjPu)x3bkjH3_OT8Xu$6ugIQQqaZ(>~grklROhHtEoHuO^eIFIX_5RV`2(EW&CDc8C{gY8_M`j zbl{hvJ{ajE*cXA`IopmH*D{D12faWq&G2ZQzvURf&_ z0bUmq;`YAuOzulhT(X}IDIcv*zD}lIQ7hjEyboW9r}Vr&VD5)rxE*g19?*?L^YMT##Ep-|67fyUez$PA$Qx^A z1lVWF;M*)pqjN(V-6x^xy`@%e2Eu%Cn#43N-{5VvaxW0(i__5Wg)~7s3va5G_W-^> zLOgXwqnt5awzDgF8%nEp97gYW?jpV85Y1H|&#o)l=i6pmN=-}LF{Mszlv5Yl)t5M; z@Os7B57x@lfcHO$a5JyapG?-uDBx*A+}y7|Mm@|s3G0`1CAzK^wX>96e=igCsxbdsbC@)z%`mG=QYe~ef1 zN9jTSgP*OHM**Kd#w+>5bh{5!Y=yFi;g5`c{fglg%IN%sOsG+_3Sh4$DWNf zUEe85|EyMa0{)$n5I1%<8mnQR{e`w^pHAo)!q0L&=aMvUTQrYk8B5s4&(+E;z&%gc z{tIy%k2)jG4_g}oj=k8qvuT!JU)QmdO} z_1H1k=H{`@JsR8G0b-xzWce)RuGe?~#Dl#nuDRB0Q0u*%cLpA-_-_s#dY)0YwpzlH@_`8Mn z+*p%peR5i#cecqpM|m_|nolF43 z^LA{-IOh{R2a!+6C*)I|ge3B1IkT-yZIaevOQAW}WZK=U`;)$Fy2n_ixfmwcM9yH( z&Yk|$c%4+^gE6b+>R88yyJn2oIHa8pJmKmS<2GNImfex&J*vEH+;yXoFoQSGMDeaoV4tv37&Ub62+= zyTO5q-C#L(%C={ZowBM)R*f7dtA>w}Rrx$JTh97J7a3n>Pt!flzJ-~6s!5(2yBM11 zROUypR!>kh`v%4d$P2ke>t1%F`uXn^t6j5m@@Z|i@#o@wpqaCzX?nL*kDMvJpJki^ z6ThQRjT}2@@aFp&8=A)F(%(Zo%42*;1{tHLGDgqhd$0o}_+~F`lnZB!oT+aKPI+r5 zT~~As%KoZRel;@8x^}TYtD2FZziV6j(8u({e;xd*;XnHz`^nc_omDryFv$2g)1-Za z^aA=It+&#Ic$Dv1>K)M}%9T=`Yy?bS1?6hmuYp6Z+$0|5dzNw|nnbz1Kj9kz$#ONV z@jvQh==bhBCGaTUvy>arB+AYGx=t*V*q;2*TT42(r-*q{Y8Hbxz>>4*We2HG{qYHRko z74Z}VX!@0zEQ zuKF6AE(xC5qZ?!$d-zIyt7g_m=nMAkEmf@R8EJQW`F@?Bn>3Ej@xneorP749cT(%T zrCzoWqq}G3IO?|@edM4FZmyRX63=Fq`WgEMbSPz6lpQ{`g1F-N6tBp0=HaeK?Vz&* zEwW)$ed|Umb4ysHsWJ-2Xez(BA!~GA-cl!;q<#?ez0C1KCNCxpLXLUk!Edz zc_(j={q}vFGgmGUr+E&&#B=Ip5IAV^QfPoLil>^e<2K))GsMsf>gC6Px7iGFBTEe6 z`&~p=)`5O~p^-Odoj)IYvnOY`39lC!PgQL72KTSF2K5mW(+9T_v_x5`EEHLBh9OHZx z=p;dx`cZ@YXrW%dHP@^<8v-!WaSC$r|zvMo@~9$yShcVt_>=OeYjpe0~nc0(})qE_}76A|6|(}<9v)IXd*tk z7AANn>R7OAD7LB}sh3xOv|jFZWktBwX9T}tey=}(UD@@vJ~2*N2^v$@9y80QbbT;o zjn&BD$LUKzo`H|b#xtt>Ycpvxq^C8V@uV~roIZz6mY|FHnKs8|q|{%ZGkEzNSG2E| z7@y_)Yz$X_sJ#f$jqJWK1?({+DzK*oPqFZchH_^*GleG=l9&$GwisxR|7N+y0* zFVnxQmxALH;?{R)K*IByEuS;h6ZLW)aKPn@a3dEUFFjAz%N;<;(L}guN4L!X7j_Qw z6+RK}_&mz*=l(Zs{a@SG2-h))jYRSH%t0VOZfPRi(G329*nEJe332Q9n2{*H?pi(T zE-#;T^&5;c{;c0m;7em-R&XYEF)NBngMUq9%F>L2TfG22P5B;~QP_Y{TbNf8(1a z@hGq3S8Q*Py8u(R@qZO*8G|4Fs_7pEu5Hpp`H9M$=DnP1Z&b!!_Wzl?s+ zK4yCZ~yGVwQ#=(5pjvw74%=<^!M09g^Ykb$A z^7)Sm4RmlTMdm>Zs~H+Z7b6m ze#Y0a+uZ9|J#P@fD3^DRkzkwau~?-R)ZLOxCiO zuC2&B_B%00C(!%-H{gA3BHXOQ?C-B>kT(O9uXp=XR zyQV>&0}R#LF%aQB+(Rx@Xb)c7Am0Z(ZG`JM)4hi^*W01bzP>^J4EVdK2>0vubF*1iILZRQO2EJJT#ega$TY};a-@tvSa^)^W_Hc!23 zBc(P^oSn-t7W?X$pX(%)^>n<8j(77m`K64%Jz`J5c5IDPM7Ce!^P=NK2KHlaf;^^< zobl)1%)0Ux)_zk*G9=Q>J;cl|?jcT>QDQE3r_Qiv^{GnC(KOjosy`c0KWG=XocJ5P zUuuw}fqcDfe~gnUL6coi{KN&l*A;Zt@BF^o=0%{!5rozcKYFe6vAb4fwjoxUFlH_BZO4`&NTo1o(Qz z__Nn5qI2~c=WP9Uz}G9rZM~wjzfrHjA2-OAfUj4KKYP6*I#;iWUp2`81AM(=+}0~f z`y2Ht{JKHj2>5!%__Nn5q_cN#ozHsrX6Iy1O2duvTfo~NMY!&_tm6kSZj|o;o+iYt zjm9o?`6pUke$n1->Rc@8Tr_u_gUBe`my}Ts>b|hHg*A6OYwmHZxyM3F{ImJxvz?{P zl-depw-S#rby8)mE;!p_GjG*i;zY*(8IpTxqdW+VH@USlz_WjBls}G~fnM;Wip>-H zI$uva|4+n@s!_glbt6wGt!9tVy&6BIVQe?@?Adn_*Zk=wd3yRpc@kaa3gTF}Tki7R zo@ukO2U%UIuREt}S%;XzHXclHhwbVyp}(0}*%wIorl964FocX=YT)4!bld0PpWd<;Bps1c=4x27?#+p{eeftB32iX&Nm@kX&yoO+$bfWy2bW=gzGrs8%@2XQF7=wJxzo=n%=juzXF~n!X3@{-HkF2c$yH; zB4_r@ZIPa_!_l{@KC$1}rfYqBb-ZYwV9Po69?r4vZ7lnZhj?nazE_o&<>+XZ?=8#p zh1A&%a`srgwBCf)a2A`3f{m4w+T0?Wr_YnkW9Q1|k#l4-adCjR>yy{>gv;#7!Iu|Y28V_Ue12JFB#fEOe%f1#tdqaZq5eW!8ktW%etLa@bU(Jl)Foeg-?pu}ko|#%_A}?@an@`K`H)-;{pt zIimP$zRDh`Y1B#cmTABve!~6)FCm}6SKul6xJ+wPg&$$!ty!x_UdMM|x#W5?MOmq| z#uXsW@t#VAMti5aa>+YY&12dzvrZ;{*eE{$=3F}>T-yrG_)i<<>wu>Taa+F))bDTD za~$5p*nM^yvxb;Bk!u-G-HX=U2Yh{}*T@j-Ud^8x zJA)9n&jQPdC-Q(NEzLxH4l5K$B*CO1E^PKc9Z<3P%PZQ$ShGV17 zH)F$*W$>h_SJz-awOr4WoWSjTnxrn-^~m##^@h~a^DMo&Nv;4c z&(KeQs+B)6C;po`q4P}B?+3>8H+UuSD6gpO7tg2g_tXZ~MUAaw^nmTgmaM3K<#j*D zG|B$}W!+DRJDQ2@P4aQT(?qzgyPSCr9#7o#6Pn8Bq6l|AtX1hf;_q_zhjuB-a9-Uxd4M zPh8A9XwRv%JHlO=Q~X|YNu|sPPn0=vDK_|kFEhlgT_e8E86W3@_pmN&k`Dl-F5Bh^ zPxw1eUEU-=27LcVxU1{L^PA)ez|%x{g5P+7H4gB!5pMd2*tl0T$%_I1JtI89ukfNK zc|G9yMYyZq;7gk1eSoKl@C3gh-t>MM;Atb=)i3w5CV39v>lfikepkZ}DDw+(S3fB> z$#Vfu6X6Mdv#(-p0z7Sqr)sODmb-`Af|LEQ-<^DQlY9gC(hB>nBRt9b8h8U`-XZSl zdT<|irLV2fM7Z{kmdV}kH-K`PA+CHzk%6vnl4EXYD*N0=xUtj3=7)F(xpCG$z}G3l zll8xm`U9SJHpCOOr8lzf0-iR)T{{lm!q^9VJ3`#_HTovizu9{LVyEt>d|-3d_H~4- z-Qk#R)A$|C0l<{4Wuezs{PV!2E^iWFl!tyEzmq)(@b!yuGgg<$_bH8D=9 z1LbMj!@xtXyd)mwbNw;GFUY~$Wlp^0!ubMU?NE8y!L;@NfjUfvzz z?N8MfBz4^ix$e+1dBsCj^85#g7k2=k@_TCKg#C5c;jNTa!&&U`x;Zza1DMau>N&b^ zc{R4x^^CO!DSWv}{tLK!rTs1u?#6ZRRFj+l`0)_oj%J?U8^2ni3GwVelMHZwm>pS- z?Hl)v^H}6eRn9&WD*vGSU&Y;l)5EH@H&&KbKAJ~v>QmpP(O#+Mu3-G@y!i%PzRK1) z#_1I3Bthry#%CK!?gbrmyk=}JFo#M_vhLsMbI&ipjU7||Ip~x3nDMM~<$liKR-f@U zbQHHPdA>mHXU__wJ7w^PP4deh@upXgt#6FOEJ2g~aI<`PrdzI(KW$$g)V}^zll%&sW@8(*#9Lku(ck7x6!byPw_oiU zt==13opJ0oKMp+M$_#O1BeB=mNR%oz64(v@j`>SpZ&*zqm^ZBP=i{uaX|DzHnoiwf zoKBp^#%l?>h@W0Calad;S)Zw6u?;$gcIL`&%bB;A6E+h1O&My~*rPMxZXrF}T56tZ zEH)JCb9MY+e%CRmX93=Fn*9@U*Pn?4Z|Y3hi_%!b1De#PR@pSlyK3lKda%#y;mjGv zR`+~!%bMkws^*AqoF)?Cu09iu&GL?>IA5G565^?L?gFVp`#@zTnz?{3c&MXUz5zV6 z#(s|&r>zMZ`_}0x*!!Q1J)Mg&>iX;;eP-v$8O)QVeHTkg!`);Tcc)$GuDk9tHY!FR zr{Bch6{%kkcEjqwQ)};@vg?T_m*2wt=#TU$dd9MPlon~;YqkF7-1)FQaitoFWgEOH zYwrPezz17JSMLMt-@cYGkwjTpOqE8mOqqK*;zH;6U)#j*?w*F# zmo(#(!8>k_pYgF(KRDHs>K&ZX&!i>2w^9dd??v2@hpqO^%pL9sbC)#B2Y{RVv=4Ng zCexTZ0gbhba_=BN>|%@)>!4|GrF{KX+v!i^v%?xv_GF@srd)K?lb1KkkASC5xf0_# zKUKeQ1vdCs;?v>cjYYVl8OIKA?nM=v5KkRjEyu#APW`UTT8Hi0btV(1mH94x0X(5_Dmjr-P>d zjS0Fi&C@~Ce{+H^O!IWm^xu-83)4IuH2t?G=)yEl2TlKN3A!-N(?Qd}KS39!c{*tN z-;|&W(>xtC{cldtg=wA+n*Q4pbYYsOgQowE1YMZs>7eOxtC z{clasg=wA+n*NCdU6|(Spy_{Gf-X$+bkOwQm7ojLJRLOsZ%@#LX`T+6{<{-&VVb9d zrvDuYx-iYtLDT=v1YMZs>7eOt2WcPe(eIO^;rCQbnNIqIuc%(lpbz#W=b>&*VAzG|BGzrgzp zPf6g&n$W4QT1=;VV}hsNvr$$u-MksN6N~o(_35rA?g!;^FOy!?B4+`;o3$;P7f7U= z_nuPgtPa1#ol@W<_B7wX?sI*-FVP}5u5Xdc4KImtl?U?G(z~%mwgBE&IKqiDw4A%E zcI@WW{&WbsR{%C1GHvCzFwMwPoI(7atUjdO>_efigYJ_>-S3-Jw@p0$qDuaiJ#zk7 z?!}Iy{fGH)d91`~65**dzO%${Npo&7yFC4=wq+fRCAT}HQLl_Cdw)S(p(XAwa?~rk zN#9OAcTwI!n%j3(wOqAuHa2MI$mCfq^55sQ$OERH?Bx;8H-k*;3tP2);uSQsY)#Tg4W5rXVN2_giG#3T5i)JzPFW|FGOxWW6}K5{_dsj z_RQ?=+Y@7EiZbk&*&(x|+*!Z8MJ5i{{^x8G;Fib9m2nsN-yQNi#!iyr)h+V-VvEce z9y(6qv=p|AYq8H+i+#>o>~lJ1+lwX^n9BCpPbSBUX``O`^QUm`KX%dG)ui^3$;*2w z^OdizZ8zW4ywSbG`_Y+N>u(R0>&*KyceTiS?`9p?V%r_!_Fd5%)K*dFni;Q}e@bo4 zjX&n=B|UQ;^4s;2epib;ANZE%6XEKg`FbwRuVYTfwD#;$FKxrt-_fpZ(0{x|27ugF zTdxS$IgBmx6u&W z-K%5J+%0ZnzW2*gZ`7HXCs*L##a!&$S}j|VLG|sc@vpSV-vj9*XrKCgvaU8xW4p{< zwWdD;^yqJt5#!pI%rj^;4psb{&OcyLdc94jY!kaGSw3Y%_0jcLX_Iv3uF^_NK&tCS)I(*x2(x^K0k@>c5GWf48@*E()jXp4T z7#gFs)ui1(`kut^n>gWspC_ z9Zl|`7TE)Mnh>|PFy3wzzkcjiZF|xG?Wrx=vo7!SAtUH~+O6YgjJwIX^B8mI>l(di zy&Iz1CUzEkV$0szA^YA6vO|7zS$;77WDnPr^w!kazHvvDUBK6CjyO}(l+C_fgKlNw zXDu=ZTz91QAvRLb33O^Ri!qPc-_@Toq%-<~`>cMTFH78kg*x~$Z)dP?oYwni_Wz%^ z$k%~GhA+IJ(eESB2sB0(2x#owZ$od@+V%Gy~?0(5Q1)P|(b0Wl3 z{b|k%b<&5vb|w1S<;1**e9?)CVdmjY*3Z(6C-!iiYm>iay$0@ad?Q@PouixoFZ>ec zD|8_q#=Ouv+jFzC$@S;vO&Y6V>9{wDj&AQR$9yX9bK}YnAGdd+XS_4tAiNzrtJ0G# zqmA$1N{j|~HaBIod;Rc~w^GnCwhunmj{Ec_fA3~|+1~@(vA`Cqq;=fhf{tz@`*n4%WoD0a&w%sw#nyb28 zXjRt~{uc2q27HZ-+9tVTt6UCT>iEXE;|s0wjebkiZ*Xs`yd3cLi}ARA(QgSpg|Sw- z1MqxeJmwSrX4lEI@zt_+AjDfK>WXI91Y?KQybRkd)@!F18hk^myc!tE+dd6(`!>=s zMnA22ZJxXoZ)}w(fC-l;#I0O;3S)e+@1GgR@Ja2ilihRp4L|5-+25W&Wm$7{wTw@+ z%5&e=D$lsGL)`j=V{cv5XeX66oA;)jepc&H(D~fkAni9Lt@3T2?fhD|fLrca5o^1@8;|TdSnL(JJ>Jr{6%=CzUag zKcR_#Q@PRp7N>K!67Vqn8R)RJ&V$t1*w!E~H2QP*w_D{J;DMWT3{kGi5@rqKOdkH` zb;#dol@kEJ4x|Iz>cm@-o$P7Zyy23%K*zs{JKU#w^f}(_n899b`Z=Q8{)IwW#d<98;#A_p4wdbJ8|#ZH*$&eaevx}?8ogh zJ`BM*nBi#m%!?)cDC_Bev`X%H?ugBpS-a$znbp2@eKPSl>kQ!gB*d*fVlQWNVy-6i zQ(C`Ct*`F+V{eg7BX`KA{Oz(Sb#ukuoJpW`dXJl3NnCJyXH=G53gkC>u`BrfaMgva zrYvHPFHzRGmSyx8hYP#2lRPZ{LFQ`teu(pemZ|HT)mhvmXt*MJb3WbCEIam}Bm?_S zCT`p*vTk8qR!qMc``R02BGo3xEo+mPpP=8BeH=Q0PM{O$1R8-hreh2T`OF>ZU4b@* zyBMw4AoVhRKSQkCm2I+rRhv9+${`*}fIFGdw8i8x>n8fL)orp7*t~< z3163mCWC*Fv}sot{XN8^JbKnj@X6ju+&A94Y~dc%>~U@k9q{Y1`cQ0YlWzk4E-1va zhc)3Zw*h~GXSZ3_H`JRM(>3$f=3LvmpZ50Uu&JNR5HE~4&(oc(Z^Sen>5;Q(lZSosn!IZ_C z#&5!JT%IO=ql|#o?q$PE>hC7#X1gBnKIam9k=DbUwT3mW9=e7B`~=N>)OhrN!?v0j zXe;nzV8tvUjSOi&PU&~jwQ}JEX`bHU{7H7oKXM+a6}~@SFpbJ z(w@{2X*ptljcnRiE9*vyNt0hG#MO;fsZ=v#>I!qaIi+v-_I2X#GNbW0Tk#pR@0k}~ z)+V#Sp_8=_?7R%qQY(mU#Gbh#-x9_)Dwwu$HqTwnI0Sl5aru*Jx*m|0eiic%2`|| z$xH?OO0^$Y+h)hxWc0>1nH;oZIK++5K5LbU(}RrDify6V!4==wChr0cxjZ3m^jcTA zbLMtp04?w?@EmVA(r>B*9K5+r3PAIzTAt1kHd21qm@2A!i+`6GH{T99`<6EOU%G#6Mr1wp2@+sh6Q!mCtfZH=!M!Y|d zt_kJ5#6B5+GdhXenFlU!h?}$Bo?4YLi&lqJ?fh=h19Cpmv-d&rejn)BX}>{;2X<3a zs*SeurVcyCHhCJjT=S@ol6k3iQ<|22EBn0T731_ZbZR#hr=trE`RP37JRYW{a>N^E zy*T`DtQT2g&@bn#y*%G4%lDL}y0Uz3$6SjXe0!UmcXylApQi1ltc7HnL^Q@%c8~Lw z-P$Ny8853DH(fI=(t=K+2A#zCJKAIdC>Wl!C&E=P=f)X%ydEQ>(b#}_?t{34Yag?5 z8;kF5llKDtzAVI34Jm23f_2oqN#Bf4247pRlhL@P4>AXGcAV|jakhn6VVs@UjPgDW z=eGLcb{V|4O~!!qF8kdhT*o@=df_8{XTY!hF;3qlXpGF5Y8NeC$LXk+t+6FIGp^Bf zeq=dicge(oHu*Ymhbue8t$!QekTsj{=x?d)noW77kI~N`Z zrZ0%q)|Y3TqI>NeYhwPTMLyXkCj-5w+r9|#)Yf*{y1$mas!rCA))Pwun^9zHQ!{Uo zr|Z-beO&wsa~kk{9N~#r$`fC0lLrC+y(2t9J2l-VPXV4b#BEG#;#m(P0})$xh06cM z%9^8hd>yo*1Dn^11(W@Kg75XW&e*C?EZ=!1&J4P*n>mK=qxe16Bf!7W9pikX1Wii! zh>>8A(AWcRkLZ1*O%4FlXV`BO;`R;RR`r#eUGfcH=62}^>~V+Mt>rgp`Yo75Euxvi*i-Qipr*cVw^fB>!)>|Zo!rVf7)f~=>66>O(Gh*Hn8^HRaxcqdks>i^<%%t zp0k2GmvM^kyS-X&Um!NeG(NpmY1vSdmi#%|7qpLbS(MHk4d~R)XgO!RvUbmng$Hyj z@CM2&kl9{{4@AA{PV3Y16=1^f=lmJr^cS=Ot>+#|BWmD^r2LZp%hIkekVEw*+Sv$H39qf?j z9rTXv0|Bgf?Tux_3!=0=zA zX811bmiZ&o^3$Wza^iWmKSJE<37%v11PQ&^fpXmnGLGEad0bk?9gi5-y2Ugm<{>`u zUFi9-iI{CH@p7HkN&RHTj$+f7l8IFe|uKS%lvR!HeO7d9p4a79U>;!FmE{#??1yGNrt>lY=mk!xJjB&sAbM9g7kAJJ|7jb&9hf}uZi^^vl$GEP`K%$Na>gjoeWBJpQSPGOsf(8#7X3!0LSD}Qtax==ZUwxLT8L-2 zYdrrh;`uKpp8pE`RF0C!hQi4ggUHp{4H^UbXw}otY9uF}Yx`8*CZ6m^rjL?iXL8ar z#@aoyLk?b>mREx;|Dc>T(vc_`5Myp67z56$dUZMjo&v%zvqH;M*7aQydLoK zPmJptgYGV%vHm$nv8Had^7D{gx3o;FldR^PSHph8JzYL4oe#%4Nv}f~d{P&Y@IKC(`ZiHLZxbDSUs`?%eCZ-P z$3k3vdm4$W;?Eru`aKN~9akFLUEkvJm1YYBL<#o zuZr;DqA9IQN%j!?0WyaMj#+lR5n>QGZ92L`>@xa}#(YH^jhAWWU zjlCuJbYoU-FC0wEXMhtgw*434sZDxk_Xh6lZs5-DdhYD5iSF#Ox3ZaxBgUr)>BK<{&CTRpPW%vOWHle7~xjWMOaS8yu31Wm{%`!7xMFLUb8dE%1x z042(|_Qu3MBpSzQA@MzisKV^M$0HDSAOGBV1sOUfvdCcnO+xcMxCJ)wuYhDCmq zx<<}4%J{F-((;?MjNf4Q_YgNa^F7A1uAsYBA8+Gk*=t&LpBihG;uC54M_}62E!c+^ z{l*z6ptZWRX67}z(SeFC&G;QB?o#b{&)`SP`~~utYCq_APNt#X3}~zl5}Po_WoE$I zg{3q`rs^aIj5Tk;oGpm$S2Ij(|KF$OLEvt~pZzJoQ(eSABo=QMe)?Urd?!7V5R=!$ z75GD1&I7*X^5p{D#tdl`d`F8WW{8npC~vM_W}*8NP<@&Et|1=qFZ?kr*8`q^ge#q^ zfA7=CQGl<1ga`a4q4_f4`9*k8zo9>+ zwsvVuw@df)v=8)7dKY8=boP!jnDb}S=9tEeabz-MJ6xoW*#E4X%gIXQv5YxK?~uur z?ea5VpW%t`Muh9$l!O0K@E%}aj_Iv!=nEG0iOPP5v>p2GMz_iM>ULRJ+b)MF!=6R= z*!8q*jcVJj`-`397fNnZyZixYzTAHA7>95srm=OoaLKxueM{{fZmQ_%%6f;x>bPIt zZG9!C65m1X7kM|RgFdbwJ3|KZ?edSn`%Il!xp-| zp4fKl@l7emVKs39PZh6~(|SG4zF=b&@@`T7EXkePE;j=`f9Lulz_S}P&hpvzOzOta zZr_jjA(`COE>8lNYhL{x?C*;2JiT4U9KR$U<@MjC`Zu(XcV-h>84%VP% z&U~uFE1lIYbAZ1Gj_{S(We;O}0Da?#+VR)Qk+0ij=w7x_)i^P8DF(>KY)o7-jA?d@`);O5iJjRybl9qp*cY~O}7wmolIvOPnn1X69h zU%IC$XZW)(5Qtx{0=%vHm)QwUk8>r zm!e-Cy04u#<=W*-A9nLDz^%M|Df069OOBxeOOd773(e?~G&%i_C%0p}vsyOqTf@6i zYl(e*4zWuI7u|^fw0bP^p;89lwZuQ%sll~<6prygsUZ9i|9 zsVnUFkMLr(6tSPE9_y4@=3?D17$-HBF2*Sc8i6)Ux9xp)f5y$)C&q3I{R;kOaj)C? zyjk10s)`tiYsAm-{W`}l?34@lvv%Vi%(X(QDcdB*Wonh+23*>fUip;GL7 zXwFL~@$|^uHUhOWeTR zD92MCa?Ou;xE=d-!0(AeA@2CilU9?d@QZMz z8KF#m|03Z1U_!j?AI@DyvfnYnUHMa;8F>Wo?Fn%k--uW$=!tk2 ze4hA51=|n2ztEMDj{@IP-pXrqnanNE$X|f^7u)g{(TpL-uE@v{K$!34-5I$B7l5QT&Jr|w#zM!f-*c)rBi{h-zuo4IaIfbcM*iu` z$OK^SMU9T#-id13_kqEe*nW<2))vm`s;7?Ak?*~}7~cAOG33u05##Vt`eZ%KxPkxr zjJz61zUQTBcLTGoZZQtO8322iIGw^nekzA@?hezOAML!k8$72`&cQZma2gvd`g0Zc zX2z#>17|$oQhaRenTfKXG4^!OXq(3)8gvH%ZtgYoPGc5HOZ6U|*r$!b8@=s#e@4Cz ze97>JFX^h!jnm;5(mhK(Wi$Fz;BVD4rlEhrJmwqlw%nGCtk{~7(i`nKig1-5X1L2e zA|pGtu{PeTH1zADG|tK)jk_yIADNN0fWIpU@zjy+awIlLhyPzTNE$~Wk6b;bek8<1 zJ1HX{2fUq7gsaUNwr0!uuJ(*jC%IEH@;t!PN4V;wSaaI3o2nUUkcpicc>w4(zNfS) z#P!|@TBR%Of*v=q+B$lfy<2QRgAFT|Jf zYuU}GvwjL^NK$WT&i~4H;dJReJ0sTuoi9_qe5XZe64BVRwb5nHChg7-`n{NUxyR4V z$eQyqGOB#FEZ+N6{H7uL!IUM7@Gy^+Y2UP@ywuAyuslyAZWLqsxr{}4rq-%1bQrm9 z@mot)?!HlyHr`VzcOTs-N8^XF1wV}SbGJ)3ei`)(<1%z@M*8< z^!v>3O}8PN?54~#b*!h3N`D8?t9i^Cxh|0=5nuDZ%wF#33fBHHr{$~N(^wnwNvo9Z z%*bPJg{R?%-C2mYs=n9BF>lMr)xf=OzZwd0rCYGN)Opgo?n0LMhFgyUJk_CgeybMQ z`B`~(J@PDmM3Ke4mAxLI&Nj9`_H6UkVp->;k!kf#1l?a+ZP}*TbKaYg;r9VoYyYsv zk*2yqW5*W##+_}5n?1c&3h&RzZvg*RYlIv5AD!6;GV&?FuZtmWzjwYYci*G3xQX9! zA@(A>7uh%FnC8}}KO_3SVCuGdxeXb~*{08%yLD5yCYk(jMmBvUBPYI6+eSS?Txk|~ z5B{U9^9M3z+r$vh9%zvR3(IAa`?Gg4rc^hZ^qV>W-&7~@0v=4B$Y}@f;x;{Hts%7k z3(y+53SCF>vl%(_e!jb_TZkKb1LUwSuC}89C|m8SFuAn<8A>giPD} zg^ZjG_}KRmt~B&l?tzTF1PEoyd%u{GF9UZw-Vu$?LA^)#66Jpx`RYS{Z%n4KpNBMw zJ*Rhy{s#P>6XN!4+#$&~7gC-2)|Ae{D)u>TBXQ&pXD{PTWn-h2t11K}mE7xQ zMtto5jImEKdmg-u-&jJAs%wbxMc!*Y0F>6OE9P4;7QT~_9|3c&J|Uhuy;)8-{xz#4 z>0jf|6=}Z9NkI55U;hZ-5h(1nZH#EthKT-DyO8l8WaLTU<`3{aRbHM!US@o1+KNM* zgIxX?XA^@?{o>j=|b9Lo91Z5iLq+|N)ay$|~#eF4myvK@~_>B!z8 zT_CSa{xl;G0bX7Sal1F)vgF>(v0LmtKmMn~@jbsi4-vQEcNyO7X8nJ)?bi@D^ZhR4 ziJ8-H%;;h4;XlqD*2)>ZpU2OGJ*1lZ-br};0(i*riE+KV&~d0SK+=ps>|Dqf(U`f8 zzUU9gB!I6^ggct_ADIh)r-^V!Q{wmfrzgi=YXEzOo_V}%AN|I7 z2yt^CuV*@YK1lx=9tunFiGLFbal5yjV)r)A9NO2ar|R2LEjz}Le@0H0iT~lu{7go2 zui-nb#ZC*kuAX<5G;J@iThonfzax=GTcFiAR1pupWr(L#2cA01-+P;z5u>*m*~4AP zZftN_wiS$L?c68i4LMe&R)?WyRNb0H^j|bqp3}c=7zn)@0Fx1{xs#%&OW*h zY5H$~1y|oB9_F=ndf4fYq_Jzo7ymxqi^NwXGaUQZ_&!V3EhF}6yYrVga#6dLZdAvW z&JoV^Q>S*w%AFlD>Fo4EJWK4(TV@92dd66qJH>KrF*iO{*Jt7Z?XmJeS(n0DZ*X^q z+zeQ|K8bN7Q>uL-aj2mgIIBZ8kL$c+49zk37NsMn1#~8^@mHC-%`jcD;)hy3m)!HwZmY*Kh-Km^k)~p}|*oNC6nvGTl1ZJX6aW zUT4xL_-((dkJ5#Bl-Kl;elzw>@(cMjCZbT5B+JontG^}F&01Y6gRkk37Xbc_FTx$o zB)@+ppows$8KVx@5E~otddv_v@x2Bb3uc~pv94j&kE_XkUjs2~0a4A#TR%06vPHj6?V|>l%>feeKtE$X9{-*Sqf? z;8x$-!Z`_@>z=mRmMQeDD#sw(tDHN2eTOW&p+in|d1IV@hECtBjM7~n&fm!VxT!-v z@n1UMa4m^&1{8e~rlp#yG)@w>?QYG;qsPCcLpA{qx$+}i%bDYxqBOTsM{^c{Zz9da z8linI-iWh*rhV)Kvv2B<7rhz()9bWv$UBBlZkXo2b?+S=ay;Pm>JhGXX^b}?L!=1Z zn*!PpH?rFmNZodiVV1hKvKCFfr9*xId_wD@bBc9X@wPiVWXjY}7U5wY7q4lyt)ySk z#cN_r`8ZGq;qxd^f4v(A5zcsq*2jSgX|u%AZ21r?vbF6ub=I{-*BrC9pbwL~JLJ1S z!SRl9{U$L@>Y_%uXhC(V4RQwKw0^)^DW}Z&n)Q=$i=TwG@f*el{aqczdhC#IIsOs8 zgr9Q>+IisF{G8+8kuL&z>qpy;9+5W&^?gAb9mU+s@wr@^Id{CfLsq<}Lxyf}V`naz zhKwE1WP56~A7|-DqQhBTgW;#L&;s!drq#BAcN0g@X~DPYz3gd*H}wl}t=|gX;$3l9 zti8~0GU)5KfUbSALp~2|n9}*jH&~QL{Q{c5728ScY2*I1mE+lHc_!W1A)flIc8GfK zZpQQIN}2j_hg|Xz_JcRrF&N=G*H}*qpXrca0(Ts+>qdxMo2F6Zp~^cXMn2ooC_5HL zh_&$|**NoJ;zYcJe!N=7KTAxF`#aElalIn_B+GE-J>3f-f6>1mAZnwhqM39kThi zo8KC2+7h;+Iet$OFL)z*mW^Y*vJv~tjod|U#0Rqc&ZW7>J?d}YtnIIeNyNQmb;aHfh~<*Av6;Y}qigN4m!@L@zxgxow^DLEvs*UV!UaHIq70 zLi@FXem|Yd_(t^RI_2|6b;_eIZ;0DCe49)k_maoHk$Zf^t9);PpIPB(;wK%`DVuM$ z?GEwO3g#Yu1S{|(FtJ)xcU+_%Z|Rh`JiSbAc)Utpd8k?n57o$p57f%e19furJ^0yU z|B%N1p&t8(sqLMz{`gKAar{F(n`?g2+We8yePsu$gBd6KU5dW%bZs#2ZVW`fvJz2|hw zR$xx^>)8YOMbBStoT2pIO@F%vn0Ne>c$i;f*QK!wV|TVQ%AKDkb*veCl4H@|q8B-@ zQ(k+1r|i1b);YqpU9@%lxt($+5VlqE`+@x~UlI@VnDP3 z$?*yC?1l#B$_b(EYgtyC(st;anb|2*mv_p?|E^Q&Z?kO(aeJT8Bi@cj??U=s*eWkv z=$6aovU29kO5Rdl#oX=X4r?v8J8NYAD*EH4opP?@7vkB~$n@+%)yx%L116Q=zapCxdc&bC=&By)_eYslhua1`$GuzQo z9VexIowD|Io$`dsAL2&Gh&^`o{IZhPXP?$*JMX*9Vf#Ie?bsN4C+r#1*f-Yam&?KH z*~4yNoMG>!V>HCGTN_Vbl|NiMPite&Ry^O8Z<_utmsMIerD=2l@xX|=v_M(dY9-5> zytPvZ#Za!8m(Z^XaShu}0zV)Nxu63D^02j8nGJ zpCC&UTix!j`6`+CaHo6)*!(8iXU1=h!M{UVUem~@zlV63C*WDI^OCnPKhi0$1g`Tu zv8z!024KJAnZy_8;cN(f+ebUgZ^(vtYFC@=dZ3Zm_M7RGP4o#q(kbpPgLmosw$#cN z?o<1@Pp#oT^&q_d7g*3bs9xv*XF%TE(6mbqbV~P|ZF`e=l<&q)xe>+Ps~=Cv2uA1^ zKU5`WK2R;kAE=Qn_uyN(pZFBSgw{9wCO*eJ17^Qz<=7BU-M(CIhtKu!xf(t%fX{{S zISoF?z-JSDR>EgFd>V-@og&uZ%Kg~b?W>mR2N_5Dt+1V)`bXLX%xT@RBV5OXU49@X zwf8JD=`H_6dwsj03-K^-DuW*`lc8Z0nRO@QN#l7u6|aSZj0F?V4*$UQ_y=Ydh;7N4 zr=B@n_-EExVEA_1haqn6Ztknx;|;+lb-^mRfPM2U_RZ7SH&0^U+|IsvH2dZ@_RW6w z%{A#f*6?wii(9b!<=&~2 zxo>ES^@X}28xxae8$YYI`~YwA;U`wqTTr`R6*TWr%6n=1&1rPQVI^~ z!$8klERPUR9p5I$V;67~b^(3Nt3K>H;}*f|j8-}0adc^i>g1@0(2YL8-gAJr)b3$U zVOKEmQ`TQ#$nlSH^qu4t@(Ou{yh2_fuO#wjFYl03?s-@HvHS07KVsjz+c%EBr=2(L z)~`+-yFNbs+V3@upfpLJ38kVgw^!}h zm#I2>VRP-4>BDN*j2&K^9@$b`Kb))0{dcFNo?>0N)Amt}r>SqcO2{wd7xD}Fh5SN( zN#swp6F2#>seP)g*gDkL zS1WzYxmM0bs)H{585tjV)YUP>QztH$6Io-9V~shAHD(KIOh0Q(A8SkxYs?DPm<(%7 zt6yW%HIiP3d|4vSg7(qIdf7N9=n_-*-guaJ`&C`?9borcZJ$KAqhArwmuk9XTWy6t z!WYr=CQp5ryaMq2L)^qeTxRy!lG?ZQb)zSm*7|uL4|K|nUGhcXaaX?xU!uH1bC-Mu z@a0AL68y(oyX4z|=O5z6mXEV=%P@MLS^QJg?qz{HS@zkXbeFsz*gxUsTZjjAy&2jM zc)AErtP}IyUGg+w)(Ip3E|U!FM3Y-5^tUZp>gvi&;$eQfPVg3Uk$yFD0I|5;0*Zx*?af+sH(H?drb_8fEpktFknMKBA5GpB zto7g*9MFE9W^+w7+WOMV3GDlvx}SS_dtIuS_0zE#Yn_+&mZ%#*_y*nI9cEY6NL96( z_lH@Z=hnvwd~f}vO=Hxkb*wY$N>!V$MExL8qE_p0oM!V}b~WR99eIAnx-lp7<-R)P z&TG%K67}JyDFg98x=@W~pI-Ez*o{5AM7^NH%{4pyjh!-59lvgf8oQcxVjb&5<^rZR z>9Y1G%=lzXPLARpXo>n-v_wtXNPP0Wyi5__y&KJ(kv_7i(0q0y&*#f?+K9MynzQ_y z{fT?KGfUKMvkuOK*!>uE=&*9lS^jkTx@VWD)8-DIK6w@duj?>#%})QWg(KC%!>q^X zyb|^M^Ga0o+g84_%nX00QRij4&Z8HXs7n?)+&avz^GB-lS9AB&b=tvgNAg(5S;8eH zs&N^8PRHdmTmHH0w4+6kOl zoJ=`a?vS%d)=11>3MtoKzK4BIE8oM^;bxf!@l&;`MBNQ+KUwBM{B&MXqK^DRzn?7g zAbyJ0l&Iyvj>la)c`1V7_hJbxhUK?i0$GSE0woWY}Zi94CEMiMk(T zHd*E7G>;98Vx43ChR}HCU}M>@m)~K}{jR3y!g(?d$vlC%+fe3i9aopAFMo-#Ux({7 zo8J(i{D;Na<&g25-$@Qq7aq!gBIk@{=+nM$-(JHQ4~lNG(%0!QyB3U83pi^&R3EGT zN{PDst0iiw_Mc@QCjGcrMZZy^=6tiiA3Dur!>lpZ@tywFBPlofiEF&If5j=VobX8A zIh`@b{z{m+FzZBqPi8B7D4Rynhq-G`8pje(v5UJh@?K|`oFVt04{dS!mpc-yu||&W z|NhS~33meH0p-K@l6tI_sx^-&;#uEa8}8F|Y$;JCcQGfr*(xum*}VI_fw%3`*4>Lr z@k^ig(?+J!CQf9}XEZuR&PLLA(}ux19Zr@xXY6#}!<^&3em&|myWSX~-q;&dFY&JB z^VNQJwE3NT>vy27-%IiFT^KL+JY(NX=6BX_gGX3zgjsKR`+kF6%6grPG|PCE;XL{g zbUiT7@6Ekm-h1F|L+oAwRo}JBAlK~lXMGz(elvF|6O>W*yG`V~JDdSmw9h zs`;&Iew)$!-dhjf8?ME^NWS;U_f1GUd$Va-mz(o3^4rl>qMClj*ss&!G|RWyM!C%Q zmpOf~>XNL}7lx@I`)^aIi(@Tn>{jpbnVEh5pHQK z@@_QW$m?;u)6DeGOc%dJ+4*#d>IG>DPv(Hh^V!>6XxdHMMV;$-#EsMJ^k@B^6~9Z- zll@JBDD~qyakx5>^QIGF9 zYg;hjnOGZMto!E+xPN}0b&}!OPl-x7Nty6{g<(6YRP9UX<-O=w;m;II_*`wct+SPQJC^ zd}h5{%h^V+eZpq-l@4hiQcpXk(?_PM_Nk@nZ(!POx?NzOZKtx#u1&+$CiH9x^Yjwd zA#x|IWC8aH%L~;}3rrnp>h?)ePV##dd-*mPpC2#**eD@#r~o7JAh`nN`0Qp{KVCy>{C^-ua*0s zoDZG2zfq0byHbtb-AdcdsIE_!s-tI=s`(vOy=I#kRdBCxuW+w&-0R;Yt~Kxfh;GfW zPf*SM=<`d}r1_<4n+`L}EPC0`U2vZN4A}SAvdmg{s|!liXkg!0a++PV`_nSF6`Yp5 zwcs@WEd{5!HWl=JFXSZFR<5rp``odzki4H=sLu9ZkA7IEs+N|jZ-M!@ljkwabM{}$ z`_NxC?K(eGs%phvN#3s|?_cFU(K_1P_1XR?XJ10f3U6i~-W?3Z^X zN3o`ncZ%B@OVz!g zB|lN%GV6@rE`88Gx8h#N7faQfpyy7j?wn>BJ4Z2(Huo{p{l94^^9=L5+k5#fiE6%s zu%=X$kGxjqd$GifZA$GXWH9P&tZ?cbMFG^w%Jz?rHS@*3gWUa$l&|bdF zo;jAdid5y*rRpNETEdlj;S5F0fwoe$UhHHIw&@7dd=7S*lzI(KK zcU^^glRL++)=f|^R?lY4Kbx~xdb8Uq*G?Hv#&E`Sjb+AKjeTvndTsv#^>XI3);IZj zxDP^2NS@Zwgspc;7c2A44D*TQSH^ntea5{D8PBWHiHlU%x>9w^*U$sslk%gV@Qev) zmc8p(=GuIV=2+^;9y6_dZPuJJ22|7UzFDe z+5f}OUSPh{YwB9-9elBS9~9qZ)pf4f>2K_KeqZz&^KMd?vpmDnrp$hZerhjOr+zOs=1)(Zrv8SDkxUKq#3 z{2EB>uyV~#Ki2midEb;f0%-qQ``oQd(ky*4bG+)jxm1n$ZmD`yhvzgq>ZSXjdXaY| z*vlMNJ(}-_ma5O)f*!QPaG3k{j;pM8ZT4e%kAk)GC_N`}-&U$V529PG^2s)fP8NO4 zy+GzK&S&Objt%|is3)K^j^nQ9u-)u$-HHALn5%76v(u0D zt;;c-C5%?38yw%d9BIB6(xdN_S$D?Ro9y`=EB@DeOA7+&CF?W zuW)bnbH*s=bE`e;Z_GOSLoMU2rN=_5^1n+}3s|eecbctl-VM#VH#)ZB2!2zAyI5K; zbyJR3o1382E2ZkwV2=*VX&zg71Z_U73bns>Ndv!Wy==c|OLr4v+{e?042erGamrMnBK);oA|$C$n0 zXRJLm(Pg#rY$9uH?y8me`7Yht{m<~O%sIkd(t{2?fo~F=z?|y@?yZ{pLFQfX)7T%G zFrfb5XT~dc?JAVsgX)``oBJM@4O5p9uI$$ib<7vdXJ*)^686Bq^Juy`iTCndCtC0M zbum}bZMBDZ&2=U3L(2Ctl&4G;`O4I`2XtGJ?_yv+33Q8HX@M%;U72l17+L-lx(PRm zFjY>N);o`SkAg8o_9*Q6T;;Sfbpx2zY1L_#S?ax-Z~15nOd^4tnXct zEVG#&&Y)J6sqd}kF6wkivy@$qojJyk7FqLtp-kNb?0prd*=3AS24myrGDoY0=!xm* z5%c#u-PDzY!P;5A8PK(+OjTc5rq(@Zl~IZ|9`GW9Cx ztHaE2(;WCIeP4$o&z%v+dPEW@oroxsS^FeJ8Vw zGgf}o?lLtL^p!DXFXkoSfX+*<+3Ck@Ka{80e#|#ww2mblDKGU$!Uuif6R(($2g@F| z$|~2KUnWTyvHmTbELv zofYNkQP7uO%0|pjg8L*aXk=54Or`T@<^R`=g%{6EFmAa9( zN&U1>Emt>!zPyruF+Tt{>9BImS$-U06`jd%lmKT~Vx9{2>acRn2l*jgY8K~!z#hx8 z%#L=|9wY6bFFyQ=`N(*=s{XN64!P!o{E**{OUuO5`>+mX9lq)~5!^<+~gx8L{+ku_FEVB-;m*<6z{o!SqbHb~|-Q~azFUzdM>*D!t zM|fFg?Z(|yu4V%}4_RjIri16(9B#7AIq51&m#Y(iovtji4lm8~wZM)u%bXKl5ANP_ zgqLO3;YBZ}odP?&EVFjg$@3i!H(6%wrm~s(1a>%1v#Ut<;&|7OGtVOL$R2aPk(BY2 zZ@agat65;}qgLC?GRr=PcGroU-#Of6nH}z;E6Y^^*x_ZF9qzhu^LK~4EVIL1?W%J1 zWnhPwWp=ph#m$)2{qC~N4tH(1xzph;%j|GhbVa%H0XyC-v%_5nZk}+s%Q8FMxxY}Z z76LoGEVIL17j9m5xXUs-+*N(CT(tl@yezZBT@P-KSkv#$Y1Y5TZk_W=JIc^buHvi+ zY<^7IgRD1l?HHFFZXDmesXD=2AIQ1J5Z>!8SHr)|@8z1|s4TOq@mST!K65>L%E{fs zRm~2*&Ci-}9(Rv88!*%3;`N21ncTBsePW$^f7RtY_pW5hV}6hA=h=5qaBkfV;CxTk zSe4h8t3_bhO$oibH%x{U{*ZFMhSboFq=R<+#cE9d`MCM9(o@a+}Ex*SrJqVE=a|&A4O^DEX1`igjb}cgs~^ zbGho&ab}x!esHUD+>R|fLJj-5_1zddz7ym-w}d^Gx!TdpWn@j(a|?R-R`l@CtUP6# z+3S@0z`c0}p5xv{eU2)TyB+M8pu0-^q}@BJXZ}Ow(wf!I+sjqxj&c<|p5JZd?`Guh zIn1ME4v3x{zF=rt{1B7+6VE>Y7id4bkw@Q2ooe%O$fp4NxtLFNJU?pOQ10j)tHw2# z_7tbb)JnLL&d=fI%q`{W3xp#)R_;)eUVei)y#P1SpO06ybNH`dlRB!9{lXKKvi%-$ zPr3RA=)|wExmUzIy~IzRN1J>eY5Nd$ z;?_dmB|1Wta!_2v9n%qPv>wU(it=aY(TwAw3F@e!t-rX4Fy<1*rwJoO7#_m-6k(i9 z7{?RFSi&eKj3UBtey>-;D_B^mjwT%o3FAD%m_Zn45k`P8rV_?!gmDsKj3yB?hrTwn zjJh60U5})$)%ZGCul!Yi%q>ebt~_wZ{jzk*D?24%{hM^^EcipbB?xtv+hkcr_AKfWl!#%s&f?5er7O z?PS_kS}=?`g?wAdJG4stxOrB8CjU(X>4IU>o?H^MYC7+pg?Kk@>h@yB z1NNIYN!y#uHw%tY7xDZY+TvNfdopFu7&U%pu`1d(+IlYQg$1rEy$97LVNZInTu5yv zy4*jRD|ci6Ue2>3?0d#>#?Rk}{0U1a(|%}$C1(3?*l`ED+dqIiI~~zq9h?rXTB=&? z2TF?_k9&Z4HVqJu?cPrJF2Xf+5Dz53+c9^6ouF!xOI1F_+54~gz5|dE{(|~Mb5l!G zDl=tP)AGjpO#Mn@q0zjuK4G*>S(rAAMBNl)b;f9Hsc&kWa@neuDNW6pDanQgby0KX z93wL$T|YC{Vu)#>(ISp6N@w`LWkxz}G$!Y)HWIC3u4-;tS)VkTYi3m~Qrn;HFOxg| zI9_e%9JJkG_jBypvD@_fes`~9w<$PI4RhEX^8&wRg`N6szq^72eZtw;#K3Xq>8Z*p}ZXR}Z z4!hC4qy@WSjzK(btY+X=1Clb{B^x!#eD{G$X}!8x3&E}+I-Br z*7L=Mmd9n0S`%^Nj8toi4fpVPco^OXO#{9UT~e$9I|SG{OGU$1$W z=41Y3*;i}csQCrW6ML-Z&6*$7tp04-2Q{ZPZ_vC=^9P#Ge#vsbR`V}34}aORpQpK9 z^G?lS?$F5JO3m9fAJ9De73=x6nxD};;Z@7NQFEte^%u)NtU06kLCw1~7w@y&E!MnI z^B$XZ{g#W4;V+~4Va+pjeWx^Er@2$}uQjXpEdP@<&(|E+yi)V4n*IN@+_!1op;`UQ zvcF2F>(wKycGji&X3a^>Gd1rou-tWO-l(}z^8(GqnulqAin~klcdh1`n)wiqY5$nA z_*Ttrn&X-$XnyHKE8QzK`!)A|VA=1`e68lV<`Xr)^KZ-DqncN14r+etfc5-Z&0ftf zzHixY*1Sw}k>+3P^1NR2e9fop@-;Kbf78$p@^`b0EBv)-uG2hE^Ge;ni?n&1=3d=i zhHCQxZ8ihrKd-j8&BOj~#d8LFUH;B~+hY59_)W{a=8qOvYx9}fY`c32oh^T7zh&|1 znt!eBJGA){?e9Fzh1&il9dDQBLd|uWC*{QVu=Z!izf!xi%^#q9oqwe|f41Fo+W&6t z?@gV~X}Ub3+I_KhcfWRbNlv_PYx6t$`EXr-c08qa`D)&g<3FYCuhMM$OXs-j*5%%; zxmw5fsy1J%+4g^Pj(MYYZ$E!H=lMI#9prDKwjZAJe7!FJR8Bo?(f+Q}>Ag;y?Re7K ze4)*RH{jcVf*B4&1(tp(utKK(genxXzKey9$y>1`- zbU)go*?zu`IhXux(*Ew!;q27rhqd|9oN%wx^}j*$V$EALFVnnP$KR;UFY53z+I*`v z&(-F2+Pp@auhD#==A`Ddc4y}!t@ClePUkb4_iFw?bDK`jd77tauF!my4(AwcuGHps zU2e~5z4D^1hcuV!@TY0_cWCocZMM_t)%KN|@6+M_Lh}NEc3G zSeApMP4ldVCYDq~)dj5$nfjSmWQ^*jB`lt1)y10C5XGv?5yFwmepKDm=U&Cq^^;e$ zOkP#rI62YOY)noO{p1GEWY1)`xp>QcZb)+KVvWg$`o`r>hX;k!l4;Iyk{edKxrxPN zi_y5UzPYJ!h0&OC2H09Ky{5XZxoK6+taQ4@j5penNk*fenXzEk=!* z9HZHK>Z=OQSUO|Q%*Dp)gki2Q#h!ADMx&R^nW5D6_*>dwG%nB7<%C)_XXb1IR$m!X zb3tZxO+!=SGPTx{>sj#D)Hl|&)Mr}N*DSl%M$^SN3a2+4v1D}m#CWWwK2cLo#*NsD z=RyMCF(qKRn=JEnCMH#M+iWYKp5PM?T^2{i6kE?3wF#WJAE}BZssN1iw{4q zo@mX56w%j+%X9d?%;vI4m(V0iXg*c?Q42`?FQs&@#{VL-%0F%h&lXN^scTxbBG!1t zN3Ny|NJY(gBtsoHWO{3=p=s4eO@)Loj{s&3nZCMZxshr7I04k0*VkO#%y1?em+W+nQQ4HBG6S=2+u$!_qcrOk20D7Z>qZvL@Bqn2`Op z8j{=4=ZyC8G9@@jwbm@jQ3y3la+R7ikeM}0OocX=xGri*t?nyJJ1>V3j`X-okC>in zXl<$cIR3SAC6p)4_SKS!W%?^ss^V}GG0)UGJywYf)MpPPkaH-cOH{zACHqx#9{;wE zoli*)rri%C2zp7)5{g0y}a|mspCzO7DKYnn1e;8q$LvH3ALgODs5T?%8 zU0TgMgw{XIux$09eq{E{fi?eOgw?P6b>coGyn%K9VT2|_qk3;}?SB|S9IXGZcDCcg z=x=rlUgz|8m|D~JdyUgCaUND*wLPn^)AG&nfl;9;;T#wKY-z!dJZ%s)V2%oUmiwX= z&OqAqkn>FmXP!AfpG_JE99Q!Cm%d#$*r<}%cmJ63f6SJ9@R*V}h^5wuGR!r7deENk z*j1F*v&8TAL|Nd7MAg=?;xM9~s2IJXIc3f<@{@#Jb3Q@rbWN{e?U-1ZiHaVrZ%j2= z4dLQBGiOYnv8ZO&%FIe55tVhv1q&C?s`B`)#i9zTnsjTkAyW!ce-teTdzk*H6xXwpkKSvO<9diC7q*a~BwEHjN}UT;1bTNHFn=8Ckz zGAz|plQd}9O;^-3u-xL#tA5_M=Br6GNqi?BWUu{ko+;6o>&rRzLQ$#3vlcA6u=?B! z=Je&rX;b4dm&B@C#o`=psxuX7S=n@%QL`$RX=&n5n?PNrYF0JZXAH5EDr!n7sWDmGlFk(>)GyZ< zQbXdX(O6Zd#;O(C{d85+V${{JO(0p5A#N3B^dni`GOEVDDQcmrvirfQmvzOuX`wWk z>JgAC#bgSkG1Y7krgI0PIWxJrwJ}q_V$l5#T+rz1o1D86IU!KoIh!20aZolZ4MG}Z zPlYG4<bM?w&PGhE-J~~RCEUs_Pw8k11 zHL?*!>m8*QHCifxivfBYhkY-af>OuI&e))jN6N0(tk&jcc9XbDAp1-7*J_$~eIw1n zwo)E-Zi_ZFHP1C-lGdtbgUu+^iMqJeXuhJ#XihaXvs#xDrlk=1(FccqZj#jY$B9N^ zGYCssAGQn4dab6B&1fM5hDe0pUoi{k)57QBh5fp7TV@;a*5%8MW;-Q(f!D}f(3EU# z(8`dVL1zn;9Xpxw)JeMgs$UD%s?2f1j@G_#B$+GR%aknWOF!iRLxP#7}|V0dCG}!l@#h z6-_I%!uDG}8)FSsu}qx=H}eY1%Mz>2SuMkki%^D(k2(GOsdj&zfu3K&F67*%=7s31 z2IHdmrDQ=(w$nBvgCdK!W{eg>8KUzk0ejVH^u-mi^x}GB)kP_>QloQoKrSa+`ap4q zT>4Dr0yXD^X`PAxSS6vJ#{;%YJ4oaal`4 ztcAOPL)4s=Xu3s>_6SP~O&hZ7s04Cn+Ah%JFtux%m&h!lnhmCwlxXBKsmp#%hw@6W zE$>u#xxGF`5}jQu_c^mfx|g$?=DMJ(%e2C5D~Afn8buBjlC9O6(oGFb%d;XqNE4+g z=Rv|Uq(EgZKzQZ_wn5yPrz{SQ)~8)QWZm|$*93APqV6b|o?v2W&DDKdnKJtNySq-Lqi;cJ!~tQ_jma7ukj>L7P@ooD~%V{TTOt>lM#y&RMN zlQ=}-ESynuJ_SI&7pGzgBV(7a90JZ?ukj zV3)*4I+(Qj(p>6h3*rCXVT9@gUg!Or6!NlQc-eXN`r=dSfg!OIqT;i=O z(jOx%>)=cMh7icg#|~f*{#l}a`~cLc?BzDL)YYf*wG_$!Jd~NUgVAzkd$1FxUj89{ zm5IwoEn3;rmwm9YXoPdqj? zbAI)o4RoLM&rf(ZKF+CA4!fiVIsO=IOw^~`BR;XV$LldJ~$3N#2ii( zw-ii|HLQwV(ZWVvg3X+$Ztm9RYhT7{E~HNlAE?|1t8MMox(Fisx^reOm4g2yVVE_? z?=tp}e^kL?-beY!ja3rcmeooQD=xd4s9pH|B%_ne93C1XmxPjRAU7vh#n^$QiW27b z57RXD6?EK^`bP8ePz{S%dlq6&I#df!S+*SXl!}-wVShmSKK6|K94VcGPg0k%70*{8 z2S~%=_hfV4Iq{Q)VWz`FKVuttxmAJ(FD?d8k}NN_=~}91U+gZK(HgPlzH#fY<~RD_ zL@g#SHKCfhGJSINz~IcNQh(92$VO%fvd3s&xyqhMUSfujHUBbuq69Jdla-Wt>){^* z&EEzuo<1!w@C>e1`trevH4o;^!y0uf+HJOxXf{&OgWXAAV~AbsEHIxe8s5g&xs8YL zB~t|TXG?Qtnz;~j@KKQT6LIyl(KvZ@IBYgkWYR7#(q ztX3(RK#Cjd_MaStu=B@B1AZ>krt1|dw^5G1u2U&};&P5!m1s#xm`Yt?hLUb-QJYkY zky*)XSlyypxvoRdYMn}9DNnyFrxxrCPgONo8JE=u{c^&DGY-RK8eM}=c3^7K*6vh` za=Ds~6*0EZS*|LTkaT34IHTeGER}4jU*4z;%dQnm^@K{Th_R!^nHxp2ywTuRkQ|e6 zHfEdkvCp^69C2w<&aTWrB`w{mfs2)CcGzl?^(ixR*jAFl6@7&_N!6^l%rZ&1HAyb4 zT4!IyswOUn6xMdKK{{s3*;1z8$t9R&?I?9H$9ksy5~G|4I#0k>=_4@J$SIfY&CIQ( z-w6X>DOs%s{q;Vt`h#j{VE>OJM&8d*nWk0TsgvETMpfU^l19H|?f$ScF1c`S>f}CW z<1%Y=h+WC~vP&h~h1RaGX*6Vmjg7?I9WCpC$J=-F_S14!DqF&8jY=5xr1DCWQ|dt_ zrT&=W79dxHAGetLeqN!V)vNM9rVmuQX_fj={>N16YPp;vOTJ(%oKn|Hjhd&k<6N0o zBYT4XFa5R2`=<7vi%8^MQ`sZcf0ofU<*@gTKTW=gPYr+Ezh8Z>@|o1`4?k?(WQ8E{ z%U|tg)n?0Lj()v7%iL9NJ-6L#|MNKWIbV4-|JG@a|q z9Kg^Q&W%=lc4(Ey6qw<-HAgkuL3BN7xgV-6>~QS#z4vtXbGy)oX!nCXm-n6JZ{1Vb z{tGQ@cCxL%!Q!{$8J6SUu6@4PZvG7xzMYT3{PWc)^KY>9^OYp?Z?N!3>gRR8&dy(@ zwztzcSpN8Rbn|bp^x5rYu=LsGsDl}l>~>(6$6yX^clPt%eOA6~^M8tq{&INX7A>>d zzunI4^p|LRyZzXFT#kF&UuBMayIxPx_I5kB+uLc{-Y#Fe9wuvhyWQFC=S*$S*YwRl zyIsuF_ICR0crMiTcDQysS(M}6j{mbc?(KFH*Y~u9~dpmu0x>jj>+kb9-rr$Wc zddc#A4(m&zwM zAs^Rlmq#uS5?<&3R(lvEJs;URC!g-Y^m&fEbRPX&^*@K#4%%NkJa=}!+=uDD_b}b1 z|9a^7dtVvkxm_N1!m|17Y~x2UbupFw(+u0kr0cTdpTZ(uUal~Y_oC*~-gG*UyS}@M zdEA-dH8;nusNpJJjrHQ1?PZ{Fr!{cCl8n{({Juae7>OsmF@G!&PNcknL?r0;q+$_I zFcgWL9gV6(`41)&L66%XNccSNNIYP8WA1=E>5j$Yp+F?%O$_3nH$;*~D#innvl^jV38jx{b6@J8BTfp zq=F_8bBB#&FcGJ~6DjJ~9~&h8{`AMak)V-G`9l6=Jm`ygQgN@>mx!lQG{`_KuYXS} zVFZG4B8{aY?qI~5^m_b>aLng641YM593+17KUdbp(F>yHb}5xZQq_ z;iV6|J&B+@67mQAsc<4NVELl2Pyq|sq-t&9ph@n1XSZHCp_2==7sML5Uf0ZfhH??) zqV)MjbEDB9TT7;uyj$DaSkHBpnslZ)+UFoUFv>PpSKA?FJG90d{XaXb1C*Ptr&)(; z76bX~YmbR|G7(~!N(EzRcW)vYNyfdta3o+Dk)$t?x4iwaxI3OmcoOj#0i=v@kU`II z2ZJeZ(v$S(^&buxv7kQ|^d;Q!NYWc}$AckX${kGll1aBWIdFYB^mQ;42tMsyWc#^3|G8Q)yBsk>>xV>aM7&km#Z@|b~egVb{U)Y~Y1|k7}C>3xAd|?k` zeA4d^`>2;g+z1{=E5*Boh8eC>1h%0iWAz#8PpO zI~hr(5&@6bmx|@hf5=G2n2aR6K}szaPte7~A!b~jWZ3QYMe?TKV62N#g26;M5=;A_8dFKHI}r@|Ly^4oA4|GZ-jIix zna3aSQHq8ymh=bR!9XOI^hNT{R|1}h8wC{Nv@XuT>XQ=i({FqR^A);uzWfshtt=3x zsRRsC;SEH5ktBJiUc4bAZ~gma9vt(^ zHBq?%pEn$jF$5%I!NKNFefq~AOc*I&#EAPsUglwuP#_$Lg#u728TSu5U+nX5q)-{O zbR*`ANHS=Hu^55H{q6*uxBWAV@`b|TBszoHaX1uoC%h>-kI%IIYQ>zx~BU+tPhVMk3;i(;dS>ba6aL#*F;qZ!k=3fv`K0 ziiEuAa=*{*4#fO%KWn!D^R|5D$C}h_#2EqNp?CsKnvD7UF*lkw6r)eM-TC~ZI*fRN zg@fT`spX|FM$q4kzbMrR%gB8GLkU?AvqJa#{mCFhUc_yN#L$-vpiA@lj|csfd`$GE zCqQ0;k#IQXiFv%Tc=Lzywm)Agkn|?wDX(ELaYz`b4oV>Gce^7=zt@{r|1(IYQlUs7 z$B4uuw1Pn1@tdM!p_TGc?0#n7>>7j(pEnltGLnR8l=Ci0e_5nzi%X1?^+NHQ7nB~r|r!~P)t=>>W9XV6FL{mc|uDF)f( ziUnAh2N;t=^ruuHZ~eQ)TTo`C)r`QjJY@SQZMC^ul*$g?pVm@M&GgG3wjf>?`9aNlR!A^ z4yN+fA8Ut%o0X>YIGV7BZsd>0>Awu)iEuD)`6U8IgbvT9u`eEqh3H94z0q3?i9Q0# z>)(?I$Gr@B>&_lpjZ$V2=4sPXlU=V*ao0$sxRPak9pf!T~NfR;&y zm?^sR_9vz+>|9fYK3_1x0xrZR4qd{RWJ56EkL7L8LD@fuGlBKU%8Id-{T!j!fKL`xL8fLw!V;v}aZ40HL?&ot0Tv85MJ#lsAVXkganC^o7f#riD2 zK4T^1OR{y~F__S^FXCn@!SM}BJ>h19EMNRATbN5G*pM=e6zdt0nTw@jAtM$u+T4T${ z&oV7wgwer1gLBTjV8+TelgCK7W3-P*m}O+X`VBEGGtr7MYKJ4} zC^nr9HzRIPM(s#E?|LIhCOM6R*fI9R6HGpQF(zF63nc0CgT+66qIvMcJNnUy6KC|D zui8h_c2h8Up!P6lb!K)f6I&c>Xf>?2_IYEOx9#Oyge~%wz8Zc9q+x(VJ3<^FyuS9p z#7(AJOhXLjZA`z=7M$Ni*Z@cb{fYeb!3Jsw$LJe_u{^~|fT_FLQVR#e`S)*_Hkck* z1fh9i?EiT@>}a6=-F~(J^R8cg;UK%ctm4`3Ve8Q+I{^_U4(#0%QvUTTv#bz{?pP@1 zW**D5nSZn@H}iTHW`mAbi!S7JSiT^`{rKz-nWwyiiG;!2F6@c>{1JZsCFlz?Ph`^v zHAw@`J3hL@$#|G@W{_i_hFtoS2HOmA*|iDB!+G033(YXoWR^IrnK)`=iHIP zES(diYyPQ_BwZNv6pNXbB5OA}56K4s(Sl;oKHtq3nT)^r)ZiotHvn$EMi&39}%9D3|WpU1`FvN*VO!h}(9u6v4^Se21 zp+)%e&M#uDtr(ElT;Xzo5%hBW$3Yb;)E6`8!+GPUlx2&E^D19FO#S<11DTl}l}RoR zqy4y9AjFb!?o+tA5EJ)t?B@=6eQX^Bxn3~n{Gjix67J9Z|9^Q(fD7bb0{fq?Q0?%H zQT$%k{rq+k+)#`@M{b870_(n5q1@$4odZPXr^D5D(2m>a=i;;!@!p|B^LKc1_<) z3?#q8Yrz`qg>MHNkvriLm82h8_!aOdvhe$$8(FyE1b)8^S$G%_`y$u}_9F{719fGE z$u}SuBX_~Qz%0)bl?nkfkMM0;?tq^F5{~fDlXw#gzrv@2FtQtN0#deV_&mXNv9~a8Cm#j(1{#{e-FBld*EYEwZats+$5!TVK1Bj zuOp}7;ioBe0J#YMJQ#LWg~`{RPE$Y@z5)1=g>M4$kvrfAf#jtZ9>;qs%doG6W5CQK z{G&7Y$!6@k;31Q(aw~#Qn!?+&*t_9HU=ykh|f+xmNm%;9Ec~_8oB1IhHJZm6qG!Xv!4R^qA zYPlEgnGbL;Jm*5%JhE^PDEt!k@X{*E8o3t!!^Mx~$U=QI4yH`>^$ifZaJ>)d}43ISUz)M$C zK3}1};M;&%@9?jH%!`DJub_T$BYZlThU|u0faxB763oY5_k> zS@>}<@~agl??J9W=0$IQcbGPfEPOf$BMUDF^O1!&f+Vu=-5`V93IFD6)E9C$yccXn z7M^q+eG^$Y03JoIg&zUZ9)x?qF6@O1zm6HX2%ZXhk%i}h1IWUAK=C^I2>cQ_16g?D zdfFRuJACCgNHcO9{7WFZy&EpO-jXZflfQ{B#Z4952r|gRw}7?C!cT!s$ldS>?N*<1 z!;8RH?1eXgPGsR*!4BjO_(LFhRNtb#0Fi6qqc&LMOC{_DV&4P5rsZCE`VCfGRq)?I zA^J*fBrP}6h9o`kyFl8T`VM;gX8J7l>bv~rF_6Ar3-1Opmi53VZPw|Bmjbh`!VhS< z6CQR8dhctrN%(vqX-mVsBGcE@txEk5sKiY#{D<2txd(o-!;-tuS$OuHtTm8@=YwkGD)<^8ZiFXqp}ips&jYK)4SeohR+v@rt6&}Wz3|m{TXGvb za;qg5!S`#q6aF8O$yYCY+V?Hl4POW(Ug3AaW@O>Qd#GRJBKR86g)Hp5m$ry3ybSar z*TN=7ldz7>x*TQdi(RaR1J^l=x^91QZu7%&+ zK^l;I;XnR@F#x#-zHcYxgWL(f0i@0J!e>5d$x-;nU<+=#;J3gwWc3toz@x}f_*yNu z!&84nAHhBiPyQ|X0@)2menio;ej9c@|xaEc^>_268tXea>pz z!k2()*bASqhkPLme;;I!JK@?tP`1dzqn@|qO8CM*6EF5v@Qq+Qat9oEnKUCu;j>;r zM~Ms@K=PZ0Ou}{PCzi1h5+DBXb2KI0_n20Rwd5v@<3(o@8$iizu9kTEvU=6Zx z=yk>gWZ?y1Gjc8bAh-`%_-}78ZXpZb`X=c_7GCu?)+WfpH-N(HsW14;XnP$3bO}pd7nIf6F2aUpd4BFNpJ?T@c9R*M`Ynepc+~D8jwV8 zhfn#p6^@BpkS~z@;`K3%fxlvhW>X2eR-s zum@Rq>Jcur4><~70%V?03x7e&ZSc)n?tmWyQifgdv%nmi;19IDDs=IyD=zgOVb;Qv zhPu?qcG3W+k94UDWZ};YBYnuVaOF`hv#$w%|5%rbV&4e|i(G0MaupmMjelg}HDEom z@b|zLWZ|dBxYTxJ;cl=CS$H3K0l63c?_!sF9XVR!Qr`lF->NYA;Zo9pEc}CVmzsv$ z3IF0am#RYUhEJ^^4amYbfHq{|qsLPw$im~neaOORfk%;rXK1+!Hh`2{JN!G)jT_;D z2`<%xEPQFDOYKJ%z7iB|ppC&@z$}0Gd0>`5JnsbZ!W^Iqo-@&<&cJ;w+n)>JaLlCoQtO6TY>1Y4)}kxTy&aC1%TK`;k$tN z?Sx;{au0m+=`K}AT*A+Q46^W_zZL|Z!Nq5$T%YW4%mwu;UlNeZjmeDOTe%j7$e}jKryoL zkH8toUGTF&;uSt+Ds2XP;W(&5PQ!bF%(Z&qA#TgPa1_+yMtBX#Ah*H40aB;k@Nf_H zg1zuVU_G+%BVY@%@N?i%n?a=$jX;n7>Io>yk5)g@S|Gpg5L_$-w9tuT&e-gLl*7@waCK9 zo=G_%7r`fhwaCI}f_7x#2CxNLcqQ15Ec`gwiQEOBb{2U=7JeS|A`8C_3cp=p@;{M_ zk%d3h_G+3-jRF#{@abR@ZiJVBX~@DcP=zdf7pO(B&*w(o$8qEr5_uos>P_8`0AY9Q^i7QP9Hd*Qir(bu>UPJ#o-X?PDWe;&W)X z->EQp8S+HrTKGmFZiGwcp#!lOt^o6qE8+3yQntv#f4IPKPr zBwdTqMaaGI8%xkF$inx07F~_p3IAZ3LmBHC9%_GcUK~DtJT- zdI0yrXMrAM;rGFQWR-ELpR`(TgkJ-NH&vK??@E^{NA855SWRA#yWzin!IIrybg6TJ z)RFKVAc`B|tzen>g`WiCMtI~J`U&>JqrqC_N;m?KL84Et}uE0)$|=?;nTq+WH>|3GW25k19O+%ZxqP3zviUkSpOCK+2>F{-T!K;0-`@eh0iA zNI1d;Yw1VdrEG;k1#%I*6`X-AJmXsOfGk`qKo))%NL=cxE|mf@4yNI+02zOUp8#px z3m?0VazHMEPX^*fcoo=)z3>xYD{?n{>UE@5WO&inky%@{uctkKgEGNBdOdpYn}j24 zVR(GIC0D{%0h!OY!7ILH*{9)UH=s-LTMJ*X(Xy|Cr`>4TN8tuw>UQ|wpnP+M$w%Kr znIH>q0ke^X?*Y}wov{CA{38n=_%3}MS@_P)%z2Q7zYp#c_ptvK?H>N%R_Yjg;qTo> z{UQtB3-*h9*x#Yu!ynvE8@>hi@b~T@ZOFp+f@#Q|un^;dMWtjUfwP57NlJaQJ@Gj4b^21GE`r;eUc{$ig3j-N?d2 zI;m6SH2elox1rDBvL8~X$ig1rMixE~%tjV=KS-S-3kN|RvhXyp8aWCVJ;YdvEc_)P zdm!!b4}tWHF1QV;=Ky?r={4kI+cj4k6lRoT)lVBop8tw#=HsSCiR=iR8D&WVB@Z%tgEW8IS zLl%Auq>+U${RwRwSvUrhUXZRjage=?% zCL#+z48q7=aK%sQvsYHAN;n0ou@}DnG4hEl{9Vw7EPOlIjNA!d@Hp)aS@<_#C$ey; zi}3~Gm4O#dWumf56POuxf6JEH3bRY}=0}Q*9vm5vTs6ZAj_&<~>auIwl zh$0JL_zU_JvhX61K^FcjSchB-KlV%7267ktB9L)V`1+mbUhIW$0lSbp;KzWt5pH~v z`6~9pSAt&THuzQ`ZiFv4g`ir(f$KpMS$GFXBMbiutV8aGPu@+M zk=vgmFJKF@@Pyw}$H>A{!A@j1ya?<;7XAy^hb;UrPpN78=%svS31kB9ByWkgr_|&)gMSXhO*i~DFvB^T@WDL7>44t?Vqbeq zfw}{T`%d_hW3@eela`~SC7Li zxIk@17XBsZLhgotTvDLAk)x#r>V)zFwGY`1F9wD8G9QMY21Urie*hDad*M%46evG( z6s`tU$il{W(u^#e0%_zlybH)(sc!ghK+2&P9zMa6i{KMM8}5Z~1M855JHTdS;W5V- zsQZvB;qL>p4B;0~r2Syu1ON0SU2gEP6D_$2{w9z<)eb*3sX*<lau2*cDleYg>R6?7pBk9U(VWZ{#*USv1?8L%H& z_+(E3hfbsi_JWDX!p{Ofat}P)YxS=x_-e2e`!@JPP=_pB=p)U@!Y_e#WZ@D10<{HM z_(ZS`*$p2EP(H{iNSguDe{12bU?29K@J<2aweZkT0qY_5+~8wC;r-}ycrhqO7XA*X zL>Ar#rXdUe3REKtUlJ}*No3(#um)K;1=^9*@bM9=oGan=XHvGpGFrU7r|42%>9ISg9F$LzW|CJpv+MJa zM>^r!89c*Ycr)-zG;DW1HYqXwU9Oj%sPd)Yq<+9ueR(f z;niAhgZC`5!ta5@i!C=%c$1bp;PH`2mHG=^abigcxD@U>14cyeH+LpaujX_ zXCMoIxRExGEL`+$+B~xGvhUF5k!#`ifrPI%6{yF7$X&uWS?Q^THv%&a@XY7^N#rW{C;x?>LGFT&eu{pGTnpa|%=(3|*o9x_Z*A}~zaq^KQns)c6d?<@fC^;c ztAQW64PN>?bm;%X(z(Y;IsI|`)ZVYAT12}VWEG`}Bt#P%`IU@RVv{K$bQvU}GNlNW zktDThq7p5pTD90TW!080vso$KCPK7n5T%me`!nbHlkzG6T3 zOtL%>#*hPeE=(cIE57GBN0!g|f!8I=17QqL(2Xp=dYE&AEJt9p`ticQ*>`394=g6jt&g#8WcknI99OdZ!atm=Wcd|H zttd?T4RQflUIs15@_`eq4>^JFaHW`jWIqnW7_!`~af%6%<$O%4?dDsmmFK%%3dh7BPRad=*rXy*LQfWcg%s=1i79cQa>l6erG4 zF{jAp0>-&G#T2aI+{V{~&TTJV(k{h#s7G+l<+kp^cYu$&Ty|xO8A6sng~?=j4a_3P zaO^79RvGVrIJ)R3EVsKR#iXv}b@5;*Aj_rKrkK`b`AP7S<)1n+2eNz|29wQo zDdr{^NtXLv&sve?!<|_xasv18GA7STxdtkz%g=P-zsW)T<_*l19G0P;EWdvvuSb@@ zf~J+cAH&&|IH|9!RE`j4@AAVeQzNVI!K;|cW_J!9% zAvuPB1bu!ex4VUXr!EfzFFAl;0llA;KLsCkc@qrQI5-Z;HNp4(kA0vn-wz>;gM*+R z`6Ps?%MH4xm@2XhUjdr4{0MBKE>D0sIfNHLa^G?19$W*|<*wlRlzqo*LB}hG^KZ5D zmy5wokK7m9ljW(h<^Q0XET4Hh$#PfdM3(;oAKCOtF@3;KmZLC|EZ6qqoFvP;pqwoK0aaxAIBX)DyEuP9`z7~+ zqtxX`A+w6(jtAXs_cwrJP)J?=x0HJnS#H*!^O)?%8$e^maLzq;TNm!`WFMaB~m06BnbAo*JOU(nY_|Ud1}#k3sJfRt$Co|8e$gWzfpW5Z#e*DgZHqI9Fy=JQEBrj@{Y(gNgBU$=-1{NB zo*~@q5zc3N-1rGdz8}UvIXQv*4z+bZUgzW(zIvFgd+|aiNAQ`$ZQYG0IXQ%zj9{I4 zpXtU~kJ{ID;kO>+S;KuPjE9Z1If%!phvy}7L&dBIY?gP z_&wF<6()U}TuG0d`a0`OcHt>AId8}zJR44t<)0yS4c{-o2caoBf!~>B`y+VSn_NHC zqxkCC_S*O25ukYn@F}Nm=A@Wx(D?8HS61D}cc^LmuZhImh@Z14?UrE09L-vP$xdaZ7eRu{O zCCeX2Sf4L=?%*nDL6+A-30bZIKiRdEYYmde8eh4L>xy~+&x7QAaEs-<2b;h>7Vn3N z^d#`h6*h-)r;oXI7Vtac_?#7NOONb^a?m9pgq}-w|&9?BggS4)x1w2M{!CG_fN7LKLL8Chw<;AYtX$R#dHC!i4U)aGHr{S zZDh`4>A`a#`TNWGFz6a_eZ~0(+SZFFg3d8{;b!iwj3bvrj4UsM1X-?x+;zMbzGjPE zH!uEcE6-fk#Kcm}4WMVD50}?+9O;kYV~~8^ZHxojmnc5!Wb-v&vw+UY5N`7gJ#6d2 zk1Nw3#P7fu>hi_gIZkAG1(cKJvTs=jvb+LfZpUj)4mkwf64U;YsWljX+y z`5J>P7r|t*+yZ8iz4$I=#+ToKa_aJ1P)!cwt&p4pKIvrl_dE+g_Z)c!)X^`$1@+n% zuLNxy#o0eFSF#H)1zjUi{0-={Zh6uH&M~%?r-G}7{lfd9DLo0?;zv8C2j2v4dgKSe zLzdrw60$rW`jO?oVF=m%6YB{&2Lkw)pIIyF^1m>dEVnzzu_w!qK!hyMhbTFMw}9p^ zkNbslgStEw4v<5*`d7|NvOKDud)Ee@1$ZhHl0$gkVdhVc<9APRpCm`{(v$X@jpC0^ zah|+L9pCV;bME0+{^Nax#=!$jDnDaVX#8@6R1+f00~)591*+r0DXFH49Kc7QhMd4h zQ*GU(rJ83!^&p;@ZtEd@Mux4sa6zW6yYW0we;6;wvh@gVn{DeJ+&;(Fy?8aKKZ>h! zZ9Rr>%d>SK?wxPze!LIVAIAsIu=NBU;j;Ar9@)s&gZMvCziFImQk&Si3%>%YhwzL7 zTMy&rXWF_Ow>ZnzJ@_L~e*{;YZR=6oxv8ytamhKh?!#L_{V`m3uC2%Mz0GXhj|Ugp zdH|n<}^P83&PZ0j*x+S1njcyKFQ58#uKoc|@Mrro8fW(WK3#j8Q< z5XF02+x|Gdw~ez7c-&>S9>o8F`c2zZbDqc6-FP0T9>$-yv-K$Me7UWA@qjCA-H-Qy z`s4U?ds{bGaz2CVK|HsEt%q^*t8CqkukUENlO3|8=(R#`8e+F#h~{TaV(-oo(HV2Y7AWkN1K4yP+sI3}-{Kp5sU~+L&vE?N?KTJT^}SMgf5AC}mxB7E z_`5r7PaL1wvC_bdM93I4^YCvf37 z?#p~`;Kr{#YsU}c??LYy6L|1=&Kb51;Pn%DJ#q|R^&I_VFaB;~YVtFj1Rglao`(Tk z@;uwqW|`E-?j7i;XO`{&hfX<%;u72O< z7+$u-jvvMC%5A?F7kuE%86S1B`H=G&bi5LH;787UB5b?V=FqZK)3YMgRMO+a`73O8 z;Vmm|j^Sya*c`$=KXdwV{wk**Z~5Hm$J3%tKkm8K>Bk$Pj@OFeE??L=_;6}yXLI@z;{^A^+-!E-m;xrK4>Eq2a+oV(S&t_zO`^@s4yF{_P>S2;O~ z+ikP`UR(*9XB2n*+U78BRA+nKcowK9jGKOAa|k!sZhKt#MNm%&XMJmP0PhFQErEyZ zaO(J=lYKk6&wzSjxZ8KO$A@d2?A^t>fqJ5N^KQE)G5o?FyCxyrX|LU1FJ21Ce*E-4 zTMy!^;!Y2)cX9#`+;95>c)<5|d_OMu!H)07n;?1b!d(v7ejm>G(bipfqmyHJ%umki z;@?5@;RiU)XwX^(@o^{n4|4v1dg8d>FSf^zcR1PiE7vb1zu$q=4)NS!9Qg%sZDRd# z4Adict>>9SU0x6E$uaCYYI>lyRZ*5j{GGIp)TKignc9X@S~vTX%PPd zQ>gR9spdw|&!YSAYfcX1+ka0rW%T&*`=Ie7_~t*j_B19w0s8vU{K+{C`WoDYABIYL z0(cte>sk5wqp2oJUA`6SG!CBhH}^Gi2!9Cbmj@hUovF*iAa^rk;%Sf^6JLLvXEt^D zR`8I0csQs>KJOo%(bVNO(3|YRJwZM4X&6jh&O5=eC%f=vpdNWIOr|a$hB9&j=byAa z^5;-aUET~)at!|l8b_Xciepb*{s0b;BX|p_M;`Yt=M{B%Dr9b9eej2%9(llNu5;@0 zFlbE<;Ax;9`TGC3-l)sBf{*OO!$Cdrc_xkDw_ts68yHFU;GUo!`7}(VF6T8!GqcDp zd>N=m-V2MV%ZH(goWS`FZIAppY@#l2hB!Hfe*=vp&rL})3F`6(kh+!i!COE*^0?GA zQ$Ssw3N6VY+$@bAvOFDnljXHAgdD?t($manvb-KFg8pr@;<-LfGRL zrbpfkQ^+xV>MFaxu8y4ZSKE1p@oCUF<{I`9bpFVHLK)l2|3HLnu1zzouealP@e7^p zJmpG=(j(Uiasv1C+VOq(Z#Y0*F6qKKN0$EwnO}3<@yQ$QI=D)>4|KKT%P&DwdgMjW znjFRF-DJmin}d(+#+z=j-U7+>#G`uHapcwDXIuG8 z7)g%dk8iW<5W`JwxAT;{!bE!HfiR04#Ct*G$MH+O?D+C`u$Ue>4pn4%Qy)8i91pzH z&NGPjLUJ5Dp`RT`u7*u)D{q82IfiGH+Wn2-miO3kym&5XoG`v=fE`Dk1_`#6XFzHl zJ^22CcAOyoVvyZm`6v|7BfIY7HOOu}4m5rcUohB?FFybs>5+#*4{`uM@u1z`5YB$c z&eM&@L2?{i{IDHI9s&K?R(=8kVKT=;5a#fPd&k!yvemQD$QI8`hJ}6 zsWj8@8SaDMkZ}<7y%q0R_7C(uQ~B|6+-K;KpN95iISAdz@@3C*uO@qNFVHj8kDm^v zCI2o~2p5d!zE6)2*E!iWA0O=F$4EuH`oatMC}>XC1Jg?*P-9oCyZ}@!)8Br&9c{#{1NDTz7ag&Oyp6mJBGl#OP(zO5ouI$f&uo@AJ2{5OR@r(GcUfh#51Y?zmLpDD=eg5(_VJ!@_D;|soU`tdO*n`+h>lKY64eCce9`>%7h#kuQkcHvql$MMt} zTMyyuHrVXN4L3UdIO1e^z*n~J$1j48uYAuYt_O~VoVS^6$S!;ds7KxbQR?y@s3XU5 z-WJ;<{|g7G%geU%tpAQ{B$j4A0gWS1ujTncUA}c2&mgi7KMd-Tn|{r?L|ra|eq=Z9 z3cA+hv31<{smpD@;od>^;JZNM$Q`!xT&6A`h6-{5XMbyZT8opdR_!UCf)h?1k23`F_xx<+pZoy-=5L+rxg5efTNRIPz_K z*)Qtyzc86>_NAF~K|S(UFpIhzgL1O`FQ`XO#JNvVmzVA5K1&XL&#?gY$TNQ6JqC68 z)&rbpyO|Gu7}O&-`;q$?b=eIbvfLGt#{!T2iG8LnxBZ!Om+ZlJfyR+L9^~4mE+2*| z{0tTD{V!ij zljXaiBiWBn{Ac_5i>~Gt=tf;GYLIUHWcflEP4?h*De1}aV>mZ8JvqKy1(WHK*FqUN zh9AhV{Q+DK$@$>^nfy0B@*s$k1Ngk0bh|$IA&60zZ_Q0N2g&jsVD>S8-0%!Lz6-Z; zr5hJ@4;}$6$@0)f>BdWzyEo>w$@1+mlc!A6ZVBHKU0uy7LeufP(cpitq>#2 zpPb3u$ntAvrJK|^KNF7MgaUFH?*k86K5{neOqO>vO*ezd@?IE8j^pO%r1SGxd|rez z&rLUr$@2FQCCdjPMo!?i&1}Eiw2=QtUH${ietzcy9|srN6s4Qa(2^|s&trYaa<}HJ z4_WRBL&-iIg2`n0C3iYM=fyn@4?CYVAEI*Fv%pV|VRu{GFL(8%n~BurUa*)f_k&7u z5Wl86_dWUfcB}(+`DI9uLpX4`Jznx9SJ>>qPk}$kIQTV4j)R|X&w2GDbK zL-OBc!2T=K`Pn=63yc-;*)$MD@HHv92UU2RU_`rBA%woTwn zALlOH%9SvZx*UbcWO>W&91pU*{BF*Fvivo~$nqhGlN0!X{`R#3I1Z<%%Z=~h9{LmK z9-a$sau~P2kMp1G#dm<_Bc}{zji}2xFof*JBO&>HAG{5;CUJc6{ml6p?uYoMN4SU6 z@5A4Nz8{pp4-ciEuR{ZPGw9gGaGPN^d+<~zhj0}nf9C>k2mM_F`MlxWHyK~<3=y&y zAA%@3fgc({KRJNY0_moXEH8bG^NlR8gv_7$8Vaw1LbAL8T9ae=nvvQ^#EMEr+vKKD^ z^~<-v$bH}!{w@T*6AH-kJhf>kBPVdbm+X1#$6H@!O{mB4l&P#I z-+u|=Uti^Q)sH*RwAqVi&$c;?KPlr{peKsYp36SYVb1vdd1UHwd>r(9sqzhBu374G zH#k7{;US}Y4uZ)j9^PTGp&vSAZ_jsFUFg-rJe*xDuIf45w;y9B1IQL!K z!2Rf9S`Ua`7^rr)0SkOeD+ygBj!iE(7(;4=m?;Aj@N*nk>Hrb>s-%4eFN{Rd8=5 z%ToT4owFM+fc~oE=9L_SXPF!R6|}AU6P~}H z+HHM!C#c_i#_@dPJ_aH}u4ua4&!;nyJ9k5j5`cHy6#oWKR^ zobmCiknG2e);r_lx1fS~hH=vx`;2hoaiHG?2;$>T-E80*g5+}q-})8jAKx>?b*h7lS^_k}LOe{Zp5R@8jM<4&aRaod0AOz5(?7mFIuYc|~2WgvsP6 zZhwGtiSx&cC&4W0a`PW~9+Blv5F>~1*P!b?j$H@s8p>z>!hMIY``maQ=xfq2K6Qxu zC)=8Ou5UQ5aqv1wJzSXdsKeZk$nrRFlY@9Z=zNIahDW%z*RWr>7wG3C{die|b)Y|r ztN&mf$T586DEClu0_PvI*@aIZ=bld8{KNhKgv|+j!%2ILeE7*zc3*nMviu#?ljUfdt;_eMXYh~nFlRgsTx59*6q4mV(4HK})tMQl zgdD>=v)Fbfb=)>PBl)+gJUHlN`909Fj^M9A>lVY8 z124=-{)~M9=e1znI5%9l{NfDLQRCo9OXjAGSGBS^igP+-n4#2N_>UVh%tW%eF~htJ z<>V0l(a8z?Mv1M5@g~rF#Tbru%`jE;%f&ZkB!4f=gC7H(OF^91jcxQ=c*ZS^GoN!9 zZ-V4F_;k+ha+HpubI&z@u-s^9kaHy=->jA$Mfh-|@sx^|s># z@wa_4OhJNUjq^+GYq_wizwME)A86}d>>Xt5^6&?3J%9s4Y+ar`%+|v=JlxjhA3*o* z1a1|u$H;@<0iE*^oHZ)Lc$kk1hoCoEo;;d;Aj=COM3#3w#cPn`c+NBS91i1)$8p@L zdvImY<|s}bpJC$E<*raqmhXei-}&81JOHzx3XFWR*Y;FGgCE^KS&a2#*xJb z%pZTckn`tH_7@kumtk6v-MALK%I`C;rK~U6kBgQwH`Q@h2$AL73f7k_-?)NxCdbx=W;e|PF;eTKPii+wFG{&TB+EfdQy7lHOy{uOqxt?d4q zdnsAI5pw@x-|=@)NS1$s)?~R+ovpj^fL->r{J6;;`&w??6_RURvqdpna_%Zu_f!Ef4MkdM)|fLmWH$W#8cpbAT*A4yVX+ z_HXRt-^>S}1%+g}i&OXEzragfe)9;&g)E0*Bw1brlgSa>Cc(Xf_k`xJ40Fcc+}rg` z!P7zat}tG3%+@3L^5eGd#pnOS^Nevkc;yL>DLIPgpS1M|zUp6F_u>Ypc?Qtq!fo?1 z%>iwTe+Sh~ex_+&Wb6L(GR5o|&9;4BzJF|1p0b?sk4A ze}|0g8s7mWWckJmGEG0S{0odG%SRwYPT=JiWtwtw6fY}gZsZug>f+4g^Uk!)G#x76L~udp%;ftG zH}2`R`{lz2K>L-z+iuJ>L)ca>@4+0%@_&6YO&QtrWo(F$x^5S3a%Cx@=gS+2t>ppz4)Ykc+-%PrPI^%@!4rT6Xaolo%%^p13$w6G> zd%b|`e-##^ye=CpAPw=CVd4kW2@buR>2gqTZKQq&K$S(XYbR)};y}^9Q z^2;!q9K!A1WNu_H-UvDeV)*oIdv2IH%%O}q(c<2 zAj?0(0$TvRnZ@$nvK!m@G$OBsu91=$XuXaI2;4 zKXngozsw#lFJ23}uf}lQa$Aq%K^3+hz#~7l^&oDz!q#2*vX!>(!OKA7MDgBAXB<4} z6K5R!D(LH%Fx~{o_ulySD$W_^=EqO1qD~It22opg;Z|#G-GiU4=2)l)zxk!Dhw%sN zxi?Xd;0-ml9>aS!+Ik%S^OdceO_}Bo(7n{PInz7|`kN9FeBE|3<9P9~Z|%MWaGf&e zVI1e}v~?FAsZ2eHEB0}H{mXH|H|^(mk>$zYBZqMH&)h@E@*Tf$K9S|uVHP=zH$ifJ z@F^#oU%5sh`S+Ue7*J0T*EsbUKIPQSA?`zv{Q3ot25lR}r~byXhAjVlg!7f0z?WMdE_s9jRbHQ^t-Ea*58apzuXc0WG@bYdgPt@Z|ZX9G1i&v!lz*d*&NR_ zMgK5QvKv=JlpMoVCu~m??>cFF;&|dI+Y`dC{>wVhAI4kY09n4}H0wZ?+y0kna{uFJ z=JD;|A^Y*UCM)@UOgBF4& zOqLg>W|>)J`F&VSj^K@;G35hLNnOrL&oZ0H@=b7*EO!Tf)6@9y1EBBO$^Xm9G6mG- z+n}X-@H3##zT{PzS*9a(`R%MM(~lg%-@p*E+&3r71jurS+${b%?IPpFcZ23BkAwx( zY*8OrKLEP_2XIPD zGIbYj+lsl7<%zI^EH}R-%hZ$Qi@~H6CEcCuBKzE6Nab#nf%IKH>Nv;KJSm9`$hMHKp4idWL->rV zZQX^xyoT3cZZX{DTDB+48J#$nQaO$|58PxI9)Dey@sLBf%k}Kj4}B)#U~^+PX^y)#dpmwjRMTP+jhFldb!3gPZN^y72j+uWS5x73g;ZqqwM> z%|ZMss3(Ry-D2xrT<&D||FTRwP)`8w1dS8Nw{&;L#I>LvR}ZdZP)`uoJ2`>3-O4?P z&z<7 zljRvOk}S`GiDY@cQ%~Tk-mE9}D1NVxJs%?Y*S_3ms3&mWJMC+Qa8AUGJs-BI|}DemlPW*1#tF}W&Q(YGa}180o57@ zFL;#eh#bME9%p^Xo{?GR70_`H;om{Ob0pvN1Z$OEl=M(?Avu6w0)3Vxw;IK|QI{_R zFWH0pf{!fU_9XXqvivTLCP(mgP>=leX!eUNw|o87|%VC9K%bVV;#s5eBDHQuk+$-CUf3U_u_*uasH7L z*gchJD_I`?CUYjson|v<_2Z$S_sIcV=HxIw4f>v@nZvnRMxMj5#xvfs*H;)fpKIsf z#x3UAx(9y*x<5y7McCG(xbu8x&bZ`lTle9ukbExSx_4|nj_+My>wY|Vp{)n-5lB84 z@XsMY~6(m-nVr(o(Jj=;{{7>J%Zbo+qwt0|G?J0cr~a$ zimN}g^%%bGBU|_3=2hGWGg)(d1+*v2yTD79cSCQo{5=dNCvcNh9AC0L?sKkFvivMm zkmZ-5njFISeq~?Fj~@rUmfUO;*C|;p1d~;i^aW%W*@N!@y_Wp>W{w|qc{TJP%U?l% zatuHAoqeq!ehu_m^3}UoYkK5sU=~^S!eX*~ALzB@FLtwT)a7b8K$c^0lq^sC#lBVu zzXN(Lx%;o|Pj*q#J;)xi+zY&9KYkAMTJmp)SZC_;5g0?3Pr?+ksps4~ZeJ^g=cQ#Q zk6jqw(AZ`l&TnqB3-7zs<~aVSqshe^`&EYv!iu-3L-#@r;e<%BKxsxOKl#|Up*`^2R{e};h zIXR5$ot(g(2G|}ip5o*X-tFW#Zhf!q@!&B|4&qbyWt&3gW(H@QRznzz?7k7b(!WH-KRBx^$U<9VZ5i(Haok{*bME1rA^E-zfAJ>gA3ZS~oz3yn_oi{zIgHO|%koOtM2~z3;^YLL zU&fsI{!0SiIG1y74d*KUbRJ{!Ibjsn%x8WYA7ArMw#m%r-hv-pV2@W29{_#bm%x?p zWg9m=QQWDV@zsyVe_;DVxbcUK!)GRL+ynF+^x?H1u`TcYV)*w6=Plcsr5rox&-dK| zcq#;_hwwSeSodj+gWq#<1Yfb-*1h;n&^74C4}8p;ux$V@2VEmkJaGlbNn_#-E3=b7 zV-Ul=D(yV|_;X19?HAQPvDt+KP7dPRKFv0Z8OMjcpV?y}w^+rop&rEFtY)3baoj4( zIAr-L$UUPd=_l5(4rICWTGo*)-wZyo>=$IY;0xwKcHq@w4&xP0j^b~f9LN7T*%aiMrl5W|zRJm7+}Fu|{G^kE_zfqA@d_tL@pdQ2@fl~@ zF6}=9p@-59hab#>AVQ?DOQ94eeNSdd!tMW;oQ719-2KrFWZCDi4g zpdUGb2V85%_v0;2j^RU~@#V@+Ic5m`^6xN)Y_8*)1${j$yROeMQ>e?u5GH%@T+qIU z@n@hh<;k6yD?RcWs3ynojb1yZ9EUpU@?UU}Y`U$_v&VQWcMvOW-xWR z1B})<-E+*3px2Tg>%l%#mmA;8y+i%DJLqd_xoJ&nw0_spWCTlZqFWDo9g2lrc^`#$_6XiT|DZ`Oex*$q9&@-)zz zhx%}=``Ud^n%tkBF#Z?<_*2{yAnhS+0ZxIf{3I)?6MlfNSZjqNK-@3&|l|59*O;-OGK9y8Nu4V@(d? zIiMc7&7d6Pqb^?#L&;wJ0O;7sm4kUb>T>D*+%L#}{0wLux%Gpr8+ExIRB0Ss2I`S} z56Ll`sLQuK#PKEj@FSoex#$u0m%4lb@RhBI+T;ccq3GioObuE7 z26mI<_#`C9!DXX4Hq_<$klB>`7|wgj_Q)SWQ|j`(r&&{S7;l8+YvDFySqJL!H{c`3 z@s;D48_#ih?6aKz)aAB8?*C*D4ua+*-#9+UOr$RFgEEbSPeO9ec-3=^NnKtGHRKpR z1nQB?Cgt$EnCusx4@b!nybCmEx%FhO;d3}Qa15G~<&)5oELXkEy`3zNnUZ6=k%M>+ z=(Xe((2u%2b1K&(Ssp!&eId(ZVTQKFOF(mwkA}GJsLL~7<(wvm@n@j%L; zwZiVXoU7F3H4q@j@Vppz%JGSn}4HwwD3pZbA z>u$Ujl0Wl__bqb9#}nRl#>ev(JLBUU-gD~sAn1K#0=IeJzEAVuw>g_<1J}Zu_B= z@sl61E&CG0t3dA+qj>dF+Y`mBmpd8HuHd}oYqT)l1L}|CeJgBF9DlNsXA?b9{4c1- zRPw&`6We1x<$W)x?!{xB9K=hU>|d2*j=&7&CQtaBbAT+bf;c&fhppzm#P2=?aADMD zH@*gR{>X<^r$1?OYBSCOoV~{O$e%$0bvX(x$+G_oUTYm+KVtKx&GLooIcMnc;Kx9} zZy3b?L4WFU>K3jUvV0NDAj_>`0a8h?4{OrR`itj1$6xzqQ9MfJ=7R?8BGuw8!0x zfBug9e_>J5r@!YuPnIwJfo;h0jnJFy!&yJ_UXCoM{=|DWvb+w$NS#7m%_apb%|IetY&Nk2d?AjfgP zqdBGpS$+!IljYgajVvz*KUog_#azkqOqfiT%U~8cjNd=b{h1uWd;j5mCOM9OJi+-x zmK&H{W6mo|nxASl1!Or7T9V~+oVpvgZkTI2Qup91Q*x8z$hT+ants&fJ7FkUz6XM2 z`5~tsz%OLmaYFd@96OG@)Rk*O^vf$@0a;!Jm1KE?Q;*@@jqNybd~=grll<9uyb)^X zmw$lWWcfHG$nxCS?-<|gl5UfIbBJoqeIkK)#6GatS`;=yH34&&UW zw(i2CK|eT-%=H2$WX0i4WKYb=QSA5SnoeXndV8+%sg9@j;{TDu zxaS=lSF#U(3;NypINsUY9-}zE^iGZu=d%aTg^BdbbNl6*8OnG8EGEnELlrrK^X|?y zo5(KQ6?BgI@LVT{@g~q(#qhdP?mzU$@Z<|B`R5^@k9xZn23uRM@zdQ+F9Foc}IZ#-zn596$dINz3Xz2jpK+w;No zNUnJVw2uM205qQn{>7>DO%=0nm_2q8eCcr8@4+uSIfSc0+s1I#2;1Yr9|!EVG2H!8 zXFc%}Cr9uB(6$NO>M>`0{OjX(TYfOkJOi3%5bttw92Y!cw{_#YKs|nZ?vr*~H+~Y5 z+u{n)Yen%tPTh=V-=E^1&bmeLL(kY8z~_&#<9P6XCns?6SUaX%3KQ8@u2o&@kBi4S zJ-8Ig)q`sxsvcbYtkZ)_p-w%x77nTh7YCglTneYugKNQcAw9TwywihAp#^oh7CNd2 z7f*0{a4Gaq53U8jdT{Y`P7f}Hk?O&cO?J zLp`|od8Y@LLcMx$E%1iPByjNyP7f}H0_t)tv{Vl+p6vACQs|@}Tnj$+;NlmZ9$X58 z)q`tcw0dyyOHL0ig(>R6wGdVhE`HhR!KF~49$X7G>cPcRoE}^XyVZkhA)y{zJk{yJ zrI30NJ-8N{k`uUin$v?zp|yH&EqK*~i(heia4Gaw53YqF>cPb!rw5n981>*<2&o4b zzv}ehQdpoKTnm-z!Nt>^9$X5W)Prjwt{z^Uu9KnyzwK;_E2-_UMSG;Yr4>wt0vj_jV&}P>np5yP@oWKvf zXYVsX{P+7dyO!jd=gVylrq*k-eW_i`(3 z4&n4qY@%EiIC-4KiY!2eTciZgR!~FN!9L8tGZT8?r`)!Wm4nNrJ!|M*%9LIfsvN?c% z`q^f4koo^&a|ov&ve}Ji*4rGxX(xCta_+hC0!TiWvHO&LFCn{6^B#sC+09pT$&62d zxtRCH4f6Pz?mYY61J^s*G^7s6_awO9$tHz5BS5e0hp$YTzb`M3?|0gIC_m3^2R+AKXXKf_pd7;6 zo$PVtnLeQRenGs@$q~H6$#GoR$o9B#e<%BKnUll#d(h8sB=F^pZT8{`P7dL1PLAUa zP3%0qcy2+SY03P<_)AE>7sY=$*_@eYT7l{w{21u9f_SZyW4Q5Iw(iE~oSkP%7}Jec zgO4oVd`_MjOqTD5(c}PL3scDQX(%Jhh3E3RWcfzH(A~YN6B&wGFx&UHp?@& zfSWA)3iC{BvOEe($nGMx1$`|R!=Ic-KRJqj0v)dep4L3i{yhY|0aTCSUhX{mZ)oE2 z7jkSEQ!Z_hXU34_u@E8$vHPOD%AmiL)1{6cHHCLx@0 znawV|x;^u6#n(`{{grkcFaD*2?MdL4SFxY;$ghBhEZ^LbIg#aCp&!|Ycfb&G90xkH zZe;o664v5X=80$D!fR0vPao-9v;Q)GFDQxD_bK08l8PA$zd z1($H1;D!B}H#vg04aze;$Z@=T2-m+dE*Q#jB+J8w<(UXs9ypxiLJr`+0?daj_jsIR zL6-YL=B0ccid|1Q>xnyz=lrJb#WkRHh~d>Qu)frz_`IpC1KEx9rn5$57oIbN>xC?P zU(Yj($#TjYd8SG|cmQl7%MIVnGY84?g^=31DCs`$vu|WSKB&ys+GYv&5b#i!9|kX3 zu7cj=DE+v>jtJwE z{dfxK{u9DgPLATtrOcb3Pjlh%%WQuLZv)+<;y8D?-PVQsKwM+uDNa3vtDGFgnHA2M zxEE*~KVA>oml(e4W1GErC}?g0TnU;_6lbn*#=*THIS&43CD$W!FqL_x3urz*{PQQa zp1_xXYWux-f|Emdo0H=>SjD#dJe%zP+-7;yYUVMAI-U=%HbqH)LoOuCe?fb)oFC;J zBg;>KpDZ7PF=Y8P%pl9DYuI11oDJ3F81B24HQ^rO$8$jEhW`uJ2XxPocfxM^B_TXNi9ywzJ>ra-Oz)`Xr-@Vbf=ioVC zv36~_kKt=J*=L6rM?jy2$~l{za|XW*P3aHe54Yr*7UT$Sxs~@$^*oDlW6qH;?sL=Hv72l<2DEIOZ&N=HD`PP#*pQEf8cs2%a1^W9Kh>g2U+&~$TnoT6J&Zg z7C8D7Ye+Uf^UMN$U&)W>Kqu<*e(;gy<1kqL2lLE>plddO^MAG1hzoZ+#M<#Wqz`vF zoM%ST@58eo`MwVS0?EJshR^@au8#)~c5(nu7R)D%>r`hP`TipuU$T4{s>li4B4K;v zPhb;u`G()wcd`#p2i+^e_%}GJZE@Nk_O)EN8|a$y<0qXQ#8J>^r1E~y&jls$Ie*%I zH+}##=KwBq>S5gKsJ*^C_~pMCrya);k2CqEDLIHM8s?jhUSfj|TMz@eB8}4vZhd4IgA*xL#cUXYYN$q#hf8|2v9B+S&iR*)$O?QWKTMrirCR z7=)!TX{(K`rrK&z8QEA0gD48Kf7G^rhZc)uC|dL|va}xYj3hlQ=1EvAo!9&G8QX2;`Ancp?;%0L8GtQe?|DbE! zjT093u|5OYfro)rj;DcjE#ppbbKDsAF5-Ooo|JqSs7?SsAJ1Vt`ZmUw`ffZIipcWW ze#V6?UkrY-2Oo5MAG3wm6b^hEs7*JX7SBH12?6TMbxW9cvb+^q$mWhd=5ny^6Yz$3 z4&#(^yWEM-1f8Qt2CY@Iw2%4uPUfB0Xyz`~)iU}+n|}NZtXj*yhflbVW6@6+o*m$^ zs)Mh2fNP2@uYR;^IIX6S=^#7t)Tii!euf`^ww8WU9>YoN7{}-NJT80zn34Qm zKfV-F$zJ?03?$3H*U=}koK;W%$?{21LU!R38t5BYzWA9wrhzPvhcMZT=Wpm^+R1)A zqm@38efX?b`$p3tA5$mA%0^zQuDB9=Mh3ggP#KDOk^0 zIQLEJt4(}2)Q|(X$6L%DS-$dZ#*Hjr3sJH>8M?{xbV$vmpLjE9-lO;c=(*3ijeYlT z^n*GcJRkJDFaHL4l*>KdVNS^odgX5Cr1JFU15B@vzPIlm*AmMbbk&n67cCyEk9oT%z`cyf-c{k%r z_T%My+26_IBWOTcjk z_mDXM0Bf4;!9SWrlSei^63rb@NDkoB4oWm7Wcm4wL{mYQ%QF*Ah%Da&9jcED`X<`n z2gemhC7QjI%Wq^Snx1F&v%HU-NjCiw&2f-JmWM$uS$^>7L^F;ozXe{h{66@|va7#c zE}sMClzVU|tRVBtCFb~J60P;@!nZ>M=+=`-1j_dq#WK6hxMSwohu zhA>&a9(Jof{u=g^d`enkXldg%wx5l*~xQlid3q1vz{rJe}phu?uH22EJ!q2p#53)!fwjtsnAXK;ls=5kM=t3 z2J1cqe-|&0;U{ml>jd%JpgIxU`xeHFxt6y>Z#S>^vFldGmMl+K<~>Z=w~&9MTz&)! z$U*!OsE+)PMf8<&xz}RWE!lzB-^O0?D9=Z@-Ov0|9>vACCz>Ex{&WfROO~_lNHlF^ zC!PWNIUFBe2_2NnBg&a$vU~<~lik=0y~i+CxP2*Wkt}}C?v~Y#>->)chKh< z$~kw^KkCTCU?DkxzrTxXgzTtbzkx2^_i)~wXqupga{2gs=rdV97b0XoPF_Zz$?_cN zBFh2jeKuJapW-m81#G^#lOb0xi^uYVdnhx^E|izAvubx9YRR-|3%Ir%UzI1 zmVXBi+5a%-3tqB3ekFY)%U3{vEKi1@>f`lbty?_pQRa^KTYPvm=($oJznW`R?ckeW zH`#{|eVlf<2XNpkU_a$vJP)jUB)kW-ug384PuSUoz40thc#<`y$Ks!Yb{|Y7YqHAD zL3~<`o!z(;9Qk}M6CSZP(F`QZ6Cj`L#a*ENR-RnTIZ!Syfnu_JHt#2=dlj)=UeUi&bCBzCg@xO zxH+C9_^~&6?&f@hIPezzO^zMN8IO-<=)^X%gOO_Cq5C>jtgG^x*wB&01x%$o_}Xd$qxJ>l#-)(*2g^OlI2@J z;eL!PFM*9@xdL{Q1NgH~?Z?LO^v^gK%6<5|-Rxrpyzaw?>|r0~^`HZ<1g-5Lp0?M% z$ME6f|7qVF$n9S-M?6;E2l-_4b)tC=bpIev`G$2!xqJtdkOO$gx18gkewMHKj{TW( zxeQj2{rG;UCCgpVLY9AqZDbSU-VAn<<<5TrS^ge+pU<_Ae}=(i`2ZA<&Avo){txtx z?7_8APL|L4mGwiG&xeg<`4Z?L%U8t9z4)qb?gRNe1TQ}OH})UuMDV4*Gk?4n>ctVz zT9q$7z@AJUxdaj};2ssvg-o)1bG$r+BcRvg@&Oo39r<|UFmAFu8YYtEMkpc6hxTxo z3bNb>f@C=rHj?GOu#N0f`9Tir?={QS5T#tMgZ*SV1PK@N+>LKL*kLlse*6Jw%|!9Q zUJf&ya(Q%ugZD4#8@>RF$?}!pCwuWL5FpFpBOIoIEJvY@EU!P(VLHfiGwdga@J)T_ z&p7&zUrglK$RRAZ%n3d)RE6mahL+KJQ=)d2QNu?7#}%+FCV}d zlD&8ZSl^q#t;aB)l!tK_==znbkLBMemtTf$s)JuS&S7?v<^DMi)AJ%e*A71bnPhp} z$qti4mY*16mj|(LsC`_yA)dqdGtl4hiQ#_?bC^6HD<69b^~v&W!+AW}k5f-$%*pZ> z5G2coS$0D{SzdUt!;B~Uarq?yyN(7Fxag6p_m zc>O4!<7JGfFHeO4*@xes#5|INH#p4ilUYCPtEPy@f?kt)@Ji6{LToQ%2-?*LTm`$ya^iHZO|tBS-X31p;8URX zN!r1aA)9h}0SqV0cR>L;fIk7f4vJ!Pqr=(*<@2DBI`S;=k>v_lPL`8ya+oz_*$=H` z`7Vf%<$EDUmLCFhDdSecx`Iry?3u}UlI5$QfGl4N#bkLhl#_kYk}symnuvOF8IFQd=6=Thc|?7(%P`)9fTT|Az0`79_T%jZHd z*@M3V)t5iIoApDv+yw!$d;o%EbC1JZ47w-r;MMUQ#Iu((@6_>Q$9>E@S-utYye6Cb znRm5=kAj5D`P?mh3}lk!oOrnl&jHpmHeSjilz9sCLCHJZF&71tW&@?!9l<#Jd-4&ahU**C~OeCTS%lh<4h zyl#!1L-`(Y2L|MGjF zdxj|PQDv7q@Y-tn$2f=ZRW%Oldv;#@6X^Y9et6H!0_*oK@pj1PSn`eQ7&o$fCzO%{ zcps>aymCEbL6$eb8gdvPQ)kzapQ&dLp}a73w0C*&X&dPquaTqp#VtIR z9LA-ub6oC43nm%{)T2Cv zUxO87`IsMBOJw<2*hqHai(ngBj=)Z`{2uHlNAb_l^J-pS;7fmEO_1fwU@+N>7lGQ5 z9bK#y%H<>&Pj=!{K>d*)gd)o2hhQN&h+hV^BfEcQ@1v zIfB1YrXAV;3+F|-d^_wX2k>U-c@3XWh_^#3Szgl3K2DamLLONz|BdT{EI$rjvfKhb zviu^Hlf(E2(AqY?v#<0_GAk$#;eDXz1=B0ZOac8(Iv?Hz`mB-|Za*Z+v{FBc2P7of z_i4BYbbs!{jiBo~g!jg?IV{Qi(mTm);j!k(B-0;M$B9SBvl|z|PU^^wu$wGr_DM3` zWGC*Gm}GiSU>@<|4*rcS*JdOc7g>I|Z;}~L4&u+Cj4U5}RFbJ6%kM%hSzeUQd6DJ& zK;`n#es;MF-v;WlAMfwa_)teqIzGvCk)3!vXdJw_4y?=xgluop{~^JNxmNiJTApkv{`I*xqvHwTvg(i5~`?OAudr z9qT#7^@2;hNoF8*Lin0VtO4FD^W!eiHDzu{GDm@)Q=Ird&>9QiZzkJ)j^Wpfl1v`$ zMDVn!%!}T`$Bi(aa(U8pjz^Z4Lx3E>AyE7B*qiLfdT==esUx2`gE1k?lc1gK!w-NS z8^s%Dv&JYlbCOIhsQ+#}Y<`kS@Nx~})nM%p_?ug}_9>6yrxr2p z@!3f96X!2uk0Q%YEoWaP%Y`f0m&o!h&`I{=@+$UEasbzZbzFQwwcR%lUKY;*ydA9f zX|d}m*6IoL8BYV9V+6OXWenL{!gxPqPvU&nu_u7ulaaG(nN!MT7vz%VD$vgh$=>xz zrhsyJAxtFu@!C4tCx>uLJ@ZQrL%(3|dhtFX{t>z zRA0UyGAWl!GLy|=*t-U%v?;`IKEt)4sZyU_gw zf6o_x2~paVjgv7U%O%ir8t02w$IHX`El`_s`T)jfGFj16YM9;TcLL``wX5vFxh02 zUWb1p!^2%JsocoO+KJ5%UyYY@Q?Ht7mM%meq>p{nr(?>H$ zH?q$0$&f>K;R&ER@)vIQWXk1kC?uOP$!6Kv?76(A2;f%G?~ll%^XVIPl%S$};i7ZE94O#AW6=O}7Pk=Dlg$G>2+9S)4%tO| zy&WH4#vVnM?_bCsN0wLK$sR?PABS>s5PuIV$np_)F%D$8u7W**Ecd#Hb0^CKpquQ% z<!IFV12Iv&jfvrjroN1ll*`F>bh^#@WEY+Wy0?*EhZ4%=niqKfCCe|v3UU}9^di?XuTLHLvUv95s(5z3#NM*e z-h2Ic)XSV>Rkr1Sk!xs2?t)gb{5xzTn@!9W=()g;Gs5=X>%;}1eNuk+RqkV`FLy#0 zIfe(kW}CS4t4OM?c95i9e5OI{N*PhmvZ^m59kkB zUIAWm5WnytYw}KB$KhLcP={;8kH3NPC$cSPba1ageR%{_kmZXZNR|sfVy`C4*FhUu zE`koS5ATK;SswW@d-dFYmd_z)ljZYaIN5{m1kGIle-2ucF+5;rd|vP`pV;$aK4owJ zhdsYR+y;7%lZSrBa}aIH<6xrN$1i`+`Xq;OC+PZ(;gj|=FO#7| zkaBr81jv5;28^%d@2cZ(e`by-mw$zgWVy#L%nR9p#|!Gq3x1`4l*{GNa~{uY_#SYQ z1Nh`_t}C)U2MWmY@ZVThWcg|+Bg=39PM^v0dr(6*2e|$~_cl&^PCWbYX3%|R1ZSEQ z(?Wf@|G_DyjVup?C|Uj+#K;l+$ss8wVLtm3KH|_6YwvR5Tfy1~@DuU!Al?Pm`(t=U zLW;egynvay+u!070_60YYT?6$q2V`0$J3cg&z3If_r8n_`N|ZtMj=Sq?x2Sw5zeu_DVO zVGCK#gLbmK6?T*5Q|F}^$1SvpuLr%?E#Ct&-mg}L59Kx?c z!mWG{&NAmkPPjG2^nt--2i~zT#rnP4C_ZM9y$`tXoOt%*gBEkX)R&jv#`R2=gHTMC z*FqUNg!h5=6XR#jZ)aZ`OdY&e=sk9vxrFt^y|H``1bD2x9%{&PGqk8p{A@X6#rFup z_@JeB`wlz^+NdMXf_Ad}0PH0P@t`~DKlg<4OLs9ol*_L|?}c2yxczSCm)E&bJmntN z9_4b!vJ~SY%c;w`p2<#pI%qx1Q(+?IatZjzK72Q*j{F_?DVKkMHRSNUj6XDx<;45A zj>xhX+R5^C*h`kHpo<*BJ0W2aKXZ=X3NWT*`E3|ZmUlotIf^fMkYhFRy$sy^5d9p$ z`dpD>-UTmpA^vk)N5X^$}9WO*p4TpkrKcVov&=8JOqI@m^*gRqku@pmPWXColI1DjCd)U)%Y8WGG1ejF@(bW2%V8)d%WuFcas(f-ntgyQ zk6A-KvV1i}$zEI>q)%iYeh&0^$K+Tg=XM+Y#N9BEEFV;;w}94_ADb5T zQp)8;&!?E4e!ho`d%vOmpP&84$&g2uGr>!i2ZE0*p9rcGz-BA$@UuWZTn^UzLio8h z);T|?9mbtt-7DhkH|^}jcY^AN@JVk`&V7OlFNRgL@5j~3s)LiaF;+ZpI&mwQZ)qRD z`vLPs{RrL#YBPp&KeYD{H$JX|HAWp5E(7f?e!Tx9GUev)?4_X3P6^_jpyNhy^B%69 z+nFQWxR0??#_mH>%{a2W1XMqOw}bWlAbkCysiuTF@=dUiEQcVVcJT91LzZ8I7IFk9 zC)n*c@eT3p!)b@7TA%sj#IGM==Lo*6cPhVo&TD@>3EIhWE$k)B&CpGjH$m?u91EY@ zC)H$=J@^yQ&&siuJJ#_Lj3O(8ji4^88|$PU~Jy0;1AeV}>wW~7>d zeN)YH>bUTO*{LQ-4&s7-)FFFtS3H}eQ_bVBMRjmye>*$z>Ua*~EGO;o{)`h(hi%k% z4@fm{9Lu?rBlw@krSkJ;{5%gn>V#C|xPzbf!vkO-*@cr%}AqABLuy2C|&&qCaFOer{N**-4hqI3?BWC(D;ZLOItdzVcMg zQyF_kq?#PEydB(R`CAxIc8^Rodq96HA%#!wlKprs=shKQ%=xJ%pK|#dC{#PxTtNHmrSe!Prd%!nKiPw?g8*4Bhc#rm143kZ z7i=NRM_#I|Zmn{3Q zNi}6;`94tJeJgzB zbk+%3{uc7cF`R!R`x04xcsBhc%T2JH9Kr|Bp+96fR0b-?Z^BM;1oyv%wL+G?im44+hEXBRGiiut;mdBLwh4q1K&hLhzZ*0OHM@=%yamd}I|vK!BWg=Bd# zRFLIOu!byu4k5Dq9fZj-oVbqthdp0j4-v}cCfH35;oo6DS-z^4Yy2Lb({WV;{Upn` zgqSa~d`}DgBnR-&XYK3Pg_nVz*8;d6qFnoO-t(Lb_2qo1A$#xxFYs7$_(l2vyUFsA zFVP>e{0t;4<8>~czmYXhmLo8n?0Y%YT(gOG$zB|T@nkvSRgO!RkA(o)g~Jde%lU86 z2eJ>p12J+057}yG7rp~@pWu3vH3K?F^A>Aw8}qxIYZgy?hrW@0xa(coCG!Wk%(`~g zCE4)-*ZU40OOD}!o%Dem!5z>_mXG*^{*mR)u#+rjf6AUimd}UY_cDffJ7kmPrT<`! zk>%y!CI@gQc*yd#yHZUlS#J4?K9J?lAw-VhoPTj#vJ3av$9lMr&+)(+KQiWIIS-1+ z@?%g+4&sZtm|wC7&-*3SY$W^fX0YD>!T*Gvl*^%C=^t5s8WQejOz^;Nj?2%SxbYIO z?ptuu0m`Z4#FIhK9X|X;k2I@1hEF{x%_?`}@u2zg;;9FxnfeZWHwvFpe^6KIEW*#Wg=c?PH*`Le^)OepmGL45ptCvM1n+Ad@Ulg280D81l$I+yWl5eA>xr#!Hqj zf>N?vF317=8|Zxi&yX~;8gwrqrwpYJ)R9kz5ZR4uAWW7EhNYQyvV0A6lD)VFx>W~z zPGS8$#9ZSWAcyS34?!+jo^dMUOqOqjVzM7Mj$oaT<(JM(Gb_mQ4hWG=UYhZN#!ZgK zvwUC_{iKeZbyk|$NtS&OBg;KUGrlXhM(}ZvNp|78-Sm?zKLX>(@)2hqrO*hZFLhn?gIKH)t3xbjHoq+G5an`X?z+@Iht!AX`= z3et>=?8ZATNaJ%@c^?B0xHQd7B+H|qOm*-zm)mvZ)2`tfpxrtkJ2B!3mjy5>{7;xEME-;WG|k57yC9@KKfpcOP0@o3bGrYd%wLNtqQZB!=l|GQ=gf^~gvI8#!jY9x`2$yk5jiCFhnDX0X+6mzp_{eh3Hrgc1&;N~cB+J*o!yZMJ7r_>?A6J6<;Cz>L0m>e{ zEW+~?bpm)Ns6R1${(H2;{aEaM=D(fmg}IYGJLm`XWmgCFd$CUNc+hi=7l%Qgc__Do zUbDpHk2sgFdA|#{?PQD|*F7_92L_U5_oqDfk>!<8NDj)oxVIpC@u9mJL$X}|4f9A2 z;jh8!KVI^!-TwgIqs(!g-?8U|&fSLxd`~}ktP8IMl?U+wP&;Nn*Tv85_0)0T7k^=Y zc!Kl7pB|QOQpr(#aYnkyJAyI6i$U%9aZ@~p@bIj3>vR0v_{yWwO)ii1;-yEYn~CHA zF6y6d7Lw&>j!8GG$np+oAV=|pW7DngfqL=B@f^hy2FA1GaCbAemHdY=#0o?Oqd)yp& zu_xWQRE`h2j5@sDao`1@&rkN_FXK6evoEKg%UI|52GD!LKKx8Phw(wuLJcbgpaw7aURV2!ByAW=N`iQ!2153H{HyeL>(UM$7?|2FYkdU z<#H$NC&%#S8yMdz_8dI3h&udCnh(D|g?{q0qY*rP8uP86Da8Tk`55~)ei<@(th@sT zljRuXljRk~tZ%Zs8cN7=B~*~*b+C#Y!hNUHZ$2YM{u~-8m(y-cH*IA3Y1m1YH$f*^ z-U12LTvIo(zF@_#*_N*@p`Vn?r7)Q6#}9&DzsNfvk8*h@c*s$_U?$f!KOgJI^`L!Q zp5$YEs3Vs_x!S~8bEu=|1w2Wa`aZlYo&)$P&@~vs1LiVE@39x*g`j=OkGI5g1b+>x zAH$E9a$X!Oh~Ea)kKo^-bsPKhJnDizhdh8^0@VrQujaEh_}*3wZ!V*6v=hPC-pXUi zUfiZkI}!XXL@AfE7c$Odxfo0h?c=|L+K=Mn7qKr>S!>?O;yp^NOt@7}@Mc#31;-C&I; z9$ju9*MnEaa}a+6y6=kNQA_RY$NRuVJLXRI1kky=@w9mMK!mjx0}ye6qX<#*_W{#0PkeAj`cTJWG~c5FyJWAxd`RuR-6(jNubk(r4Ad=YeA#pW}ght>XEPEEho@SzZ7h zviu!*$uZpaD92_0kKlID`O05|k2>=4k5NvRb72ix9tRC%53T}hj&RCq+N4~*bq#Be zEH^+WIfSo$oIQvv7d^rLQ%gT_8@R|3JoHJPoAmuwd>yzcmw$)xWH~uVKgn_?_{mOu zO*LN+?McrgKN1)$nrnIv7XnM_|SEXGueT2 zK;!1ZYo6x5g7P4Kd;{0AGTzz3-cFXwpXGUiEdK^IWb+*N9?(LTD_U6tWO*%gl0!K0 z1={E5pq#iBx+#y~p)cCyZoKX#)@mK)xNReI=A`|X85?j>9>PCuVl2q+SJKVtVfyeU z_u=?0&^$))$XD(0cjH&$IgH1>W|w>M&7gCS;-fa(*Ps*MxP^J8eIH&5x!iZjuGiVS zD3?dWa`gd!{U+nXJ#!3CdW&(ST#jzzSY-L02y2uq?}EK#`FH3doA;QX?X>eX_dIy} z`|N4;JQg3{&iw#cJ_lT6`C7;)%kyC(S+4wmcF1xql#}Hq2$JO%2$941rw@5v=YGKK zNH=$a_M!mZ1Y4*hpVC49$?_QJBzth%N37vqoI5W1yFIo(Tn7mcWn2D{+)aJ?(2tql z2G$;S!$7h;eGr&4@+!4h>}Bi#4pSp*^MiI zWshy59PjPsyvQ-!{2TiQdr=6N9F$@GT?rp<0?l;@e;dy+Jmg@z+=E{NjY$}P-!sE> z9l=`dm0@~AJ8jAfpnzk^XC0Ek?+5TR`M4MslI0Kt$nwt+B+H41@^54Zel8)ygvnui z#1R?%jx6PP=8+kuo9x58zsrPW5;LslcQ3vjto4lhIqW)aJRhv* zTzqs|hRJMZ@5Mv1GR$zY3!l+9!~PuyytZG4DWp7vXAZEl55G4!!<14U#RpvUhiryr z@S2c*lI3F|LYDsyd&%;pBRMa!>;p%LbHqoSnPHq{2Yw%PzEPZ{1d2s$Bh~M-aYl{v;6j4=9ny> zSjxI0%N|%omgjNT*_rXj3djBg2q_(%fG=!vbl}<1bwcZe7T?VqFlZic9Z?M8}vF?UV1xUQ!YOYjt#6C zyahDofh8OVl-+l*en9i($1U+3#{1*hlyj|v>bP-fJo|A=JcsfAcs5I^4_19#8qa>* z63=10Kc3B<)Ca3RE{$hDZi(kG-XG8AF6x6-AD70nAGgGF81Ii~Q$c-D{UFY}JHGyL z(><(X?fE!zuf~P@BK#p}&$N6W*BWCOz=z#WTV#1C6p-aBppfjvm7v#6A>0D`ezd$1 zim4+f2iWt;ay_gd%gZ0&v1EBYY$VIi!!~jlCp?y6c9I=BzZSF_$Y7e9V| zE&B#_BG|0seEEAT^7QqL*I4#X`~hgK#_;iV_Bgn3J0x%q5XD#5+vDKH1&x%qa1G+Z zCdQMWm+<18=J;IT^B|i#@?;oDmV1X7ce3mR4_VFwFWHTKpngX1h^Otox$zUAISS&j z&)9wQ;Ia*N_T#eWcs%X+@t#)p4RQ=eU*veroFo1b)HnHzmuR0XzXKt%oUoDWge(t) zc5(o}59&h{?*Xk1dBn?HgVd3yLKj(H4!xgc9`Q4fO%CIMo9sTj@L{iV?gN-dT>TpR z2aV@*>NKl{UnJ}1k+WhB*Xu zF7j2-O&$3sNPUjKiGZK^fb~R{-+^4R^TP~t326L1*tsLax(}Bh1Fcolkzp2p#CcNR zk1zhaUB`oWf%ZD{F?|5554b-}q`rJRl#=C#p@J+w4Xemue9F%Fn#8w&`s2sHfYpaj z*q=dT?#1W*!=7Ic9u>8(O*cO3GrMmtydHEthH%O*`>{^E1=M~7Pu*?T_u&y=#ODs@ zgEe<}In>fmxdXyv`Mf>s6=ZolbdtR|{Ixw_@*CgU*GmKs-)GO42VV&qEBQm{=CN}A z_srMx{9GR{gdDP53c2J6{uR`Jvp>U30`0v%{08XSiQ&0F#^(#~`pG`W7@po`&zB!> z2fcq7#iM?Xk3aqytoDCl47%-o+x(Vc`uuK>j{^@qpyxcUBe_?mDNx_=bG zk!i}v^5w9cEZ+=k$bP&7ti2ac>YHhOcApP_c2uTuvERn<D|iSi^m>o_tS%a1M7ZoV5aF0`V0{HBXCk*-VeECb6lob4AwZ~Mo=F@c);;? zA6$4g=y}$UD?sZ+UI7KPBX__=viv2Kk>wwtLdP1EX{vHEt$jFz7o9-nSbjX@#7t|S zapOBczcU!X--G&QPRcYVf%@jcuYu++f{z?*uK@>s@nrhLwG+mjL+Fp@5icA{=DG;r zM?mu^H^VCWCMUWwc~6La9v=%^$nt1tC%bVqs6QdR1FZSNbB5Xd@#E(}Ych<7ooe^T zjgy8mM_=<=2G0O%%<-Wk>^1Mei@_?#^S)C=snaN~jt?XmLWffw6z;lf_fz7)jU!Rj-<^b)%d zLF~RXKK}Uf%j`Am#b1K;Ja~DgSpvF04B+2E{W0TNhoCltc*+%an?BrerJbWVZvy)u zbLYnEuA`j$&k$Zb$-Z_1_z|$yGd}c&Of#Nym)AiFS$+xpWO)Y!$WeUeWV=6Ze0w|x z@O$wb#RH1$Ixajrp8fdMc#hztDRvzvo)phM{B%5ragV8X9S6QNp1rs-o` z5Vyb@ey>pOf*|82_qvIHBRlXwP#w7#wooq5gATGEuK?ANJ76#6@)yuej^Q39tj`zu z*T3vSBgXJI@!jNb#bBWKRwF=Y8@@ROZ*IH(=D3<8wPOQD7w zz?GnO1?(q#@oZ2#ax3(FiO=4_o4`p9<91Mgdb3+ybg2cR?BDaxWkE0AvRq0P2ri3~MNtXF@C4hs#w? zJ93+#T>b!dlB4)vpmyZk**xD+E}sPn8@Xojcu+g?D#)ZI%pt=@cW=T z@*(rN*CETNK|9%vCxhz9kHBuSycN315&S)s|td+=OP9eFK`qg>tr zMdTtl*{9xmMmApMzS1+2w7fn8;{|+JB)t< z?RCbVX;y>2w;RUGZs$7Xb#VZnzJz}Aa|>=f4|MMr!-wC&^-h~|5pAp><4l(S0YS3-1BA%( zFAyfnCj{(r7oG|`DVO^^z;Vg)ao`B^c}h6@LH0eed)4kd1OfzB)eWP5S|2S)&EH8&BS^fxO&Pw(=@R8j(0J`Uq*H$r}l-J^%YWhHyJvFS2*EnB%FK7(} z@Xw&<`fgnMl%3^JJcsfAcs6U#b*@OYMI#4V$~DwjWt=iT_|db`|-PXmox zF1{k33-Jcn!s~?=yts+yD%$kp!Og4zjUm1X^w@=XONdOlY@W8S7dbDU5v)RCFF;F`ZyrG3XhvP=@tY?`s^%H*&EoAc?_Y%-b z4&#~6bM2@O9@EPG5ZQwddVw(~JMrg`u$kuqe8r2*0ojX3zr?;u_TU|mM~>p>HnKj+ zVSK{NTsvep-n)rwfoxvkc>z|D9XJElkezrS1j#Nu`V-EX?7=7R;_+lReg_6`;aIr* zbM{_x0H3>?H9_{^lrLCkWG7y^kG_$Exbb`LyU1ZY{0AOScH<*{V!l)#pZ7D@B-w+X z`Gspq^>M+k%#+ITn%-HagB-#iL+0y@4<2!3mdPf&@oI3ALpTNl$)-=1nGZQ+KOUHv zWd@U7cqzEZ0eq?>%M2&G@o`C6CRcUvD##-Tu`fA`_d96^*QR8dd~z7Sn3iP?qDM4?$FQ z@YU0^%x^4hWG7zsDCa^B;`3H#nRc=V4}6??C%bS6vfpH!vFlmp zn(W3)S{Vy+5P#QBf5_&8EOYG6EYqqwc<64nFpV*h59p$n3yyU*7hFpM`g7%6Ed~`}* z>$%>8f3Pz5=lG%2zSh0L3cLN$YFe+h`M~Wb`!!WGDVIv#%*8$FL*2uc;u* z!K3?{fO7x7CK*<-pSbWy2$JQCK%aXfPmO2!mUxy!pnH3{4fMBe#_WIoAv*H!|{Ij|6OPCz`ueqt~>q;2M)Z_{a3Kh`*inT za_s)F_4t3^_VHu)|9j@Io?FNNxBbVy^8c5u>)$?w|J(i_uc(DF<()y$&uw>+qaahc(8y5)1p#*8!kPO3SFIx~#VOrrkH^kx!YO|cGf z5iL!o-C1TXOyw9(tM(jf&!T)1CDTbWseQINlD7Uhc0Mi4wH`a2y8pG7vCjHpQ%Fmf znRz@?|Mti6&N7LAYU4`Um_sXn9Kl#;RBDyZTY^o?-Pt=l$ne|MiSC z;{UT_`^^xJJ&x9=S#4`ne2j-ibsDRplq0O?i2wUzGKAV==$rcaUt5`LeWlUS+0Ezw zMI70f$C#NOjE-GXGpRHDV?6bhJxc%m@rPJ*GL1(}w?%o zHN})!V>I(W#&?Lh$t^Btdl0r@+$f>llrr) zc2#nT)rUXUjn=A@e%;JbHD5DyC}vb^;J-cAe_jdyd4~V@J;9$aaY= zgE0fGD``Ccsx?2C^ZfHlHeA=cb*Y)W(PcAAob#v5nLB;f%u$1e4RH-}PMJA*R?+mC z(?$)tV*Gh0=MHktEuA#8Xi~|nnNvm$x_QdnL8H$)^6~h$5@Z!k#na^o;PQD>CN%4DVZ~6_B@UIOs`yc=K=YKx8jE9zT+T*6opHkv1(f>ycnl$(Pne%7eG-b{p=e+4-CQqI+mvfss zsbubyLC&H7(N5mb|M^k!hWW-~G?k*Z8TMQ|GG7t#j8E z)D_kh*ZJzo>il&Tb%DB7b-}vYx=>wfUAV5TE>hP~7p>b{7pv>4GxZ7ej{3}cXMIk+ zt3J2hU0+b|sV}Ve))&|N>dWf=^%eDj`c?J8`r7(XeQSNVzO6n|-%%f}-&=1Q5*l0$ zxeXlH-`5Q9Va%%a!S%K4L+e}Dhu25f?_D2TpHSzh%dB(O<<$N8k+J$N>(P#e%m!ye zj@630p`gLjP}tyYC~ojIlr{JpDjEU}s~Un0wGE+$)`oCHTSKIwqaoU`w;|Th)nFPE z8Xb+9jm}0_V{W6nv7ph@SlH-oEN=8QmNohtD;fihs~UriwT+?1*2ZvSTVtfLqcPgJ zw=ve()o7X$njB4;P0psACRbB#le?*)$w;`I{=50!^!$f=#tep{CZR za8p}Tq^YAR+O)SR*3{KxniHBG&6&;4=A33%b8fS{xuDt8T-fYwE^hWUmo@vFE1Cn% ztD1w&wauaC*5+_?TXUqjqdD5Vw>j3_)y$X$c%M&KSui2!2xbPI!JMEgm>YBl3xb|t zVbB{a4*G&+L4U9!7znNk27|T1P_Q)^4z>j&!H!@wxHlLJb_GpkLZzcJv(j0aQ|YSA zt#nrwRC+24E4`J)mA=ZdN`GZVWuS6ZWw5fgGE~`G8Ln)rj8t}1Ml1JL#wxoiO;tjb zqbjq?S(Q`es>-c$R~1xwstT*TRmD}lsa1WF{vvWIV>q_AwqJ zvnW$Y#tz*WP=r@8`STpS9tL`b0CL4bhS4LG&Yr5o3wT#0+8{v4}_@Qi)Z>I$|@i zo!CL_BMuWMh*QLQB88-Br}o?$&uti@*{1wkjLb|%lljRQvJ4p_7xu&CMZ*sc?yimOhr@qsTisZ6{6y(`cyNj z4b_qALG`1CQDdpe)C_7KwTMcfQmIwcI%+euo!UX|qYhIis8iH=DvZWVL(}+a7@7Q@~26$gIh1F-+^aiIBE9QYLn ze#L?R_i>;DtTUoB^W0E1^kx^xNjfez082~ z;sD?EqktFiVeDZ4WZ;m1h2k*!YSz3JPVTruzcJ^)Mh_vF4ERH@jZT+6mTOw2$E$Q0 z?0^=5wSzxJfb-V@#@`3XK5m8O`vHbe1>An3lo?QZGeG7u0F7@41fCi2^*+GR`2jmO z1I#=YuyQJ30?r5;_#er@;pn)Tj2V9RI?JxuPtq%APGT@#OfR}&)egOe^0vPao2!QQl0KX>yKCch>doy6{ z`hcT116KZXJDP!qr4M|nX5dBX1IMWuxJvrKIch!+F8_b@2Se{*2m}nm%WyKX$fcX5 zf8>BOAqaRGuxZ0*1RRd#gg6*kJkrhJK1dV-&H#g48Cm5S;V3v>69GpNtRM@B@24%C z5DO9xBcRF<$uJ1}yJJxp<}3K43n%1^AI`6ksGny z4$BR#r5BjFS$B9w_yNl~GBgB>hStzGGI2B6`gjM2hInH|AR+n|R&E~4Rbv@r6dE2D z8tzH=Z?Q6vH2r%dx9HE`d;4JQ{Cz_}tr#041B?oU#X=%{94cy%7FLB`!m2rgqBAJUb*F&IukYoE3qG!(kU?G@p2#WM5N(THkMW58Dz$ zD97BeaSGK>vc1Kw_Lf((wffVOu02W|(kw+!Yt)1z4;>rsatzJa)xZB?&Z3&zJf3Sx zkIaO{JGSbzXuD>5Z2xj>)cowg1AL`vjUR{m+quj`s-6O^a$1sy-876eV(!%Ba|oKg za2t-UC<>%($*vCVc6>9ztC_ELbhBol$J&jMuyBv8R=uHCZ?c!yr=1n%hpm?UxoHnM z;+ka!wBIjoDFowg3ETIk4}S!)HE(7#@b z+63tkwISSU=VJRS4+qN&t)q7?25t@&RS3eW$g4vtTHxbyGbHHENM2_a;yq@=(2XzW z)6^8d6imGng*Xb?)6XM{vV^um=7h}zlXN4$$jC5lW#yQd7^UwkB$U7k3FWXr|In}q zWv}ocWzd6-LcKx91$~y@E8Xe86d_GT2&V+Thdfs=6b?sihwPwjt7Qn0Zt{0e;1eDh z@pn!U39-`~&JBluMIj*A&m9wtU?d&^hh@Cv?2*NnbEr|F&bVnxyQS(ZMUJ zDmq+L+xhcKCHuMSw-tG3gQB{)jl&1)JF(8VTU|UL zLG5t$KD*1qTV>IEkFN>9Z@bf=L0cn}Qm5-wn+DzB{E$acF*>|h$6GDfB-yszQoXSP zGqU+EA zro4_3Cx9}qPikcs8Pp7HwO@xz(X>q@|5|BSAILY zhK}1+vnsS!_S59g$FWrQ9&@_mA;9ozcl3mctu&YNcm=b~!y4mSx4s)n$fydxnY+O= z+ODO%v!?aKIPbF|-s-Vrf)}S^xBij&(PvB?k6rhY%w@+pt`WFnt`+FMTO5^lMvGcH z$dtu}4|8ePn(yp;^TsGYwSQmrzI4IXVsYK3?w+0~!mJhxsV?e1(nGCk*``&5T*)4_rRjm=__ zQttdRm+x(m!ATWqZP9obf8p?XAqfg?_iInlfDswjWeW01A=BnVM?OVsSN;zLim^bp*8ONKvXlV_P8x9|r z9BMKxzWMID(2jxBoY$7-5T)YK&})~|m7fQzc0X?^OxgFQ=grn}b6E6Ru4$GBWSq1h>lMD&*>GTDOesH_p7lVsY~k$w)c!=*N)xSd60rx0}b& zl1Kg9JILNlDfp35YzJkzMJR`b`v-f5@AV3cQ1XimhV;KzfPmCQR50NGErL~` z-&WtcgO#G8U|lAC{pwz@N}9exl)grjzDm>wtl0$XQ!&E73#iNL>pPuJDjK%mE1=Zf z7wId0obA}!5wF9=hQ|`R_Oj=-__!-6Y?^Nk?+i};a!qf7_0Gno&9pN!{sUf3;_9SA zH=ne;gltor?S1Tr+m>m_ZSlld;{NdDmQ(*1Z!sow5#R|Nh)GXf1 zzx8WRjf7v+%gTk%*}t(RPx^1H{0zN8SsWS~iVF71*X=y%U}fEuyhFS+cCCt7+&cr- z3wn#xdqlUE(v0If_BdFXnKT>TJ|6ADnrs%hwD)w&)!^WO+qMzh9C0@Hv3LP?2rs}4 z=6q1f(SNmY{ncsTPcu{vBOg|IG}>yL}t zO9hho|Js=TdDwy37zz)EX%%KUz2-GK)E}=OAyzg!hs2(Uc(b^7UNoaqt->HM;by8$GKfHS3eJ<8p`p0tz zyat_f$u({-FWY{;(<2=;SNlo-N}*#}WJg=3(ZR9yhIk(82oi_OFR#W}()ju3ve06A zLM6nfpMI-nI3&qrJ3B4@p`od`aNKb1xkc9AZXuHx{q&`xtxYTx497!*fW5&7d<#uN zsORQyPv?~BN4oW2x`IBC;q>l-zUSkQ2j$Q6D#UK9K2909TVKr9B+ui?xNd1s%>KSw z&ef{YE5+xk)K71z(ew-YP*jTNI|kwT4u8M7NF*GK=fi_-iQk_P9Z2wnf=z)4IP#A` z0uSHD$hO)G(11zc;rig->HtZ@f!@4Qb(#|^68i0=zq)X=dQs0`=Sj zM=VaqrvDV5g+1ZMT>SWO80U~x(+8qN?Z83CUqq;wKf9zZE~ z|0!9i6eI!E1jWWJ^dl=Z2=)mF=_tlJ%;y`ch`?@uq`vJY5@P4)?-S&WvA46snAllq z8)&JjD?+L!kfO1cnkIIoKIG5!+4~3kDB4AO28Utne8Qvsy?hAxwIC&6!hn37`3HwV zuwU^WRX_21_B?n?0ES@yxkJ-AO#DCP4oE|i^h-l>3;(zSKec#;!a&OuMjgVcLRc*| zFsJ^Oi>s-qtQ7xmJs^<5|Lx5F4%|Un_eF3@<)cZR$vb7O9nCUjZnY`Rmg5hLm-b0| zAy%0@+UJ+exQW+7YGh<_o#(p2@}Aev3JR z^K22CJWzHo7Wc%pX0hA8aHrJM{`{Fb?7-H=^%qYr4Ak-vWp|+WE2jqeS8jP&kiGeO z-^8QO?5s!o%A;AYCJAh~{iH?DVQRZlgS54vyVk&D-60d7*s{f2Z=V&maL4fu9%1r? z#}{VpPP^}WPVEs{aQd_mYeIyMg0jn<$~2GDlV;+ko9i=ACKcAr*j~G_zf?hDkUSRu zdP_R4ax{dS;=QFRdP)spC!n|}&GM?aWO8Q?S&7S1>njCe$ImbdQSu6lBAYoEdt&n) z_tmPI)NqdZ$VPKs5W}p=I<+Z3;r-l^%Zg^+l{19H2Q;6%on5+H!QF5pox1Z-P}8%9 zsTWzFj}kUKa@#eUDIRoAsg~1#Nq9B0HwR(Rg!*HL+}{hmef(l1Vm zPNvu)*46VOnU{gFFeiOGn8h$9|1R1sXU+Z4!hDKTRm&GfNW>{VvSKK^w0=$XgSSlE z^fDdW0v-;OD(3mQ=jG;fWj=)QT+QOByK=buoe#30;d#Ry+R)p%h4}Z|h_9@MvA0St zJ)y}tJT~c{^I5nTei(OeT$^#As8VJ7NQ=Vb%)*by%aFWjoQY7khi~F&zbl7GbaPAa zGw~bSb=;TCJ2cyEEggAMADj=8mhe}fe0wD9%*9;=J}sJt6$1}CN0`?N+bVf;FsUyc z@D*ZR^oTPmVZ@^c3!Jl?UqAj@6-LOtw@Hp8;k^diU0!i2l58vZsHuIjEkH6|Y8zc@^xWQQELKid6>{gvRh-oyun4zh_1$2CuBo=jWYNG$bb8FRN7 zR&CQf;m=E&{&42vr$>?7OnK`m*=aiYCwCO@!76q0OP`sv5w6&8k2-7r!h&++=KCi* zFASY4H%Gs>3zZ0#(fZUK-_)?1fjy}{XNS2@XMolz=MT)spFFO8(HEn|kYh1-D<;Io zd!J6F1YA`8C zj^2u`6WB18r$dVBdaJ`?rQ$Vae9F{4G)FI9MD(XNmfov`pRq4flv7G-sfqOARwiv${F2=UE>~62*-m7aK zXl7=9;#nmt#9rAc+_r>^Yg?l&R^;@eD|A5 zuwTmIei)b^HLfKeG7V%}H*+)kL%Pk=7UT9kuG_Gh1Xf%~&YND&K54sn zEl)(;jq;^%|4QMCvvV5P)TO(vs z&+GjTmhT1|bBLq)xz$<<+fKX+^XIsup%``u+paEib@bu^$=2c9xrvwTbDu6SY%dD- z+gM_H^$qcSoUG>AyT7HHjGKnsQF+{)4!K$@Jl|D)|H|{6j2Fkw!nZVB+e71X@%4B% ze>h)6Sa%8YFe1UA#5C&u4R^IcuFRe#5+)(>bN?xmq08aQ0}1ZQ^#kRJ8m~1h=Hx@D zT-zp^7?5W=BgmGTkp)6(c+M&GbnRyTHPTg*KCda)HImp_Oc*!d*)6mPhH+xdO9wVMK-E1g>vxIrLr{Seo8$O6z6 z!}50^asH085Om*0j$-@8`$ow%e7=sUy6i*rS7p@OpOo=Wh0m3)4VV>AgnfmMS)?X_ zS+c=@jpP{9Nsg^gSZIWQWN7%_Ws<|atUSMyoqq^adpzfGH+Q1Ub(deKZb6<)?}HNl z8<4{{6}N_fdqe>4(RXX-zX;Xn?h&L2X(+0wE{nJGs%Qf7rW?XrR?9%VH~lT~{u7|~ zmvu+}E_^PF?#b;5pXJVtD2V#Pv63z$r^2^>riD(ruDiU+YO{Cj1;!(Vx>(gqTD{lz zXy`rh4vO!H(h6?i#J;$myBO42TEH*<_SJ4*Z9B`sqWa4sv3(j!Cun#F7_y4tTIPiR za6QZ0eM14E*JSU8^y!&J!Tb521>@O21WVYzh_#E7+;L^_^vogMwi&-6pE;sK`NyM| zWwvkVki4o-Xj*@ni)*c$?uKFgW4N;)KgnjcHu6>3?>DUZ%zi3+edhQSTR_V7l=X(| zZKJX@t_!z%Mkpx+?hDaVV2NG#D!-cMGGu-xlD+YDesY)Y%PpIBZ?tYmUr-U~KQ@~? zmk*zN&=$EgXAvHXu84wes#V4H*?eJj9MspjWgmRfE7DBig4JflmUXB-P2Qg*uSEpk zImB|c2EN1G-n&1dH%Y|B7=FlkeSRRvX`;+i-}N$*^|-AiA&X-6fdM9KH`CtNo^PMX z+-ZHXtHUDt(hhr;3;uB9#Q0M1j`A1QhSvtWb^Vv_wiuWvCLXzVcYfoGTArqh4>pmo z+tM1F5H0w!eSE?^nK@x!#xHfq2xPM5YCNg8_;ma$>npW+Np)ZOVUD_&2a9_~#3!dV z80tzDyo`)=3Fthv=}jU5tD4Yw_tm~8T$piZ-uw0n?JRBPT}l06UUrr_Z}Gt-26W3F z#sKt1;q9u9HKk#@r%Ulj8!-Q&Pwt_VPo@6{r{84~tl-+17#ZZ(AQ1vc9@x8vcJDMJ z#j(?DQR8DZjUN=Z>yQb6C8s146aU3J{g-Po5Dc*2Ix9IKaemGfUZR0jQB}oiI)C4w zxv~L@fpmYs85A6=3}OoFN(FTDfff8hAjGN=z%XE1{>)|kZHI1H4t)oWpAJXR*K2%- ze017_Ah1FJXTlIjCh(H;>SuU5;SVtdEQXNRunki)nSF6`=W991mu0hU!>HWZ4M*Ig zj<;XposaH`Pd@y#G3vo}!hr9GF=xX4G69n*($eGIxu?U~%1t@nkM}k|TM`qMgKHhz zRj>M7`99k{kF=o!Rc~iQn4!fxDS7TDdzjL^`W!5n7aL@EKRz6;=617EbkgF}8RK?0 zj#l0e!*NVQzoI5aVX^llyVh?c`Vag%YZ!+J8@l0eHxbf7(3Q_<;KHZr)sa9mp|ltT@gwt z`ZpMhe}3Zt-8Ru1AqE$F^R26DhTm`?ZMc8Q^>Euq>BN4mI}M>X1=s&>M4<2pSit&7 z)|d*Zjkh$!U(4Sb@c3f%bT;3BNqf4+r_AC-|ItU-8)xd(cDwH7>ArMcy=3Qc8RU#d zL6`P}r8B9X7cRc9(d(EG$cRomAq{n71~X-PnLh6Im_bLx2)eNlZ~mQO+6IB@1s zz9s+q2nH*sHQLg%(rG*~PR4bVr5nfiB;Rn?Wjwe&7$<+B^R1NYl(60$w6IrC?dWxw zti|IauO4J?v1tem+qtF0bZ_>a<1<=OwCrT@GFJ@&2A_>;#LwyR+O*4@w_K*TURL++ zsZGkrE&f!9YpuTKk}h~pey>1)^~h9~`tP*%6WQp9iP1ve2@J|=uKh}JX=%hgQ7&u z?S+OGl2*%`Bk%JP0@kRNKihBg?6+>dadfW6Iu--Vu-f}a@VirMwaYP!)V6K;J+F4U z`QCZLH6qE=vg4=%^T&N=sfR*u%{m?$ZxJNR$mfsG#*^e@uENo06yosv$oZEaY&>1- z#rs~NUgQ?j@ia9T1@R%3`BvuJqvZ)_HB>j|$FMj`B*r%eNoS268?7J%O0d`(ZrU&H z`<^NOnJ>=C)Ou`f_1$MM-?jTiA8izQx3P}5@sYJ9e$8NQ61MwYL6dUkJq5`5ZO>Mn I<=N|h01FSruK)l5 literal 0 HcmV?d00001 diff --git a/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.lu.dll b/third_party/azure_speech_sdk/bin/Microsoft.CognitiveServices.Speech.extension.lu.dll new file mode 100644 index 0000000000000000000000000000000000000000..6c0e6339bb9ee78162c637b50576b6a7f74fd506 GIT binary patch literal 400424 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Ν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

}8J$71Jnb)pK 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 F{|A3v+718! literal 0 HcmV?d00001 diff --git a/third_party/azure_speech_sdk/include/c_api/CMakeLists.txt b/third_party/azure_speech_sdk/include/c_api/CMakeLists.txt new file mode 100644 index 0000000..725b6bc --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.19) + +project(c_headers) + +set(SRC_DIR "${PROJECT_SOURCE_DIR}") +add_library(${PROJECT_NAME} INTERFACE ${SPEECH_C_API_HEADERS}) +target_include_directories(${PROJECT_NAME} INTERFACE ${PROJECT_SOURCE_DIR}) +set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER api) diff --git a/third_party/azure_speech_sdk/include/c_api/azac_api_c_common.h b/third_party/azure_speech_sdk/include/c_api/azac_api_c_common.h new file mode 100644 index 0000000..036915b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_api_c_common.h @@ -0,0 +1,79 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once + +#include +#include + +#ifdef __cplusplus +#define AZAC_EXTERN_C extern "C" +#else +#define AZAC_EXTERN_C +#endif + +#ifdef _WIN32 +#define AZAC_DLL_EXPORT __declspec(dllexport) +#define AZAC_DLL_IMPORT __declspec(dllimport) +#define AZAC_API_NOTHROW __declspec(nothrow) +#define AZAC_API_RESULTTYPE AZACHR +#define AZAC_API_CALLTYPE __stdcall +#define AZAC_API_VCALLTYPE __cdecl +#else +#define AZAC_DLL_EXPORT __attribute__ ((__visibility__("default"))) +#define AZAC_DLL_IMPORT +#define AZAC_API_NOTHROW __attribute__((nothrow)) +#define AZAC_API_RESULTTYPE AZACHR +#define AZAC_API_CALLTYPE +#define AZAC_API_VCALLTYPE __attribute__((cdecl)) +#endif + +#ifdef AZAC_CONFIG_EXPORTAPIS +#define AZAC_API_EXPORT AZAC_DLL_EXPORT +#endif +#ifdef AZAC_CONFIG_IMPORTAPIS +#define AZAC_API_EXPORT AZAC_DLL_IMPORT +#endif +#ifdef AZAC_CONFIG_STATIC_LINK_APIS +#define AZAC_API_EXPORT +#endif +#ifndef AZAC_API_EXPORT +#define AZAC_API_EXPORT AZAC_DLL_IMPORT +#endif + +#define AZAC_API AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_RESULTTYPE AZAC_API_NOTHROW AZAC_API_CALLTYPE +#define AZAC_API_(type) AZAC_EXTERN_C AZAC_API_EXPORT type AZAC_API_NOTHROW AZAC_API_CALLTYPE +#define AZAC_API__(type) AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW type AZAC_API_CALLTYPE +#define AZAC_APIV AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW AZAC_API_RESULTTYPE AZAC_API_VCALLTYPE +#define AZAC_APIV_(type) AZAC_EXTERN_C AZAC_API_EXPORT AZAC_API_NOTHROW type AZAC_API_VCALLTYPE +#define AZAC_API_PRIVATE AZAC_EXTERN_C AZAC_API_RESULTTYPE AZAC_API_NOTHROW AZAC_API_CALLTYPE +#define AZAC_API_PRIVATE_(type) AZAC_EXTERN_C type AZAC_API_NOTHROW AZAC_API_CALLTYPE + +struct _azac_empty {}; +typedef struct _azac_empty* _azachandle; +typedef _azachandle AZAC_HANDLE; + +#define AZAC_HANDLE_INVALID ((AZAC_HANDLE)-1) +#define AZAC_HANDLE_RESERVED1 ((AZAC_HANDLE)+1) + +#ifndef AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON +#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS +#include +#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS +#endif + +#ifndef AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON +#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR +#include +#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR +#endif + +#ifndef AZAC_SUPPRESS_DEBUG_INCLUDE_FROM_COMMON +#define AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DEBUG +#include +#undef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DEBUG +#endif + +#define AZACPROPERTYBAGHANDLE AZAC_HANDLE diff --git a/third_party/azure_speech_sdk/include/c_api/azac_api_c_diagnostics.h b/third_party/azure_speech_sdk/include/c_api/azac_api_c_diagnostics.h new file mode 100644 index 0000000..2941993 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_api_c_diagnostics.h @@ -0,0 +1,78 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once + +#ifndef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DIAGNOSTICS +#define AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON +#include +#undef AZAC_SUPPRESS_DIAGNOSTICS_INCLUDE_FROM_COMMON +#endif + +#include +#include + +// +// APIs to manage logging to file +// +AZAC_API diagnostics_log_start_logging(AZAC_HANDLE hpropbag, void* reserved); +AZAC_API diagnostics_log_apply_properties(AZAC_HANDLE hpropbag, void* reserved); +AZAC_API diagnostics_log_stop_logging(); + +// +// APIs to manage logging events +// +typedef void(*DIAGNOSTICS_CALLBACK_FUNC)(const char *logLine); +AZAC_API diagnostics_logmessage_set_callback(DIAGNOSTICS_CALLBACK_FUNC callback); +AZAC_API diagnostics_logmessage_set_filters(const char* filters); + +// +// APIs to managed eventSource events +// +typedef void(*DIAGNOSTICS_EVENTSOURCE_CALLBACK_FUNC)(const char *logLine, const int level); +AZAC_API diagnostics_eventsource_logmessage_set_callback(DIAGNOSTICS_EVENTSOURCE_CALLBACK_FUNC callback); +AZAC_API diagnostics_eventsource_logmessage_set_filters(const char* filters); + +// +// APIs to manage logging to memory +// +AZAC_API_(void) diagnostics_log_memory_start_logging(); +AZAC_API_(void) diagnostics_log_memory_stop_logging(); +AZAC_API_(void) diagnostics_log_memory_set_filters(const char* filters); + +// The binding layers use these to implement a dump to vector of strings or an output stream +AZAC_API_(size_t) diagnostics_log_memory_get_line_num_oldest(); +AZAC_API_(size_t) diagnostics_log_memory_get_line_num_newest(); +AZAC_API__(const char*) diagnostics_log_memory_get_line(size_t lineNum); + +// Dump to file, std out or std err with optional prefix string +AZAC_API diagnostics_log_memory_dump_to_stderr(); // This calls diagnostics_log_memory_dump(nullptr, nullptr, false, true) +AZAC_API diagnostics_log_memory_dump(const char* filename, const char* linePrefix, bool emitToStdOut, bool emitToStdErr); +AZAC_API diagnostics_log_memory_dump_on_exit(const char* filename, const char* linePrefix, bool emitToStdOut, bool emitToStdErr); + +// +// APIs to manage logging to the console +// +AZAC_API_(void) diagnostics_log_console_start_logging(bool logToStderr); +AZAC_API_(void) diagnostics_log_console_stop_logging(); +AZAC_API_(void) diagnostics_log_console_set_filters(const char* filters); + +// +// APIs to log a string +// +AZAC_API_(void) diagnostics_log_format_message(char* buffer, size_t bufferSize, int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* pszFormat, va_list argptr); +AZAC_API_(void) diagnostics_log_trace_string(int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* psz); +AZAC_API_(void) diagnostics_log_trace_message(int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* pszFormat, ...); +AZAC_API_(void) diagnostics_log_trace_message2(int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* pszFormat, va_list argptr); + +AZAC_API_(void) diagnostics_set_log_level(const char * logger, const char * level); +AZAC_API_(bool) diagnostics_is_log_level_enabled(int level); + +// +// Memory tracking API's +// +AZAC_API_(size_t) diagnostics_get_handle_count(); +AZAC_API__(const char*) diagnostics_get_handle_info(); +AZAC_API diagnostics_free_string(const char* value); diff --git a/third_party/azure_speech_sdk/include/c_api/azac_api_c_error.h b/third_party/azure_speech_sdk/include/c_api/azac_api_c_error.h new file mode 100644 index 0000000..c805c67 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_api_c_error.h @@ -0,0 +1,22 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once + +#ifndef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_ERROR +#define AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON +#include +#undef AZAC_SUPPRESS_ERROR_INCLUDE_FROM_COMMON +#endif + +typedef const char * const_char_ptr; + +AZAC_API_(const_char_ptr) error_get_message(AZAC_HANDLE errorHandle); + +AZAC_API_(const_char_ptr) error_get_call_stack(AZAC_HANDLE errorHandle); + +AZAC_API error_get_error_code(AZAC_HANDLE errorHandle); + +AZAC_API error_release(AZAC_HANDLE errorHandle); diff --git a/third_party/azure_speech_sdk/include/c_api/azac_api_c_pal.h b/third_party/azure_speech_sdk/include/c_api/azac_api_c_pal.h new file mode 100644 index 0000000..6a33988 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_api_c_pal.h @@ -0,0 +1,11 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once + +#include "azac_api_c_common.h" + +AZAC_API_(size_t) pal_wstring_to_string(char * dst, const wchar_t * src, size_t dstSize); +AZAC_API_(size_t) pal_string_to_wstring(wchar_t * dst, const char * src, size_t dstSize); \ No newline at end of file diff --git a/third_party/azure_speech_sdk/include/c_api/azac_debug.h b/third_party/azure_speech_sdk/include/c_api/azac_debug.h new file mode 100644 index 0000000..c7ab02d --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_debug.h @@ -0,0 +1,843 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once +#include +#include + +#ifndef _MSC_VER +// macros in this header generate a bunch of +// "ISO C++11 requires at least one argument for the "..." in a variadic macro" errors. +// system_header pragma is the only mechanism that helps to suppress them. +// https://stackoverflow.com/questions/35587137/how-to-suppress-gcc-variadic-macro-argument-warning-for-zero-arguments-for-a-par +// TODO: try to make macros standard-compliant. +#pragma GCC system_header +#endif + +#ifndef __cplusplus +#define static_assert _Static_assert +#endif + +#define UNUSED(x) (void)(x) + +//------------------------------------------------------- +// Re-enabled ability to compile out all macros... +// However, currently still need to keep all macros until +// final review of all macros is complete. +//------------------------------------------------------- + +#define AZAC_CONFIG_TRACE_INCLUDE_DBG_WITH_ALL 1 + +#ifdef AZAC_CONFIG_TRACE_INCLUDE_DBG_WITH_ALL +#if defined(AZAC_CONFIG_TRACE_ALL) && !defined(AZAC_CONFIG_DBG_TRACE_ALL) && (!defined(DEBUG) || !defined(_DEBUG)) +#define AZAC_CONFIG_DBG_TRACE_ALL 1 +#endif +#endif + +//------------------------------------------------------- +// AZAC_ and AZAC_DBG_ macro configuration +//------------------------------------------------------- + +#ifdef AZAC_CONFIG_DBG_TRACE_ALL +#define AZAC_CONFIG_DBG_TRACE_VERBOSE 1 +#define AZAC_CONFIG_DBG_TRACE_INFO 1 +#define AZAC_CONFIG_DBG_TRACE_WARNING 1 +#define AZAC_CONFIG_DBG_TRACE_ERROR 1 +#define AZAC_CONFIG_DBG_TRACE_FUNCTION 1 +#define AZAC_CONFIG_DBG_TRACE_SCOPE 1 +#define AZAC_CONFIG_DBG_TRACE_ASSERT 1 +#define AZAC_CONFIG_DBG_TRACE_VERIFY 1 +#ifndef AZAC_CONFIG_TRACE_ALL +#define AZAC_CONFIG_TRACE_ALL 1 +#endif +#endif + +#ifdef AZAC_CONFIG_TRACE_ALL +#define AZAC_CONFIG_TRACE_VERBOSE 1 +#define AZAC_CONFIG_TRACE_INFO 1 +#define AZAC_CONFIG_TRACE_WARNING 1 +#define AZAC_CONFIG_TRACE_ERROR 1 +#define AZAC_CONFIG_TRACE_FUNCTION 1 +#define AZAC_CONFIG_TRACE_SCOPE 1 +#define AZAC_CONFIG_TRACE_THROW_ON_FAIL 1 +#define AZAC_CONFIG_TRACE_REPORT_ON_FAIL 1 +#define AZAC_CONFIG_TRACE_RETURN_ON_FAIL 1 +#define AZAC_CONFIG_TRACE_EXITFN_ON_FAIL 1 +#endif + +//----------------------------------------------------------- +// AZAC_TRACE macro common implementations +//----------------------------------------------------------- + +#define __AZAC_TRACE_LEVEL_INFO 0x08 // Trace_Info +#define __AZAC_TRACE_LEVEL_WARNING 0x04 // Trace_Warning +#define __AZAC_TRACE_LEVEL_ERROR 0x02 // Trace_Error +#define __AZAC_TRACE_LEVEL_VERBOSE 0x10 // Trace_Verbose + +#ifndef __AZAC_DO_TRACE_IMPL +#ifdef __cplusplus +#include +#include +#include +#include +inline void __azac_do_trace_message(int level, const char* pszTitle, const char* fileName, const int lineNumber, const char* pszFormat, ...) throw() +{ + UNUSED(level); + + bool logToConsole = false; +#if defined(DEBUG) || defined(_DEBUG) + logToConsole = true; +#endif + + if (!logToConsole) + { + return; + } + + try + { + va_list argptr; + va_start(argptr, pszFormat); + + std::string format; + while (*pszFormat == '\n' || *pszFormat == '\r') + { + if (*pszFormat == '\r') + { + pszTitle = nullptr; + } + + format += *pszFormat++; + } + + if (pszTitle != nullptr) + { + format += pszTitle; + } + + std::string fileNameOnly(fileName); + std::replace(fileNameOnly.begin(), fileNameOnly.end(), '\\', '/'); + + std::string fileNameLineNumber = " " + fileNameOnly.substr(fileNameOnly.find_last_of('/', std::string::npos) + 1) + ":" + std::to_string(lineNumber) + " "; + + format += fileNameLineNumber; + + format += pszFormat; + + if (format.length() < 1 || format[format.length() - 1] != '\n') + { + format += "\n"; + } + + vfprintf(stderr, format.c_str(), argptr); + + va_end(argptr); + } + catch(...) + { + } +} +#define __AZAC_DO_TRACE_IMPL __azac_do_trace_message +#else // __cplusplus +#define __AZAC_DO_TRACE_IMPL +#endif // __cplusplus +#endif + +#define __AZAC_DOTRACE(level, title, fileName, lineNumber, ...) \ + do { \ + __AZAC_DO_TRACE_IMPL(level, title, fileName, lineNumber, ##__VA_ARGS__); \ + } while (0) + +#define __AZAC_TRACE_INFO(title, fileName, lineNumber, msg, ...) __AZAC_DOTRACE(__AZAC_TRACE_LEVEL_INFO, title, fileName, lineNumber, msg, ##__VA_ARGS__) +#define __AZAC_TRACE_INFO_IF(cond, title, fileName, lineNumber, msg, ...) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + __AZAC_TRACE_INFO(title, fileName, lineNumber, msg, ##__VA_ARGS__); \ + } } while (0) + +#define __AZAC_TRACE_WARNING(title, fileName, lineNumber, msg, ...) __AZAC_DOTRACE(__AZAC_TRACE_LEVEL_WARNING, title, fileName, lineNumber, msg, ##__VA_ARGS__) +#define __AZAC_TRACE_WARNING_IF(cond, title, fileName, lineNumber, msg, ...) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + __AZAC_TRACE_WARNING(title, fileName, lineNumber, msg, ##__VA_ARGS__); \ + } } while (0) + +#define __AZAC_TRACE_ERROR(title, fileName, lineNumber, msg, ...) __AZAC_DOTRACE(__AZAC_TRACE_LEVEL_ERROR, title, fileName, lineNumber, msg, ##__VA_ARGS__) +#define __AZAC_TRACE_ERROR_IF(cond, title, fileName, lineNumber, msg, ...) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + __AZAC_TRACE_ERROR(title, fileName, lineNumber, msg, ##__VA_ARGS__); \ + } } while (0) + +#define __AZAC_TRACE_VERBOSE(title, fileName, lineNumber, msg, ...) __AZAC_DOTRACE(__AZAC_TRACE_LEVEL_VERBOSE, title, fileName, lineNumber, msg, ##__VA_ARGS__) +#define __AZAC_TRACE_VERBOSE_IF(cond, title, fileName, lineNumber, msg, ...) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + __AZAC_TRACE_VERBOSE(title, fileName, lineNumber, msg, ##__VA_ARGS__); \ + } } while (0) + +#define ___AZAC_EXPR_AS_STRING(_String) "" #_String +#define __AZAC_EXPR_AS_STRING(_String) ___AZAC_EXPR_AS_STRING(_String) + +#define __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x) __AZAC_TRACE_ERROR(title, fileName, lineNumber, __AZAC_EXPR_AS_STRING(hr) " = 0x%0" PRIxPTR, x) + +#define __AZAC_REPORT_ON_FAIL(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } } while (0) +#define __AZAC_REPORT_ON_FAIL_IFNOT(title, fileName, lineNumber, hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } } } while (0) + +#define __AZAC_T_RETURN_HR(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } \ + return x; \ + } while (0) +#define __AZAC_T_RETURN_HR_IF(title, fileName, lineNumber, hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } \ + return x; \ + } } while (0) +#define __AZAC_T_RETURN_ON_FAIL(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + return x; \ + } } while (0) +#define __AZAC_T_RETURN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + return x; \ + } } } while (0) +#define __AZAC_RETURN_HR(hr) return hr +#define __AZAC_RETURN_HR_IF(hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + return hr; \ + } } while (0) +#define __AZAC_RETURN_ON_FAIL(hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + return x; \ + } } while (0) +#define __AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + return x; \ + } } } while (0) + +#define __AZAC_T_EXITFN_HR(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } \ + goto AZAC_EXITFN_CLEANUP; \ + } while (0) +#define __AZAC_T_EXITFN_HR_IF(title, fileName, lineNumber, hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + } \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) +#define __AZAC_T_EXITFN_ON_FAIL(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) +#define __AZAC_T_EXITFN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + goto AZAC_EXITFN_CLEANUP; \ + } } } while (0) + +#define __AZAC_EXITFN_HR(hr) \ + do { \ + AZACHR x = hr; \ + goto AZAC_EXITFN_CLEANUP; \ + } while (0) +#define __AZAC_EXITFN_HR_IF(hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + AZACHR x = hr; \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) +#define __AZAC_EXITFN_ON_FAIL(hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) +#define __AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + goto AZAC_EXITFN_CLEANUP; \ + } } } while (0) + +#define __AZAC_TRACE_ASSERT(title, fileName, lineNumber, expr) __AZAC_TRACE_ERROR(title, fileName, lineNumber, __AZAC_EXPR_AS_STRING(expr) " = false") +#define __AZAC_TRACE_ASSERT_MSG(title, fileName, lineNumber, expr, ...) __AZAC_TRACE_ERROR(title, fileName, lineNumber, __AZAC_EXPR_AS_STRING(expr) " = false; " __VA_ARGS__) + +#define __AZAC_DBG_ASSERT(title, fileName, lineNumber, expr) \ + do { \ + int fCond = !!(expr); \ + if (!fCond) { \ + __AZAC_TRACE_ASSERT(title, fileName, lineNumber, expr); \ + abort(); \ + } } while (0) +#define __AZAC_DBG_ASSERT_WITH_MESSAGE(title, fileName, lineNumber, expr, ...) \ + do { \ + int fCond = !!(expr); \ + if (!fCond) { \ + __AZAC_TRACE_ASSERT_MSG(title, fileName, lineNumber, expr, ##__VA_ARGS__); \ + abort(); \ + } } while (0) + +#define __AZAC_DBG_VERIFY(title, fileName, lineNumber, expr) \ + do { \ + int fCond = !!(expr); \ + if (!fCond) { \ + __AZAC_TRACE_ASSERT(title, fileName, lineNumber, expr); \ + abort(); \ + } } while (0) +#define __AZAC_DBG_VERIFY_WITH_MESSAGE(title, fileName, lineNumber, expr, ...) \ + do { \ + int fCond = !!(expr); \ + if (!fCond) { \ + __AZAC_TRACE_ASSERT_MSG(title, fileName, lineNumber, expr, ##__VA_ARGS__); \ + abort(); \ + } } while (0) + +#ifdef __cplusplus + +#include +#define __AZAC_TRACE_SCOPE(t1, fileName, lineNumber, t2, x, y) \ + __AZAC_TRACE_INFO(t1, fileName, lineNumber, "%s", x); \ + auto evaluateYInScopeInMacros##lineNumber = y; \ + auto leavingScopePrinterInMacros##lineNumber = [&evaluateYInScopeInMacros##lineNumber](int*) -> void { \ + __AZAC_TRACE_INFO(t2, fileName, lineNumber, "%s", evaluateYInScopeInMacros##lineNumber); \ + }; \ + std::unique_ptr onExit##lineNumber((int*)1, leavingScopePrinterInMacros##lineNumber) + +#ifndef __AZAC_THROW_HR_IMPL +#define __AZAC_THROW_HR_IMPL(hr) __azac_rethrow(hr) +#endif +#ifndef __AZAC_THROW_HR +#define __AZAC_THROW_HR(hr) __AZAC_THROW_HR_IMPL(hr) +#endif + +#ifndef __AZAC_LOG_HR_IMPL +#define __AZAC_LOG_HR_IMPL(hr) __azac_log_only(hr) +#endif +#ifndef __AZAC_LOG_HR +#define __AZAC_LOG_HR(hr) __AZAC_LOG_HR_IMPL(hr) +#endif + +#define __AZAC_T_LOG_ON_FAIL(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + __AZAC_LOG_HR(x); \ + } } while (0) +#define __AZAC_T_THROW_ON_FAIL(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + __AZAC_THROW_HR(x); \ + } } while (0) +#define __AZAC_T_THROW_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + __AZAC_THROW_HR(x); \ + } } } while (0) +#define __AZAC_T_THROW_HR_IF(title, fileName, lineNumber, hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + AZACHR x = hr; \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + __AZAC_THROW_HR(x); \ + } } while (0) +#define __AZAC_T_THROW_HR(title, fileName, lineNumber, hr) \ + do { \ + AZACHR x = hr; \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x); \ + __AZAC_THROW_HR(x); \ + } while (0) + + +#define __AZAC_LOG_ON_FAIL(hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_LOG_HR(x); \ + } } while (0) +#define __AZAC_THROW_ON_FAIL(hr) \ + do { \ + AZACHR x = hr; \ + if (AZAC_FAILED(x)) { \ + __AZAC_THROW_HR(x); \ + } } while (0) +#define __AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) \ + do { \ + AZACHR x = hr; \ + if (x != hrNot) { \ + if (AZAC_FAILED(x)) { \ + __AZAC_THROW_HR(x); \ + } } } while (0) +#define __AZAC_THROW_HR_IF(hr, cond) \ + do { \ + int fCond = !!(cond); \ + if (fCond) { \ + AZACHR x = hr; \ + __AZAC_THROW_HR(x); \ + } } while (0) + +#endif // __cplusplus + + + +//------------------------------------------------------- +// AZAC_ macro definitions +//------------------------------------------------------- + +#ifdef AZAC_CONFIG_TRACE_VERBOSE +#define AZAC_TRACE_VERBOSE(msg, ...) __AZAC_TRACE_VERBOSE("AZAC_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_TRACE_VERBOSE_IF(cond, msg, ...) __AZAC_TRACE_VERBOSE_IF(cond, "AZAC_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_TRACE_VERBOSE(...) +#define AZAC_TRACE_VERBOSE_IF(...) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_VERBOSE +#define AZAC_DBG_TRACE_VERBOSE(msg, ...) __AZAC_TRACE_VERBOSE("AZAC_DBG_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_DBG_TRACE_VERBOSE_IF(cond, msg, ...) __AZAC_TRACE_VERBOSE_IF(cond, "AZAC_DBG_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_DBG_TRACE_VERBOSE(...) +#define AZAC_DBG_TRACE_VERBOSE_IF(...) +#endif + +#ifdef AZAC_CONFIG_TRACE_INFO +#define AZAC_TRACE_INFO(msg, ...) __AZAC_TRACE_INFO("AZAC_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_TRACE_INFO_IF(cond, msg, ...) __AZAC_TRACE_INFO_IF(cond, "AZAC_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_TRACE_INFO(...) +#define AZAC_TRACE_INFO_IF(...) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_INFO +#define AZAC_DBG_TRACE_INFO(msg, ...) __AZAC_TRACE_INFO("AZAC_DBG_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_DBG_TRACE_INFO_IF(cond, msg, ...) __AZAC_TRACE_INFO_IF(cond, "AZAC_DBG_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_DBG_TRACE_INFO(...) +#define AZAC_DBG_TRACE_INFO_IF(...) +#endif + +#ifdef AZAC_CONFIG_TRACE_WARNING +#define AZAC_TRACE_WARNING(msg, ...) __AZAC_TRACE_WARNING("AZAC_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_TRACE_WARNING_IF(cond, msg, ...) __AZAC_TRACE_WARNING_IF(cond, "AZAC_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_TRACE_WARNING(...) +#define AZAC_TRACE_WARNING_IF(...) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_WARNING +#define AZAC_DBG_TRACE_WARNING(msg, ...) __AZAC_TRACE_WARNING("AZAC_DBG_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_DBG_TRACE_WARNING_IF(cond, msg, ...) __AZAC_TRACE_WARNING_IF(cond, "AZAC_DBG_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_DBG_TRACE_WARNING(...) +#define AZAC_DBG_TRACE_WARNING_IF(...) +#endif + +#ifdef AZAC_CONFIG_TRACE_ERROR +#define AZAC_TRACE_ERROR(msg, ...) __AZAC_TRACE_ERROR("AZAC_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_TRACE_ERROR_IF(cond, msg, ...) __AZAC_TRACE_ERROR_IF(cond, "AZAC_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_TRACE_ERROR(...) +#define AZAC_TRACE_ERROR_IF(...) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_ERROR +#define AZAC_DBG_TRACE_ERROR(msg, ...) __AZAC_TRACE_ERROR("AZAC_DBG_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define AZAC_DBG_TRACE_ERROR_IF(cond, msg, ...) __AZAC_TRACE_ERROR_IF(cond, "AZAC_DBG_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define AZAC_DBG_TRACE_ERROR(...) +#define AZAC_DBG_TRACE_ERROR_IF(...) +#endif + +#ifdef AZAC_CONFIG_TRACE_FUNCTION +#define AZAC_TRACE_FUNCTION(...) __AZAC_TRACE_VERBOSE("AZAC_TRACE_FUNCTION: ", __FILE__, __LINE__, __FUNCTION__) +#else +#define AZAC_TRACE_FUNCTION(...) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_FUNCTION +#define AZAC_DBG_TRACE_FUNCTION(...) __AZAC_TRACE_VERBOSE("AZAC_DBG_TRACE_FUNCTION: ", __FILE__, __LINE__, __FUNCTION__) +#else +#define AZAC_DBG_TRACE_FUNCTION(...) +#endif + +#ifdef AZAC_CONFIG_TRACE_REPORT_ON_FAIL +#define AZAC_REPORT_ON_FAIL(hr) __AZAC_REPORT_ON_FAIL("AZAC_REPORT_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_REPORT_ON_FAIL_IFNOT(hr, hrNot) __AZAC_REPORT_ON_FAIL_IFNOT("AZAC_REPORT_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define AZAC_REPORT_ON_FAIL(hr) UNUSED(hr) +#define AZAC_REPORT_ON_FAIL_IFNOT(hr, hrNot) UNUSED(hr); UNUSED(hrNot) +#endif + +#ifdef AZAC_CONFIG_TRACE_RETURN_ON_FAIL +#define AZAC_RETURN_HR(hr) __AZAC_T_RETURN_HR("AZAC_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_RETURN_HR_IF(hr, cond) __AZAC_T_RETURN_HR_IF("AZAC_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr, cond) +#define AZAC_RETURN_ON_FAIL(hr) __AZAC_T_RETURN_ON_FAIL("AZAC_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_T_RETURN_ON_FAIL_IF_NOT("AZAC_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define AZAC_RETURN_HR(hr) __AZAC_RETURN_HR(hr) +#define AZAC_RETURN_HR_IF(hr, cond) __AZAC_RETURN_HR_IF(hr, cond) +#define AZAC_RETURN_ON_FAIL(hr) __AZAC_RETURN_ON_FAIL(hr) +#define AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) +#endif + +#define AZAC_IFTRUE_RETURN_HR(cond, hr) AZAC_RETURN_HR_IF(hr, cond) +#define AZAC_IFFALSE_RETURN_HR(cond, hr) AZAC_RETURN_HR_IF(hr, !(cond)) +#define AZAC_IFFAILED_RETURN_HR(hr) AZAC_RETURN_ON_FAIL(hr) +#define AZAC_IFFAILED_RETURN_HR_IFNOT(hr, hrNot) AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) + +#ifdef AZAC_CONFIG_TRACE_EXITFN_ON_FAIL +#define AZAC_EXITFN_HR(hr) __AZAC_T_EXITFN_HR("AZAC_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_EXITFN_HR_IF(hr, cond) __AZAC_T_EXITFN_HR_IF("AZAC_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr, cond) +#define AZAC_EXITFN_ON_FAIL(hr) __AZAC_T_EXITFN_ON_FAIL("AZAC_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_EXITFN_ON_FAIL_IF_NOT("AZAC_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define AZAC_EXITFN_HR(hr) __AZAC_EXITFN_HR(hr) +#define AZAC_EXITFN_HR_IF(hr, cond) __AZAC_EXITFN_HR_IF(hr, cond) +#define AZAC_EXITFN_ON_FAIL(hr) __AZAC_EXITFN_ON_FAIL(hr) +#define AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) +#endif + +#define AZAC_IFTRUE_EXITFN_WHR(cond, hr) AZAC_EXITFN_HR_IF(hr, cond) +#define AZAC_IFFALSE_EXITFN_WHR(cond, hr) AZAC_EXITFN_HR_IF(hr, !(cond)) +#define AZAC_IFFAILED_EXITFN_WHR(hr) AZAC_EXITFN_ON_FAIL(hr) +#define AZAC_IFFAILED_EXITFN_WHR_IFNOT(hr, hrNot) AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) + +#define AZAC_IFTRUE_EXITFN_CLEANUP(cond, expr) \ + do { \ + int fCondT = !!(cond); \ + if (fCondT) { \ + expr; \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) + +#define AZAC_IFFALSE_EXITFN_CLEANUP(cond, expr) \ + do { \ + int fCondF = !!(cond); \ + if (!fCondF) { \ + expr; \ + goto AZAC_EXITFN_CLEANUP; \ + } } while (0) + +#if defined(AZAC_CONFIG_DBG_TRACE_ASSERT) && (defined(DEBUG) || defined(_DEBUG)) +#define AZAC_DBG_ASSERT(expr) __AZAC_DBG_ASSERT("AZAC_ASSERT: ", __FILE__, __LINE__, expr) +#define AZAC_DBG_ASSERT_WITH_MESSAGE(expr, ...) __AZAC_DBG_ASSERT_WITH_MESSAGE("AZAC_ASSERT: ", __FILE__, __LINE__, expr, ##__VA_ARGS__) +#else +#define AZAC_DBG_ASSERT(expr) +#define AZAC_DBG_ASSERT_WITH_MESSAGE(expr, ...) +#endif + +#if defined(AZAC_CONFIG_DBG_TRACE_VERIFY) && (defined(DEBUG) || defined(_DEBUG)) +#define AZAC_DBG_VERIFY(expr) __AZAC_DBG_VERIFY("AZAC_VERIFY: ", __FILE__, __LINE__, expr) +#define AZAC_DBG_VERIFY_WITH_MESSAGE(expr, ...) __AZAC_DBG_VERIFY_WITH_MESSAGE("AZAC_VERIFY: ", __FILE__, __LINE__, expr, ##__VA_ARGS__) +#else +#define AZAC_DBG_VERIFY(expr) (expr) +#define AZAC_DBG_VERIFY_WITH_MESSAGE(expr, ...) (expr) +#endif + +#define AZAC_IFTRUE(cond, expr) \ + do { \ + int fCondT = !!(cond); \ + if (fCondT) { \ + expr; \ + } } while (0) + +#define AZAC_IFFALSE(cond, expr) \ + do { \ + int fCondF = !!(cond); \ + if (!fCondF) { \ + expr; \ + } } while (0) + +// handle circular dependency +#ifndef AZAC_SUPPRESS_COMMON_INCLUDE_FROM_DEBUG +#define AZAC_SUPPRESS_DEBUG_INCLUDE_FROM_COMMON +#include +#undef AZAC_SUPPRESS_DEBUG_INCLUDE_FROM_COMMON +#endif + +#ifdef __cplusplus + +#ifdef AZAC_CONFIG_TRACE_SCOPE +#define AZAC_TRACE_SCOPE(x, y) __AZAC_TRACE_SCOPE("AZAC_TRACE_SCOPE_ENTER: ", __FILE__, __LINE__, "AZAC_TRACE_SCOPE_EXIT: ", x, y) +#else +#define AZAC_TRACE_SCOPE(x, y) +#endif + +#ifdef AZAC_CONFIG_DBG_TRACE_SCOPE +#define AZAC_DBG_TRACE_SCOPE(x, y) __AZAC_TRACE_SCOPE("AZAC_DBG_TRACE_SCOPE_ENTER: ", __FILE__, __LINE__, "AZAC_DBG_TRACE_SCOPE_EXIT: ", x, y) +#else +#define AZAC_DBG_TRACE_SCOPE(x, y) +#endif + +#ifdef AZAC_CONFIG_TRACE_THROW_ON_FAIL +#define AZAC_THROW_ON_FAIL(hr) __AZAC_T_THROW_ON_FAIL("AZAC_THROW_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_T_THROW_ON_FAIL_IF_NOT("AZAC_THROW_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#define AZAC_LOG_ON_FAIL(hr) __AZAC_T_LOG_ON_FAIL("AZAC_LOG_ON_FAIL: ", __FILE__, __LINE__, hr) +#define AZAC_THROW_HR_IF(hr, cond) __AZAC_T_THROW_HR_IF("AZAC_THROW_HR_IF: ", __FILE__, __LINE__, hr, cond) +#define AZAC_THROW_HR(hr) __AZAC_T_THROW_HR("AZAC_THROW_HR: ", __FILE__, __LINE__, hr) +#else +#define AZAC_THROW_ON_FAIL(hr) __AZAC_THROW_ON_FAIL(hr) +#define AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) __AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) +#define AZAC_LOG_ON_FAIL(hr) __AZAC_LOG_ON_FAIL(hr) +#define AZAC_THROW_HR_IF(hr, cond) __AZAC_THROW_HR_IF(hr, cond) +#define AZAC_THROW_HR(hr) __AZAC_THROW_HR(hr) +#endif + +#define AZAC_IFTRUE_THROW_HR(cond, hr) AZAC_THROW_HR_IF(hr, cond) +#define AZAC_IFFALSE_THROW_HR(cond, hr) AZAC_THROW_HR_IF(hr, !(cond)) +#define AZAC_IFFAILED_THROW_HR(hr) AZAC_THROW_ON_FAIL(hr) +#define AZAC_IFFAILED_THROW_HR_IFNOT(hr, hrNot) AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) + +#include +#include +#include +#include + +inline void __azac_handle_native_ex(AZACHR hr, bool throwException) +{ + AZAC_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + auto handle = reinterpret_cast(hr); + auto error = error_get_error_code(handle); + if (error == AZAC_ERR_NONE) + { + if (throwException) + { + throw hr; + } + else + { + // do nothing. This is already logged by the macros that call this function + return; + } + } + + std::string errorMsg; + try + { + auto callstack = error_get_call_stack(handle); + auto what = error_get_message(handle); + + if (what) + { + errorMsg += what; + } + else + { + errorMsg += "Exception with error code: "; + errorMsg += std::to_string(error); + } + + if (callstack) + { + errorMsg += callstack; + } + } + catch (...) + { + error_release(handle); + throw hr; + } + + error_release(handle); + if (throwException) + { + throw std::runtime_error(errorMsg); + } + else + { + AZAC_TRACE_ERROR("Error details: %s", errorMsg.c_str()); + } +} + +inline void __azac_log_only(AZACHR hr) +{ + __azac_handle_native_ex(hr, false); +} + +inline void __azac_rethrow(AZACHR hr) +{ + __azac_handle_native_ex(hr, true); +} + +#else // __cplusplus + +#define AZAC_TRACE_SCOPE(x, y) static_assert(false) +#define AZAC_DBG_TRACE_SCOPE(x, y) static_assert(false) +#define AZAC_LOG_ON_FAIL(hr) static_assert(false) +#define AZAC_THROW_ON_FAIL(hr) static_assert(false) +#define AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) static_assert(false) +#define AZAC_THROW_HR_IF(hr, cond) static_assert(false) +#define AZAC_THROW_HR(hr) static_assert(false) +#define AZAC_IFTRUE_THROW_HR(cond, hr) static_assert(false) +#define AZAC_IFFALSE_THROW_HR(cond, hr) static_assert(false) +#define AZAC_IFFAILED_THROW_HR(hr) static_assert(false) +#define AZAC_IFFAILED_THROW_HR_IFNOT(hr, hrNot) static_assert(false) + +#endif // __cplusplus + +//--------------------------------------------------------------------------- + +#ifdef __AZAC_DEBUG_H_EXAMPLES_IN_MAIN + +void main() +{ + int x = 4; + printf("%s = %d\n", __AZAC_EXPR_AS_STRING(x + 3), x + 3); + + AZAC_TRACE_INFO("hello there"); + AZAC_TRACE_ERROR("hello there"); + AZAC_TRACE_WARNING("hello there"); + AZAC_TRACE_VERBOSE("hello there"); + + AZAC_TRACE_INFO("hello there %d", 5); + AZAC_TRACE_ERROR("hello there %d", 5); + AZAC_TRACE_WARNING("hello there %d", 5); + AZAC_TRACE_VERBOSE("hello there %d", 5); + + AZAC_TRACE_INFO_IF(false, "hello there false"); + AZAC_TRACE_ERROR_IF(false, "hello there false"); + AZAC_TRACE_WARNING_IF(false, "hello there false"); + AZAC_TRACE_VERBOSE_IF(false, "hello there false"); + + AZAC_TRACE_INFO_IF(false, "hello there false %d", 5); + AZAC_TRACE_ERROR_IF(false, "hello there false %d", 5); + AZAC_TRACE_WARNING_IF(false, "hello there false %d", 5); + AZAC_TRACE_VERBOSE_IF(false, "hello there false %d", 5); + + AZAC_TRACE_INFO_IF(true, "hello there true"); + AZAC_TRACE_ERROR_IF(true, "hello there true"); + AZAC_TRACE_WARNING_IF(true, "hello there true"); + AZAC_TRACE_VERBOSE_IF(true, "hello there true"); + + AZAC_TRACE_INFO_IF(true, "hello there true %d", 5); + AZAC_TRACE_ERROR_IF(true, "hello there true %d", 5); + AZAC_TRACE_WARNING_IF(true, "hello there true %d", 5); + AZAC_TRACE_VERBOSE_IF(true, "hello there true %d", 5); + + AZAC_DBG_TRACE_INFO("hello there"); + AZAC_DBG_TRACE_ERROR("hello there"); + AZAC_DBG_TRACE_WARNING("hello there"); + AZAC_DBG_TRACE_VERBOSE("hello there"); + + AZAC_DBG_TRACE_INFO("hello there %d", 5); + AZAC_DBG_TRACE_ERROR("hello there %d", 5); + AZAC_DBG_TRACE_WARNING("hello there %d", 5); + AZAC_DBG_TRACE_VERBOSE("hello there %d", 5); + + AZAC_DBG_TRACE_INFO_IF(false, "hello there false"); + AZAC_DBG_TRACE_ERROR_IF(false, "hello there false"); + AZAC_DBG_TRACE_WARNING_IF(false, "hello there false"); + AZAC_DBG_TRACE_VERBOSE_IF(false, "hello there false"); + + AZAC_DBG_TRACE_INFO_IF(false, "hello there false %d", 5); + AZAC_DBG_TRACE_ERROR_IF(false, "hello there false %d", 5); + AZAC_DBG_TRACE_WARNING_IF(false, "hello there false %d", 5); + AZAC_DBG_TRACE_VERBOSE_IF(false, "hello there false %d", 5); + + AZAC_DBG_TRACE_INFO_IF(true, "hello there true"); + AZAC_DBG_TRACE_ERROR_IF(true, "hello there true"); + AZAC_DBG_TRACE_WARNING_IF(true, "hello there true"); + AZAC_DBG_TRACE_VERBOSE_IF(true, "hello there true"); + + AZAC_DBG_TRACE_INFO_IF(true, "hello there true %d", 5); + AZAC_DBG_TRACE_ERROR_IF(true, "hello there true %d", 5); + AZAC_DBG_TRACE_WARNING_IF(true, "hello there true %d", 5); + AZAC_DBG_TRACE_VERBOSE_IF(true, "hello there true %d", 5); + + AZAC_TRACE_SCOPE("A", "B"); + + AZAC_TRACE_FUNCTION(); + AZAC_DBG_TRACE_FUNCTION(); + + AZAC_DBG_ASSERT(false); + AZAC_DBG_ASSERT(true); + + AZAC_DBG_ASSERT_WITH_MESSAGE(false, "HEY!"); + AZAC_DBG_ASSERT_WITH_MESSAGE(true, "HEY!!"); + + AZAC_DBG_VERIFY(false); + AZAC_DBG_VERIFY(true); + + AZAC_DBG_VERIFY_WITH_MESSAGE(false, "HEY!"); + AZAC_DBG_VERIFY_WITH_MESSAGE(true, "HEY!!"); + + AZACHR hr1 { 0x80001111 }; + AZACHR hr2 { 0x00001111 }; + + AZAC_TRACE_VERBOSE("Testing out AZAC_REPORT_ON_FAIL, should see two failures..."); + AZAC_REPORT_ON_FAIL(hr1); + AZAC_REPORT_ON_FAIL_IFNOT(hr1, 0x80001000); + AZAC_TRACE_VERBOSE("Testing out AZAC_REPORT_ON_FAIL, should see two failures... Done!"); + + AZAC_TRACE_VERBOSE("Testing out AZAC_REPORT_ON_FAIL, should see zero failures..."); + AZAC_REPORT_ON_FAIL(hr2); + AZAC_REPORT_ON_FAIL_IFNOT(hr1, 0x80001111); + AZAC_REPORT_ON_FAIL_IFNOT(hr2, 0x80001111); + AZAC_REPORT_ON_FAIL_IFNOT(hr2, 0x80001000); + AZAC_TRACE_VERBOSE("Testing out AZAC_REPORT_ON_FAIL, should see zero failures... Done!"); +} + +#endif diff --git a/third_party/azure_speech_sdk/include/c_api/azac_error.h b/third_party/azure_speech_sdk/include/c_api/azac_error.h new file mode 100644 index 0000000..4e8ac19 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/azac_error.h @@ -0,0 +1,458 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. + +#pragma once + +#include + +///

+/// Type definition for Azure AI Core result codes. +/// +typedef uintptr_t AZACHR; + +/// +/// Default result code indicating no error. +/// +#define AZAC_ERR_NONE 0 + +/// +/// Declare and initialize result code variable. +/// +#define AZAC_INIT_HR(hr) AZACHR hr = AZAC_ERR_NONE; \ + (void)(hr) + +/// +/// Check if result code indicates success. +/// +#define AZAC_SUCCEEDED(x) ((x) == AZAC_ERR_NONE) + +/// +/// Check if result code indicates error. +/// +#define AZAC_FAILED(x) (!AZAC_SUCCEEDED(x)) + +/// +/// Base macros for all error codes. +/// +#define __AZAC_ERRCODE_FAILED(x) (x) + +/// +/// The function is not implemented. +/// +#define AZAC_ERR_NOT_IMPL __AZAC_ERRCODE_FAILED(0xfff) + +/// +/// The object has not been properly initialized. +/// +#define AZAC_ERR_UNINITIALIZED __AZAC_ERRCODE_FAILED(0x001) + +/// +/// The object has already been initialized. +/// +#define AZAC_ERR_ALREADY_INITIALIZED __AZAC_ERRCODE_FAILED(0x002) + +/// +/// An unhandled exception was detected. +/// +#define AZAC_ERR_UNHANDLED_EXCEPTION __AZAC_ERRCODE_FAILED(0x003) + +/// +/// The object or property was not found. +/// +#define AZAC_ERR_NOT_FOUND __AZAC_ERRCODE_FAILED(0x004) + +/// +/// One or more arguments are not valid. +/// +#define AZAC_ERR_INVALID_ARG __AZAC_ERRCODE_FAILED(0x005) + +/// +/// The specified timeout value has elapsed. +/// +#define AZAC_ERR_TIMEOUT __AZAC_ERRCODE_FAILED(0x006) + +/// +/// The asynchronous operation is already in progress. +/// +#define AZAC_ERR_ALREADY_IN_PROGRESS __AZAC_ERRCODE_FAILED(0x007) + +/// +/// The attempt to open the file failed. +/// +#define AZAC_ERR_FILE_OPEN_FAILED __AZAC_ERRCODE_FAILED(0x008) + +/// +/// The end of the file was reached unexpectedly. +/// +#define AZAC_ERR_UNEXPECTED_EOF __AZAC_ERRCODE_FAILED(0x009) + +/// +/// Invalid audio header encountered. +/// +#define AZAC_ERR_INVALID_HEADER __AZAC_ERRCODE_FAILED(0x00a) + +/// +/// The requested operation cannot be performed while audio is pumping +/// +#define AZAC_ERR_AUDIO_IS_PUMPING __AZAC_ERRCODE_FAILED(0x00b) + +/// +/// Unsupported audio format. +/// +#define AZAC_ERR_UNSUPPORTED_FORMAT __AZAC_ERRCODE_FAILED(0x00c) + +/// +/// Operation aborted. +/// +#define AZAC_ERR_ABORT __AZAC_ERRCODE_FAILED(0x00d) + +/// +/// Microphone is not available. +/// +#define AZAC_ERR_MIC_NOT_AVAILABLE __AZAC_ERRCODE_FAILED(0x00e) + +/// +/// An invalid state was encountered. +/// +#define AZAC_ERR_INVALID_STATE __AZAC_ERRCODE_FAILED(0x00f) + +/// +/// Attempting to create a UUID failed. +/// +#define AZAC_ERR_UUID_CREATE_FAILED __AZAC_ERRCODE_FAILED(0x010) + +/// +/// An unexpected session state transition was encountered when setting the session audio format. +/// +/// +/// Valid transitions are: +/// * WaitForPumpSetFormatStart --> ProcessingAudio (at the beginning of stream) +/// * StoppingPump --> WaitForAdapterCompletedSetFormatStop (at the end of stream) +/// * ProcessingAudio --> WaitForAdapterCompletedSetFormatStop (when the stream runs out of data) +/// All other state transitions are invalid. +/// +#define AZAC_ERR_SETFORMAT_UNEXPECTED_STATE_TRANSITION __AZAC_ERRCODE_FAILED(0x011) + +/// +/// An unexpected session state was encountered in while processing audio. +/// +/// +/// Valid states to encounter are: +/// * ProcessingAudio: We're allowed to process audio while in this state. +/// * StoppingPump: We're allowed to be called to process audio, but we'll ignore the data passed in while we're attempting to stop the pump. +/// All other states are invalid while processing audio. +/// +#define AZAC_ERR_PROCESS_AUDIO_INVALID_STATE __AZAC_ERRCODE_FAILED(0x012) + +/// +/// An unexpected state transition was encountered while attempting to start recognizing. +/// +/// +/// A valid transition is: +/// * Idle --> WaitForPumpSetFormatStart +/// All other state transitions are invalid when attempting to start recognizing +/// +#define AZAC_ERR_START_RECOGNIZING_INVALID_STATE_TRANSITION __AZAC_ERRCODE_FAILED(0x013) + +/// +/// An unexpected error was encountered when trying to create an internal object. +/// +#define AZAC_ERR_UNEXPECTED_CREATE_OBJECT_FAILURE __AZAC_ERRCODE_FAILED(0x014) + +/// +/// An error in the audio-capturing system. +/// +#define AZAC_ERR_MIC_ERROR __AZAC_ERRCODE_FAILED(0x015) + +/// +/// The requested operation cannot be performed; there is no audio input. +/// +#define AZAC_ERR_NO_AUDIO_INPUT __AZAC_ERRCODE_FAILED(0x016) + +/// +/// An unexpected error was encountered when trying to access the USP site. +/// +#define AZAC_ERR_UNEXPECTED_USP_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x017) + +/// +/// An unexpected error was encountered when trying to access the LU site. +/// +#define AZAC_ERR_UNEXPECTED_LU_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x018) + +/// +/// The buffer is too small. +/// +#define AZAC_ERR_BUFFER_TOO_SMALL __AZAC_ERRCODE_FAILED(0x019) + +/// +/// A method failed to allocate memory. +/// +#define AZAC_ERR_OUT_OF_MEMORY __AZAC_ERRCODE_FAILED(0x01A) + +/// +/// An unexpected runtime error occurred. +/// +#define AZAC_ERR_RUNTIME_ERROR __AZAC_ERRCODE_FAILED(0x01B) + +/// +/// The url specified is invalid. +/// +#define AZAC_ERR_INVALID_URL __AZAC_ERRCODE_FAILED(0x01C) + +/// +/// The region specified is invalid or missing. +/// +#define AZAC_ERR_INVALID_REGION __AZAC_ERRCODE_FAILED(0x01D) + +/// +/// Switch between single shot and continuous recognition is not supported. +/// +#define AZAC_ERR_SWITCH_MODE_NOT_ALLOWED __AZAC_ERRCODE_FAILED(0x01E) + +/// +/// Changing connection status is not supported in the current recognition state. +/// +#define AZAC_ERR_CHANGE_CONNECTION_STATUS_NOT_ALLOWED __AZAC_ERRCODE_FAILED(0x01F) + +/// +/// Explicit connection management is not supported by the specified recognizer. +/// +#define AZAC_ERR_EXPLICIT_CONNECTION_NOT_SUPPORTED_BY_RECOGNIZER __AZAC_ERRCODE_FAILED(0x020) + +/// +/// The handle is invalid. +/// +#define AZAC_ERR_INVALID_HANDLE __AZAC_ERRCODE_FAILED(0x021) + +/// +/// The recognizer is invalid. +/// +#define AZAC_ERR_INVALID_RECOGNIZER __AZAC_ERRCODE_FAILED(0x022) + +/// +/// The value is out of range. +/// Added in version 1.3.0. +/// +#define AZAC_ERR_OUT_OF_RANGE __AZAC_ERRCODE_FAILED(0x023) + +/// +/// Extension library not found. +/// Added in version 1.3.0. +/// +#define AZAC_ERR_EXTENSION_LIBRARY_NOT_FOUND __AZAC_ERRCODE_FAILED(0x024) + +/// +/// An unexpected error was encountered when trying to access the TTS engine site. +/// Added in version 1.4.0. +/// +#define AZAC_ERR_UNEXPECTED_TTS_ENGINE_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x025) + +/// +/// An unexpected error was encountered when trying to access the audio output stream. +/// Added in version 1.4.0. +/// +#define AZAC_ERR_UNEXPECTED_AUDIO_OUTPUT_FAILURE __AZAC_ERRCODE_FAILED(0x026) + +/// +/// Gstreamer internal error. +/// Added in version 1.4.0. +/// +#define AZAC_ERR_GSTREAMER_INTERNAL_ERROR __AZAC_ERRCODE_FAILED(0x027) + +/// +/// Compressed container format not supported. +/// Added in version 1.4.0. +/// +#define AZAC_ERR_CONTAINER_FORMAT_NOT_SUPPORTED_ERROR __AZAC_ERRCODE_FAILED(0x028) + +/// +/// Codec extension or gstreamer not found. +/// Added in version 1.4.0. +/// +#define AZAC_ERR_GSTREAMER_NOT_FOUND_ERROR __AZAC_ERRCODE_FAILED(0x029) + +/// +/// The language specified is missing. +/// Added in version 1.5.0. +/// +#define AZAC_ERR_INVALID_LANGUAGE __AZAC_ERRCODE_FAILED(0x02A) + +/// +/// The API is not applicable. +/// Added in version 1.5.0. +/// +#define AZAC_ERR_UNSUPPORTED_API_ERROR __AZAC_ERRCODE_FAILED(0x02B) + +/// +/// The ring buffer is unavailable. +/// Added in version 1.8.0. +/// +#define AZAC_ERR_RINGBUFFER_DATA_UNAVAILABLE __AZAC_ERRCODE_FAILED(0x02C) + +/// +/// An unexpected error was encountered when trying to access the Conversation site. +/// Added in version 1.5.0. +/// +#define AZAC_ERR_UNEXPECTED_CONVERSATION_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x030) + +/// +/// An unexpected error was encountered when trying to access the Conversation site. +/// Added in version 1.8.0. +/// +#define AZAC_ERR_UNEXPECTED_CONVERSATION_TRANSLATOR_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x031) + +/// +/// An asynchronous operation was canceled before it was executed. +/// Added in version 1.8.0. +/// +#define AZAC_ERR_CANCELED __AZAC_ERRCODE_FAILED(0x032) + +/// +/// Codec for compression could not be initialized. +/// Added in version 1.10.0. +/// +#define AZAC_ERR_COMPRESS_AUDIO_CODEC_INITIFAILED __AZAC_ERRCODE_FAILED(0x033) + +/// +/// Data not available. +/// Added in version 1.10.0. +/// +#define AZAC_ERR_DATA_NOT_AVAILABLE __AZAC_ERRCODE_FAILED(0x034) + +/// +/// Invalid result reason. +/// Added in version 1.12.0 +/// +#define AZAC_ERR_INVALID_RESULT_REASON __AZAC_ERRCODE_FAILED(0x035) + +/// +/// An unexpected error was encountered when trying to access the RNN-T site. +/// +#define AZAC_ERR_UNEXPECTED_RNNT_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x036) + +/// +/// Sending of a network message failed. +/// +#define AZAC_ERR_NETWORK_SEND_FAILED __AZAC_ERRCODE_FAILED(0x037) + +/// +/// Audio extension library not found. +/// Added in version 1.16.0. +/// +#define AZAC_ERR_AUDIO_SYS_LIBRARY_NOT_FOUND __AZAC_ERRCODE_FAILED(0x038) + +/// +/// An error in the audio-rendering system. +/// Added in version 1.20.0 +/// +#define AZAC_ERR_LOUDSPEAKER_ERROR __AZAC_ERRCODE_FAILED(0x039) + +/// +/// An unexpected error was encountered when trying to access the Vision site. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_VISION_SITE_FAILURE __AZAC_ERRCODE_FAILED(0x050) + +/// +/// Stream number provided was invalid in the current context. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_MEDIA_INVALID_STREAM __AZAC_ERRCODE_FAILED(0x060) + +/// +/// Offset required is invalid in the current context. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_MEDIA_INVALID_OFFSET __AZAC_ERRCODE_FAILED(0x061) + +/// +/// No more data is available in source. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_MEDIA_NO_MORE_DATA __AZAC_ERRCODE_FAILED(0x062) + +/// +/// Source has not been started. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_MEDIA_NOT_STARTED __AZAC_ERRCODE_FAILED(0x063) + +/// +/// Source has already been started. +/// Added in version 1.15.0. +/// +#define AZAC_ERR_MEDIA_ALREADY_STARTED __AZAC_ERRCODE_FAILED(0x064) + +/// +/// Media device creation failed. +/// Added in version 1.18.0. +/// +#define AZAC_ERR_MEDIA_DEVICE_CREATION_FAILED __AZAC_ERRCODE_FAILED(0x065) + +/// +/// No devices of the selected category are available. +/// Added in version 1.18.0. +/// +#define AZAC_ERR_MEDIA_NO_DEVICE_AVAILABLE __AZAC_ERRCODE_FAILED(0x066) + +/// +/// Enabled Voice Activity Detection while using keyword recognition is not allowed. +/// +#define AZAC_ERR_VAD_CANNOT_BE_USED_WITH_KEYWORD_RECOGNIZER __AZAC_ERRCODE_FAILED(0x067) + +/// +/// The specified RecoEngineAdapter could not be created. +/// +#define AZAC_ERR_COULD_NOT_CREATE_ENGINE_ADAPTER __AZAC_ERRCODE_FAILED(0x070) + +/// +/// The input file has a size of 0 bytes. +/// +#define AZAC_ERR_INPUT_FILE_SIZE_IS_ZERO_BYTES __AZAC_ERRCODE_FAILED(0x072) + +/// +/// Cannot open the input media file for reading. Does it exist? +/// +#define AZAC_ERR_FAILED_TO_OPEN_INPUT_FILE_FOR_READING __AZAC_ERRCODE_FAILED(0x073) + +/// +/// Failed to read from the input media file. +/// +#define AZAC_ERR_FAILED_TO_READ_FROM_INPUT_FILE __AZAC_ERRCODE_FAILED(0x074) + +/// +/// Input media file is too large. +/// +#define AZAC_ERR_INPUT_FILE_TOO_LARGE __AZAC_ERRCODE_FAILED(0x075) + +/// +/// The input URL is unsupported. It should start with `http://`, `https://` or `rtsp://`. +/// +#define AZAC_ERR_UNSUPPORTED_URL_PROTOCOL __AZAC_ERRCODE_FAILED(0x076) + +/// +/// The Nullable value is empty. Check HasValue() before getting the value. +/// +#define AZAC_ERR_EMPTY_NULLABLE __AZAC_ERRCODE_FAILED(0x077) + +/// +/// The given model version string is not in the expected format. The format +/// is specified by the regular expression `^(latest|\d{4}-\d{2}-\d{2})(-preview)?$`. +/// +#define AZAC_ERR_INVALID_MODEL_VERSION_FORMAT __AZAC_ERRCODE_FAILED(0x078) + +/// +/// Malformed network message +/// +#define AZAC_ERR_NETWORK_MALFORMED __AZAC_ERRCODE_FAILED(0x090) + +/// +/// Unexpected message received +/// +#define AZAC_ERR_NETWORK_PROTOCOL_VIOLATION __AZAC_ERRCODE_FAILED(0x091) + +/// +/// MAS extension library not found. +/// +#define AZAC_ERR_MAS_LIBRARY_NOT_FOUND __AZAC_ERRCODE_FAILED(0x092) diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c.h new file mode 100644 index 0000000..61a4a5b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c.h @@ -0,0 +1,51 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c.h: Master include header for public C API declarations +// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_config.h new file mode 100644 index 0000000..a8d042e --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_config.h @@ -0,0 +1,27 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_audio_config.h: Public API declarations for audio configuration related C methods and types +// + +#pragma once +#include + + +SPXAPI_(bool) audio_config_is_handle_valid(SPXAUDIOCONFIGHANDLE haudioConfig); +SPXAPI audio_config_create_audio_input_from_default_microphone(SPXAUDIOCONFIGHANDLE* haudioConfig); +SPXAPI audio_config_create_audio_input_from_a_microphone(SPXAUDIOCONFIGHANDLE* haudioConfig, const char* deviceName); +SPXAPI audio_config_create_audio_input_from_wav_file_name(SPXAUDIOCONFIGHANDLE* haudioConfig, const char* fileName); +SPXAPI audio_config_create_audio_input_from_stream(SPXAUDIOCONFIGHANDLE* haudioConfig, SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI audio_config_create_push_audio_input_stream(SPXAUDIOCONFIGHANDLE* haudioConfig, SPXAUDIOSTREAMHANDLE* haudioStream, SPXAUDIOSTREAMFORMATHANDLE hformat); +SPXAPI audio_config_create_pull_audio_input_stream(SPXAUDIOCONFIGHANDLE* haudioConfig, SPXAUDIOSTREAMHANDLE* haudioStream, SPXAUDIOSTREAMFORMATHANDLE hformat); +SPXAPI audio_config_create_audio_output_from_default_speaker(SPXAUDIOCONFIGHANDLE* haudioConfig); +SPXAPI audio_config_create_audio_output_from_a_speaker(SPXAUDIOCONFIGHANDLE* haudioConfig, const char* deviceName); +SPXAPI audio_config_create_audio_output_from_wav_file_name(SPXAUDIOCONFIGHANDLE* haudioConfig, const char* fileName); +SPXAPI audio_config_create_audio_output_from_stream(SPXAUDIOCONFIGHANDLE* haudioConfig, SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI audio_config_set_audio_processing_options(SPXAUDIOCONFIGHANDLE haudioConfig, SPXAUDIOPROCESSINGOPTIONSHANDLE haudioProcessingOptions); +SPXAPI audio_config_get_audio_processing_options(SPXAUDIOCONFIGHANDLE haudioConfig, SPXAUDIOPROCESSINGOPTIONSHANDLE* haudioProcessingOptions); +SPXAPI audio_config_release(SPXAUDIOCONFIGHANDLE haudioConfig); +SPXAPI audio_config_get_property_bag(SPXAUDIOCONFIGHANDLE haudioConfig, SPXPROPERTYBAGHANDLE* hpropbag); + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_processing_options.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_processing_options.h new file mode 100644 index 0000000..ece9933 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_processing_options.h @@ -0,0 +1,173 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_audio_processing_options.h: Public API declarations for audio processing options related C methods and types +// + +#pragma once +#include + +/// +/// Types of preset microphone array geometries. +/// See [Microphone Array Recommendations](/azure/cognitive-services/speech-service/speech-devices-sdk-microphone) for more details. +/// +typedef enum +{ + /// + /// Indicates that no geometry specified. Speech SDK will determine the microphone array geometry. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Uninitialized, + /// + /// Indicates a microphone array with one microphone in the center and six microphones evenly spaced + /// in a circle with radius approximately equal to 42.5 mm. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Circular7, + /// + /// Indicates a microphone array with one microphone in the center and three microphones evenly spaced + /// in a circle with radius approximately equal to 42.5 mm. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Circular4, + /// + /// Indicates a microphone array with four linearly placed microphones with 40 mm spacing between them. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Linear4, + /// + /// Indicates a microphone array with two linearly placed microphones with 40 mm spacing between them. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Linear2, + /// + /// Indicates a microphone array with a single microphone. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Mono, + /// + /// Indicates a microphone array with custom geometry. + /// + AudioProcessingOptions_PresetMicrophoneArrayGeometry_Custom +} AudioProcessingOptions_PresetMicrophoneArrayGeometry; + +/// +/// Types of microphone arrays. +/// +typedef enum +{ + AudioProcessingOptions_MicrophoneArrayType_Linear, + AudioProcessingOptions_MicrophoneArrayType_Planar +} AudioProcessingOptions_MicrophoneArrayType; + +/// +/// Defines speaker reference channel position in input audio. +/// +typedef enum +{ + /// + /// Indicates that the input audio does not have a speaker reference channel. + /// + AudioProcessingOptions_SpeakerReferenceChannel_None, + /// + /// Indicates that the last channel in the input audio corresponds to the speaker + /// reference for echo cancellation. + /// + AudioProcessingOptions_SpeakerReferenceChannel_LastChannel +} AudioProcessingOptions_SpeakerReferenceChannel; + +#pragma pack(push, 1) + +/// +/// Represents coordinates of a microphone. +/// +typedef struct +{ + /// + /// X-coordinate of the microphone in millimeters. + /// + int X; + /// + /// Y-coordinate of the microphone in millimeters. + /// + int Y; + /// + /// Z-coordinate of the microphone in millimeters. + /// + int Z; +} AudioProcessingOptions_MicrophoneCoordinates; + +/// +/// Represents the geometry of a microphone array. +/// +typedef struct +{ + /// + /// Type of microphone array. + /// + AudioProcessingOptions_MicrophoneArrayType microphoneArrayType; + /// + /// Start angle for beamforming in degrees. + /// + uint16_t beamformingStartAngle; + /// + /// End angle for beamforming in degrees. + /// + uint16_t beamformingEndAngle; + /// + /// Number of microphones in the microphone array. + /// + uint16_t numberOfMicrophones; + /// + /// Coordinates of microphones in the microphone array. + /// + AudioProcessingOptions_MicrophoneCoordinates* microphoneCoordinates; +} AudioProcessingOptions_MicrophoneArrayGeometry; + +#pragma pack(pop) + +/// +/// Disables built-in input audio processing. +/// +const int AUDIO_INPUT_PROCESSING_NONE = 0x00000000; +/// +/// Enables default built-in input audio processing. +/// +const int AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT = 0x00000001; +/// +/// Disables dereverberation in the default audio processing pipeline. +/// +const int AUDIO_INPUT_PROCESSING_DISABLE_DEREVERBERATION = 0x00000002; +/// +/// Disables noise suppression in the default audio processing pipeline. +/// +const int AUDIO_INPUT_PROCESSING_DISABLE_NOISE_SUPPRESSION = 0x00000004; +/// +/// Disables automatic gain control in the default audio processing pipeline. +/// +const int AUDIO_INPUT_PROCESSING_DISABLE_GAIN_CONTROL = 0x00000008; +/// +/// Disables echo cancellation in the default audio processing pipeline. +/// +const int AUDIO_INPUT_PROCESSING_DISABLE_ECHO_CANCELLATION = 0x00000010; +/// +/// Enables voice activity detection in input audio processing. +/// +const int AUDIO_INPUT_PROCESSING_ENABLE_VOICE_ACTIVITY_DETECTION = 0x00000020; +/// +/// Enables the new version (V2) of input audio processing with improved echo cancellation performance. +/// This flag is mutually exclusive with AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT flag. +/// AUDIO_INPUT_PROCESSING_DISABLE_* flags do not affect this pipeline. +/// This feature is currently in preview and only available for Windows x64 and ARM64 platform. +/// +const int AUDIO_INPUT_PROCESSING_ENABLE_V2 = 0x00000040; + +SPXAPI_(bool) audio_processing_options_is_handle_valid(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions); +SPXAPI audio_processing_options_create(SPXAUDIOPROCESSINGOPTIONSHANDLE* hoptions, int audioProcessingFlags); +SPXAPI audio_processing_options_create_from_preset_microphone_array_geometry(SPXAUDIOPROCESSINGOPTIONSHANDLE* hoptions, int audioProcessingFlags, AudioProcessingOptions_PresetMicrophoneArrayGeometry microphoneArrayGeometry, AudioProcessingOptions_SpeakerReferenceChannel speakerReferenceChannel); +SPXAPI audio_processing_options_create_from_microphone_array_geometry(SPXAUDIOPROCESSINGOPTIONSHANDLE* hoptions, int audioProcessingFlags, const AudioProcessingOptions_MicrophoneArrayGeometry* microphoneArrayGeometry, AudioProcessingOptions_SpeakerReferenceChannel speakerReferenceChannel); +SPXAPI audio_processing_options_get_audio_processing_flags(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, int* audioProcessingFlags); +SPXAPI audio_processing_options_get_preset_microphone_array_geometry(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, AudioProcessingOptions_PresetMicrophoneArrayGeometry* microphoneArrayGeometry); +SPXAPI audio_processing_options_get_microphone_array_type(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, AudioProcessingOptions_MicrophoneArrayType* microphoneArrayType); +SPXAPI audio_processing_options_get_beamforming_start_angle(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, uint16_t* startAngle); +SPXAPI audio_processing_options_get_beamforming_end_angle(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, uint16_t* endAngle); +SPXAPI audio_processing_options_get_microphone_count(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, uint16_t* microphoneCount); +SPXAPI audio_processing_options_get_microphone_coordinates(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, AudioProcessingOptions_MicrophoneCoordinates* microphoneCoordinates, uint16_t microphoneCount); +SPXAPI audio_processing_options_get_speaker_reference_channel(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, AudioProcessingOptions_SpeakerReferenceChannel* speakerReferenceChannel); +SPXAPI audio_processing_options_release(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions); +SPXAPI audio_processing_options_get_property_bag(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream.h new file mode 100644 index 0000000..d6ff17a --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream.h @@ -0,0 +1,68 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_audio_stream.h: Public API declarations for audio stream related C methods and types +// + +#pragma once +#include +#include + +typedef enum +{ + StreamStatus_Unknown = 0, + StreamStatus_NoData = 1, + StreamStatus_PartialData = 2, + StreamStatus_AllData = 3, + StreamStatus_Canceled = 4 +} Stream_Status; + +// audio_stream +SPXAPI_(bool) audio_stream_is_handle_valid(SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI audio_stream_create_push_audio_input_stream(SPXAUDIOSTREAMHANDLE* haudioStream, SPXAUDIOSTREAMFORMATHANDLE hformat); +SPXAPI audio_stream_create_pull_audio_input_stream(SPXAUDIOSTREAMHANDLE* haudioStream, SPXAUDIOSTREAMFORMATHANDLE hformat); +SPXAPI audio_stream_create_pull_audio_output_stream(SPXAUDIOSTREAMHANDLE* haudioStream); +SPXAPI audio_stream_create_push_audio_output_stream(SPXAUDIOSTREAMHANDLE* haudioStream); +SPXAPI audio_stream_release(SPXAUDIOSTREAMHANDLE haudioStream); + +// pull_audio_input_stream +typedef int (*CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK)(void* pvContext, uint8_t* buffer, uint32_t size); +typedef void (*CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK)(void* pvContext); +typedef void (*CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK)(void* pvContext, int id, uint8_t* value, uint32_t size); +SPXAPI pull_audio_input_stream_set_callbacks(SPXAUDIOSTREAMHANDLE haudioStream, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback); +SPXAPI pull_audio_input_stream_set_getproperty_callback(SPXAUDIOSTREAMHANDLE haudioStream, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback); + +// push_audio_input_stream +SPXAPI push_audio_input_stream_write(SPXAUDIOSTREAMHANDLE haudioStream, uint8_t* buffer, uint32_t size); +SPXAPI push_audio_input_stream_close(SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI push_audio_input_stream_set_property_by_id(SPXAUDIOSTREAMHANDLE haudioStream, int id, const char* value); +SPXAPI push_audio_input_stream_set_property_by_name(SPXAUDIOSTREAMHANDLE haudioStream, const char* name, const char* value); + +// pull audio output stream +SPXAPI pull_audio_output_stream_read(SPXAUDIOSTREAMHANDLE haudioStream, uint8_t* buffer, uint32_t bufferSize, uint32_t* pfilledSize); + +// push_audio_output_stream +typedef int(*CUSTOM_AUDIO_PUSH_STREAM_WRITE_CALLBACK)(void* pvContext, uint8_t* buffer, uint32_t size); +typedef void(*CUSTOM_AUDIO_PUSH_STREAM_CLOSE_CALLBACK)(void* pvContext); +SPXAPI push_audio_output_stream_set_callbacks(SPXAUDIOSTREAMHANDLE haudioStream, void* pvContext, CUSTOM_AUDIO_PUSH_STREAM_WRITE_CALLBACK writeCallback, CUSTOM_AUDIO_PUSH_STREAM_CLOSE_CALLBACK closeCallback); + +// audio data stream +SPXAPI_(bool) audio_data_stream_is_handle_valid(SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI audio_data_stream_create_from_file(SPXAUDIOSTREAMHANDLE* haudioStream, const char* fileName); +SPXAPI audio_data_stream_create_from_result(SPXAUDIOSTREAMHANDLE* haudioStream, SPXRESULTHANDLE hresult); +SPXAPI audio_data_stream_create_from_keyword_result(SPXAUDIOSTREAMHANDLE* audioStreamHandle, SPXRESULTHANDLE resultHandle); +SPXAPI audio_data_stream_get_status(SPXAUDIOSTREAMHANDLE haudioStream, Stream_Status* status); +SPXAPI audio_data_stream_get_reason_canceled(SPXAUDIOSTREAMHANDLE haudioStream, Result_CancellationReason* reason); +SPXAPI audio_data_stream_get_canceled_error_code(SPXAUDIOSTREAMHANDLE haudioStream, Result_CancellationErrorCode* errorCode); +SPXAPI_(bool) audio_data_stream_can_read_data(SPXAUDIOSTREAMHANDLE haudioStream, uint32_t requestedSize); +SPXAPI_(bool) audio_data_stream_can_read_data_from_position(SPXAUDIOSTREAMHANDLE haudioStream, uint32_t requestedSize, uint32_t position); +SPXAPI_(uint32_t) audio_data_stream_get_available_size(SPXAUDIOSTREAMHANDLE haudioStream); +SPXAPI audio_data_stream_read(SPXAUDIOSTREAMHANDLE haudioStream, uint8_t* buffer, uint32_t bufferSize, uint32_t* pfilledSize); +SPXAPI audio_data_stream_read_from_position(SPXAUDIOSTREAMHANDLE haudioStream, uint8_t* buffer, uint32_t bufferSize, uint32_t position, uint32_t* pfilledSize); +SPXAPI audio_data_stream_save_to_wave_file(SPXAUDIOSTREAMHANDLE haudioStream, const char* fileName); +SPXAPI audio_data_stream_get_position(SPXAUDIOSTREAMHANDLE haudioStream, uint32_t* position); +SPXAPI audio_data_stream_set_position(SPXAUDIOSTREAMHANDLE haudioStream, uint32_t position); +SPXAPI audio_data_stream_detach_input(SPXAUDIOSTREAMHANDLE audioStreamHandle); +SPXAPI audio_data_stream_get_property_bag(SPXAUDIOSTREAMHANDLE haudioStream, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI audio_data_stream_release(SPXAUDIOSTREAMHANDLE haudioStream); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream_format.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream_format.h new file mode 100644 index 0000000..ac1e8e4 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_audio_stream_format.h @@ -0,0 +1,93 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_audio_stream_format.h: Public API declarations for audio stream format related C methods and types +// + +#pragma once +#include + +/// +/// Defines supported audio stream container format. +/// Changed in version 1.4.0. +/// +enum Audio_Stream_Container_Format +{ + /// + /// Stream ContainerFormat definition for OGG OPUS. + /// + StreamFormat_Ogg_Opus = 0x101, + + /// + /// Stream ContainerFormat definition for MP3. + /// + StreamFormat_Mp3 = 0x102, + + /// + /// Stream ContainerFormat definition for FLAC. Added in version 1.7.0. + /// + StreamFormat_Flac = 0x103, + + /// + /// Stream ContainerFormat definition for ALAW. Added in version 1.7.0. + /// + StreamFormat_Alaw = 0x104, + + /// + /// Stream ContainerFormat definition for MULAW. Added in version 1.7.0. + /// + StreamFormat_Mulaw = 0x105, + + /// + /// Stream ContainerFormat definition for AMRNB. Currently not supported. + /// + StreamFormat_Amrnb = 0x106, + + /// + /// Stream ContainerFormat definition for AMRWB. Currently not supported. + /// + StreamFormat_Amrwb = 0x107, + + /// + /// Stream ContainerFormat definition for any other or unknown format. + /// + StreamFormat_Any = 0x108, +}; + +/// +/// Defines supported audio stream wave format in WAV container. +/// +enum Audio_Stream_Wave_Format +{ + /// + /// Stream WaveFormat definition for PCM (pulse-code modulated) data in integer format. + /// + StreamWaveFormat_PCM = 0x0001, + + /// + /// Stream WaveFormat definition for A-law-encoded format. + /// + StreamWaveFormat_ALAW = 0x0006, + + /// + /// Stream WaveFormat definition for Mu-law-encoded format. + /// + StreamWaveFormat_MULAW = 0x0007, + + /// + /// Stream WaveFormat definition for G.722-encoded format. + /// + StreamWaveFormat_G722 = 0x028F +}; + +typedef enum Audio_Stream_Container_Format Audio_Stream_Container_Format; +typedef enum Audio_Stream_Wave_Format Audio_Stream_Wave_Format; + +SPXAPI_(bool) audio_stream_format_is_handle_valid(SPXAUDIOSTREAMFORMATHANDLE hformat); +SPXAPI audio_stream_format_create_from_default_input(SPXAUDIOSTREAMFORMATHANDLE* hformat); +SPXAPI audio_stream_format_create_from_waveformat(SPXAUDIOSTREAMFORMATHANDLE* hformat, uint32_t samplesPerSecond, uint8_t bitsPerSample, uint8_t channels, Audio_Stream_Wave_Format waveFormat); +SPXAPI audio_stream_format_create_from_waveformat_pcm(SPXAUDIOSTREAMFORMATHANDLE* hformat, uint32_t samplesPerSecond, uint8_t bitsPerSample, uint8_t channels); +SPXAPI audio_stream_format_create_from_default_output(SPXAUDIOSTREAMFORMATHANDLE* hformat); +SPXAPI audio_stream_format_create_from_compressed_format(SPXAUDIOSTREAMFORMATHANDLE* hformat, Audio_Stream_Container_Format compressedFormat); +SPXAPI audio_stream_format_release(SPXAUDIOSTREAMFORMATHANDLE hformat); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_auto_detect_source_lang_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_auto_detect_source_lang_config.h new file mode 100644 index 0000000..f62c5eb --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_auto_detect_source_lang_config.h @@ -0,0 +1,15 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI create_auto_detect_source_lang_config_from_open_range(SPXAUTODETECTSOURCELANGCONFIGHANDLE* hAutoDetectSourceLanguageconfig); +SPXAPI create_auto_detect_source_lang_config_from_languages(SPXAUTODETECTSOURCELANGCONFIGHANDLE* hAutoDetectSourceLanguageconfig, const char* languages); +SPXAPI create_auto_detect_source_lang_config_from_source_lang_config(SPXAUTODETECTSOURCELANGCONFIGHANDLE* hAutoDetectSourceLanguageconfig, SPXSOURCELANGCONFIGHANDLE hSourceLanguageConfig); +SPXAPI add_source_lang_config_to_auto_detect_source_lang_config(SPXAUTODETECTSOURCELANGCONFIGHANDLE hAutoDetectSourceLanguageconfig, SPXSOURCELANGCONFIGHANDLE hSourceLanguageConfig); +SPXAPI_(bool) auto_detect_source_lang_config_is_handle_valid(SPXAUTODETECTSOURCELANGCONFIGHANDLE hAutoDetectSourceLanguageconfig); +SPXAPI auto_detect_source_lang_config_release(SPXAUTODETECTSOURCELANGCONFIGHANDLE hAutoDetectSourceLanguageconfig); +SPXAPI auto_detect_source_lang_config_get_property_bag(SPXAUTODETECTSOURCELANGCONFIGHANDLE hAutoDetectSourceLanguageconfig, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_common.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_common.h new file mode 100644 index 0000000..ebfb802 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_common.h @@ -0,0 +1,81 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_common.h: Public API declarations for global C definitions and typedefs +// + +#pragma once + +#include +#include // must include after spxdebug.h or speechapi*.h (can NOT be included before) +#include +#include + +#define SPX_EXTERN_C AZAC_EXTERN_C +#ifndef SPXAPI_EXPORT +#define SPXAPI_EXPORT AZAC_API_EXPORT +#endif + +#define SPXAPI_NOTHROW AZAC_API_NOTHROW +#define SPXAPI_RESULTTYPE SPXHR +#define SPXAPI_CALLTYPE AZAC_API_CALLTYPE +#define SPXAPI_VCALLTYPE AZAC_VCALLTYPE + +#define SPXDLL_EXPORT AZAC_DLL_EXPORT + +#define SPXAPI SPX_EXTERN_C SPXAPI_EXPORT SPXAPI_RESULTTYPE SPXAPI_NOTHROW SPXAPI_CALLTYPE +#define SPXAPI_(type) SPX_EXTERN_C SPXAPI_EXPORT type SPXAPI_NOTHROW SPXAPI_CALLTYPE +#define SPXAPI__(type) SPX_EXTERN_C SPXAPI_EXPORT SPXAPI_NOTHROW type SPXAPI_CALLTYPE + +#define SPXAPIV SPX_EXTERN_C SPXAPI_EXPORT SPXAPI_NOTHROW SPXAPI_RESULTTYPE SPXAPI_VCALLTYPE +#define SPXAPIV_(type) SPX_EXTERN_C SPXAPI_EXPORT SPXAPI_NOTHROW type SPXAPI_VCALLTYPE + +#define SPXAPI_PRIVATE SPX_EXTERN_C SPXAPI_RESULTTYPE SPXAPI_NOTHROW SPXAPI_CALLTYPE +#define SPXAPI_PRIVATE_(type) SPX_EXTERN_C type SPXAPI_NOTHROW SPXAPI_CALLTYPE + +#define _spx_empty _azac_empty +#define _spxhandle _azac_handle +#define SPXHANDLE AZAC_HANDLE +#define SPXERRORHANDLE AZAC_HANDLE + +#define SPXPROPERTYBAGHANDLE AZAC_HANDLE +typedef SPXHANDLE SPXASYNCHANDLE; +typedef SPXHANDLE SPXFACTORYHANDLE; +typedef SPXHANDLE SPXRECOHANDLE; +typedef SPXHANDLE SPXSYNTHHANDLE; +typedef SPXHANDLE SPXRESULTHANDLE; +typedef SPXHANDLE SPXEVENTHANDLE; +typedef SPXHANDLE SPXSESSIONHANDLE; +typedef SPXHANDLE SPXTRIGGERHANDLE; +typedef SPXHANDLE SPXLUMODELHANDLE; +typedef SPXHANDLE SPXKEYWORDHANDLE; +typedef SPXHANDLE SPXAUDIOSTREAMFORMATHANDLE; +typedef SPXHANDLE SPXAUDIOSTREAMHANDLE; +typedef SPXHANDLE SPXAUDIOCONFIGHANDLE; +typedef SPXHANDLE SPXSPEECHCONFIGHANDLE; +typedef SPXHANDLE SPXCONNECTIONHANDLE; +typedef SPXHANDLE SPXCONNECTIONMESSAGEHANDLE; +typedef SPXHANDLE SPXACTIVITYHANDLE; +typedef SPXHANDLE SPXACTIVITYJSONHANDLE; +typedef SPXHANDLE SPXGRAMMARHANDLE; +typedef SPXHANDLE SPXPHRASEHANDLE; +typedef SPXHANDLE SPXUSERHANDLE; +typedef SPXHANDLE SPXPARTICIPANTHANDLE; +typedef SPXHANDLE SPXAUTODETECTSOURCELANGCONFIGHANDLE; +typedef SPXHANDLE SPXSOURCELANGCONFIGHANDLE; +typedef SPXHANDLE SPXCONVERSATIONHANDLE; +typedef SPXHANDLE SPXMEETINGHANDLE; +typedef SPXHANDLE SPXCONVERSATIONTRANSLATORHANDLE; +typedef SPXHANDLE SPXVOICEPROFILECLIENTHANDLE; +typedef SPXHANDLE SPXVOICEPROFILEHANDLE; +typedef SPXHANDLE SPXSPEAKERIDHANDLE; +typedef SPXHANDLE SPXSIMODELHANDLE; +typedef SPXHANDLE SPXSVMODELHANDLE; +typedef SPXHANDLE SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE; +typedef SPXHANDLE SPXAUDIOPROCESSINGOPTIONSHANDLE; +typedef SPXHANDLE SPXSPEECHRECOMODELHANDLE; +typedef SPXHANDLE SPXREQUESTHANDLE; + +#define SPXHANDLE_INVALID ((SPXHANDLE)-1) +#define SPXHANDLE_RESERVED1 ((SPXHANDLE)+1) diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_connection.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_connection.h new file mode 100644 index 0000000..3bb69c9 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_connection.h @@ -0,0 +1,46 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI connection_from_recognizer(SPXRECOHANDLE recognizerHandle, SPXCONNECTIONHANDLE* connectionHandle); +SPXAPI connection_from_conversation_translator(SPXCONVERSATIONTRANSLATORHANDLE convTransHandle, SPXCONNECTIONHANDLE* connectionHandle); +SPXAPI connection_from_dialog_service_connector(SPXRECOHANDLE convTransHandle, SPXCONNECTIONHANDLE* connectionHandle); +SPXAPI connection_from_speech_synthesizer(SPXSYNTHHANDLE synthesizerHandle, SPXCONNECTIONHANDLE* connectionHandle); + +SPXAPI_(bool) connection_handle_is_valid(SPXCONNECTIONHANDLE handle); +SPXAPI connection_handle_release(SPXCONNECTIONHANDLE handle); +SPXAPI connection_async_handle_release(SPXASYNCHANDLE hasync); + +SPXAPI connection_open(SPXCONNECTIONHANDLE handle, bool forContinuousRecognition); +SPXAPI connection_close(SPXCONNECTIONHANDLE handle); +SPXAPI connection_set_message_property(SPXCONNECTIONHANDLE handle, const char* path, const char* name, const char* value); +SPXAPI connection_send_message(SPXCONNECTIONHANDLE handle, const char* path, const char* payload); +SPXAPI connection_send_message_async(SPXCONNECTIONHANDLE handle, const char* path, const char* payload, SPXASYNCHANDLE* phasync); + +SPXAPI connection_send_message_data(SPXCONNECTIONHANDLE handle, const char* path, uint8_t* data, uint32_t size); +SPXAPI connection_send_message_data_async(SPXCONNECTIONHANDLE handle, const char* path, uint8_t* data, uint32_t size, SPXASYNCHANDLE* phasync); + +SPXAPI connection_send_message_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +SPXAPI connection_get_property_bag(SPXRECOHANDLE hconn, SPXPROPERTYBAGHANDLE* hpropbag); + +typedef void(*CONNECTION_CALLBACK_FUNC)(SPXEVENTHANDLE event, void* context); +SPXAPI connection_connected_set_callback(SPXCONNECTIONHANDLE connection, CONNECTION_CALLBACK_FUNC callback, void* context); +SPXAPI connection_disconnected_set_callback(SPXCONNECTIONHANDLE connection, CONNECTION_CALLBACK_FUNC callback, void* context); +SPXAPI connection_message_received_set_callback(SPXCONNECTIONHANDLE connection, CONNECTION_CALLBACK_FUNC callback, void* context); + +SPXAPI_(bool) connection_message_received_event_handle_is_valid(SPXEVENTHANDLE hevent); +SPXAPI connection_message_received_event_handle_release(SPXEVENTHANDLE hevent); + +SPXAPI connection_message_received_event_get_message(SPXEVENTHANDLE hevent, SPXCONNECTIONMESSAGEHANDLE* hcm); + +SPXAPI_(bool) connection_message_handle_is_valid(SPXCONNECTIONMESSAGEHANDLE handle); +SPXAPI connection_message_handle_release(SPXCONNECTIONMESSAGEHANDLE handle); + +SPXAPI connection_message_get_property_bag(SPXCONNECTIONMESSAGEHANDLE hcm, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI connection_message_get_data(SPXCONNECTIONMESSAGEHANDLE hcm, uint8_t* data, uint32_t size); +SPXAPI_(uint32_t) connection_message_get_data_size(SPXCONNECTIONMESSAGEHANDLE hcm); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation.h new file mode 100644 index 0000000..be12f34 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation.h @@ -0,0 +1,28 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_conversation.h: Public API declarations for conversation related C methods and typedefs +// + +#pragma once +#include + +SPXAPI conversation_create_from_config(SPXCONVERSATIONHANDLE* phconv, SPXSPEECHCONFIGHANDLE hspeechconfig, const char* id); +SPXAPI conversation_update_participant_by_user_id(SPXCONVERSATIONHANDLE hconv, bool add, const char* userId); +SPXAPI conversation_update_participant_by_user(SPXCONVERSATIONHANDLE hconv, bool add, SPXUSERHANDLE huser); +SPXAPI conversation_update_participant(SPXCONVERSATIONHANDLE hconv, bool add, SPXPARTICIPANTHANDLE hparticipant); +SPXAPI conversation_get_conversation_id(SPXCONVERSATIONHANDLE hconv, char* id, size_t size); +SPXAPI conversation_end_conversation(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_get_property_bag(SPXCONVERSATIONHANDLE hconv, SPXPROPERTYBAGHANDLE* phpropbag); +SPXAPI conversation_release_handle(SPXHANDLE handle); + +SPXAPI conversation_start_conversation(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_delete_conversation(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_lock_conversation(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_unlock_conversation(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_mute_all_participants(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_unmute_all_participants(SPXCONVERSATIONHANDLE hconv); +SPXAPI conversation_mute_participant(SPXCONVERSATIONHANDLE hconv, const char * participantId); +SPXAPI conversation_unmute_participant(SPXCONVERSATIONHANDLE hconv, const char * participantId); + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_transcription_result.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_transcription_result.h new file mode 100644 index 0000000..7bcc7b1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_transcription_result.h @@ -0,0 +1,11 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_conversation_transcriber_result.h: Public API declarations for ConversationTranscriberResult related C methods and enumerations +// + +#pragma once +#include + +SPXAPI conversation_transcription_result_get_speaker_id(SPXRESULTHANDLE hresult, char* pszSpeakerId, uint32_t cchSpeakerId); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_translator.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_translator.h new file mode 100644 index 0000000..0b1881b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_conversation_translator.h @@ -0,0 +1,63 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_conversation_translator.h: Public API declarations for conversation translator related C methods and typedefs +// + +#pragma once +#include +#include + +#ifdef __cplusplus +#include +typedef Microsoft::CognitiveServices::Speech::Transcription::ParticipantChangedReason ParticipantChangedReason; +#else +#include +#endif + +typedef void(*PCONV_TRANS_CALLBACK)(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, SPXEVENTHANDLE hEvent, void* pvContext); + +SPXAPI conversation_translator_create_from_config(SPXCONVERSATIONTRANSLATORHANDLE* phandle, SPXAUDIOCONFIGHANDLE haudioinput); +SPXAPI conversation_translator_get_property_bag(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator, SPXPROPERTYBAGHANDLE* phpropertyBag); + +SPXAPI conversation_translator_join(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator, SPXCONVERSATIONHANDLE hconv, const char* psznickname); +SPXAPI conversation_translator_join_with_id(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator, const char *pszconversationid, const char* psznickname, const char * pszlang); +SPXAPI conversation_translator_start_transcribing(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator); +SPXAPI conversation_translator_stop_transcribing(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator); +SPXAPI conversation_translator_send_text_message(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator, const char *pszmessage); +SPXAPI conversation_translator_leave(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator); +SPXAPI conversation_translator_set_authorization_token(SPXCONVERSATIONTRANSLATORHANDLE hconvtranslator, const char* pszAuthToken, const char* pszRegion); + +SPXAPI_(bool) conversation_translator_handle_is_valid(SPXCONVERSATIONTRANSLATORHANDLE handle); +SPXAPI conversation_translator_handle_release(SPXHANDLE handle); + +SPXAPI conversation_translator_session_started_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_session_stopped_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_canceled_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_participants_changed_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_conversation_expiration_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_transcribing_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_transcribed_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); +SPXAPI conversation_translator_text_message_recevied_set_callback(SPXCONVERSATIONTRANSLATORHANDLE hConvTrans, PCONV_TRANS_CALLBACK pCallback, void* pvContext); + +SPXAPI conversation_translator_connection_connected_set_callback(SPXCONNECTIONHANDLE hConnection, CONNECTION_CALLBACK_FUNC pCallback, void * pvContext); +SPXAPI conversation_translator_connection_disconnected_set_callback(SPXCONNECTIONHANDLE hConnection, CONNECTION_CALLBACK_FUNC pCallback, void * pvContext); + +SPXAPI_(bool) conversation_translator_event_handle_is_valid(SPXCONVERSATIONTRANSLATORHANDLE handle); +SPXAPI conversation_translator_event_handle_release(SPXHANDLE handle); + +SPXAPI conversation_translator_event_get_expiration_time(SPXEVENTHANDLE hevent, int32_t* pexpirationminutes); +SPXAPI conversation_translator_event_get_participant_changed_reason(SPXEVENTHANDLE hevent, ParticipantChangedReason* preason); +SPXAPI conversation_translator_event_get_participant_changed_at_index(SPXEVENTHANDLE hevent, int index, SPXPARTICIPANTHANDLE* phparticipant); + +SPXAPI conversation_translator_result_get_user_id(SPXRESULTHANDLE hresult, char* pszUserId, uint32_t cchUserId); + +SPXAPI conversation_translator_result_get_original_lang(SPXRESULTHANDLE hresult, char * psz, uint32_t * pcch); + +SPXAPI conversation_translator_participant_get_avatar(SPXEVENTHANDLE hevent, char * psz, uint32_t * pcch); +SPXAPI conversation_translator_participant_get_displayname(SPXEVENTHANDLE hevent, char * psz, uint32_t * pcch); +SPXAPI conversation_translator_participant_get_id(SPXEVENTHANDLE hevent, char * psz, uint32_t * pcch); +SPXAPI conversation_translator_participant_get_is_muted(SPXEVENTHANDLE hevent, bool * pMuted); +SPXAPI conversation_translator_participant_get_is_host(SPXEVENTHANDLE hevent, bool * pIsHost); +SPXAPI conversation_translator_participant_get_is_using_tts(SPXEVENTHANDLE hevent, bool * ptts); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_diagnostics.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_diagnostics.h new file mode 100644 index 0000000..25b1a73 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_diagnostics.h @@ -0,0 +1,8 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include // must include after spxdebug.h or speechapi*.h (can NOT be included before) diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_config.h new file mode 100644 index 0000000..4fb8b35 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_config.h @@ -0,0 +1,15 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_dialog_service_config.h: Public API declarations for dialog service connector configuration related C methods and types +// +#pragma once + +#include + +SPXAPI bot_framework_config_from_subscription(SPXSPEECHCONFIGHANDLE* ph_config, const char* subscription, const char* region, const char *bot_Id); +SPXAPI bot_framework_config_from_authorization_token(SPXSPEECHCONFIGHANDLE* ph_config, const char* auth_token, const char* region, const char* bot_Id); + +SPXAPI custom_commands_config_from_subscription(SPXSPEECHCONFIGHANDLE* ph_dialog_service_config, const char* app_id, const char *subscription, const char* region); +SPXAPI custom_commands_config_from_authorization_token(SPXSPEECHCONFIGHANDLE* ph_dialog_service_config, const char* app_id, const char *auth_token, const char* region); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_connector.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_connector.h new file mode 100644 index 0000000..94e0fbf --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_dialog_service_connector.h @@ -0,0 +1,92 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_dialog_service_connector.h: Public API declaration for Dialog Service Connector related C methods. +// + +#pragma once +#include + +SPXAPI_(bool) dialog_service_connector_handle_is_valid(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_handle_release(SPXRECOHANDLE h_connector); + +SPXAPI_(bool) dialog_service_connector_async_handle_is_valid(SPXASYNCHANDLE h_async); +SPXAPI dialog_service_connector_async_handle_release(SPXASYNCHANDLE h_async); + +SPXAPI_(bool) dialog_service_connector_async_void_handle_is_valid(SPXASYNCHANDLE h_async); +SPXAPI dialog_service_connector_async_void_handle_release(SPXASYNCHANDLE h_async); + +SPXAPI_(bool) dialog_service_connector_async_string_handle_is_valid(SPXASYNCHANDLE h_async); +SPXAPI dialog_service_connector_async_string_handle_release(SPXASYNCHANDLE h_async); + +SPXAPI_(bool) dialog_service_connector_async_reco_result_handle_is_valid(SPXASYNCHANDLE h_async); +SPXAPI dialog_service_connector_async_reco_result_handle_release(SPXASYNCHANDLE h_async); + +SPXAPI_(bool) dialog_service_connector_activity_received_event_handle_is_valid(SPXEVENTHANDLE h_event); +SPXAPI dialog_service_connector_activity_received_event_release(SPXEVENTHANDLE h_event); + +SPXAPI_(bool) dialog_service_connector_turn_status_received_handle_is_valid(SPXEVENTHANDLE h_event); +SPXAPI dialog_service_connector_turn_status_received_release(SPXEVENTHANDLE h_event); + +SPXAPI dialog_service_connector_get_property_bag(SPXRECOHANDLE h_connector, SPXPROPERTYBAGHANDLE* h_prop_bag); + +SPXAPI dialog_service_connector_connect(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_connect_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_connect_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds); + +SPXAPI dialog_service_connector_disconnect(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_disconnect_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_disconnect_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds); + +SPXAPI dialog_service_connector_send_activity(SPXRECOHANDLE h_connector, const char* activity, char* interaction_id); +SPXAPI dialog_service_connector_send_activity_async(SPXRECOHANDLE h_connector, const char* activity, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_send_activity_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds, char* interaction_id); + +SPXAPI dialog_service_connector_start_keyword_recognition(SPXRECOHANDLE h_connector, SPXKEYWORDHANDLE h_keyword); +SPXAPI dialog_service_connector_start_keyword_recognition_async(SPXRECOHANDLE h_connector, SPXKEYWORDHANDLE h_keyword, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_start_keyword_recognition_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds); + +SPXAPI dialog_service_connector_stop_keyword_recognition(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_stop_keyword_recognition_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_stop_keyword_recognition_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds); + +SPXAPI dialog_service_connector_listen_once(SPXRECOHANDLE h_connector, SPXRESULTHANDLE* p_result); +SPXAPI dialog_service_connector_listen_once_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); +SPXAPI dialog_service_connector_listen_once_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds, SPXRESULTHANDLE* p_result); + +SPXAPI dialog_service_connector_start_continuous_listening(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_start_continuous_listening_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); + +SPXAPI dialog_service_connector_stop_listening(SPXRECOHANDLE h_connector); +SPXAPI dialog_service_connector_stop_listening_async(SPXRECOHANDLE h_connector, SPXASYNCHANDLE* p_async); + +typedef void(*PSESSION_CALLBACK_FUNC)(SPXRECOHANDLE h_connector, SPXEVENTHANDLE h_event, void* pv_context); + +SPXAPI dialog_service_connector_session_started_set_callback(SPXRECOHANDLE h_connector, PSESSION_CALLBACK_FUNC p_callback, void *pv_context); +SPXAPI dialog_service_connector_session_stopped_set_callback(SPXRECOHANDLE h_connector, PSESSION_CALLBACK_FUNC p_callback, void *pv_context); + +SPXAPI dialog_service_connector_speech_start_detected_set_callback(SPXRECOHANDLE h_connector, PSESSION_CALLBACK_FUNC p_callback, void* pv_context); +SPXAPI dialog_service_connector_speech_end_detected_set_callback(SPXRECOHANDLE h_connector, PSESSION_CALLBACK_FUNC p_callback, void* pv_context); + +typedef void(*PRECOGNITION_CALLBACK_FUNC)(SPXRECOHANDLE h_connector, SPXEVENTHANDLE h_event, void* pv_context); + +SPXAPI dialog_service_connector_recognized_set_callback(SPXRECOHANDLE h_connector, PRECOGNITION_CALLBACK_FUNC p_callback, void *pv_context); +SPXAPI dialog_service_connector_recognizing_set_callback(SPXRECOHANDLE h_connector, PRECOGNITION_CALLBACK_FUNC p_callback, void *pv_context); +SPXAPI dialog_service_connector_canceled_set_callback(SPXRECOHANDLE h_connector, PRECOGNITION_CALLBACK_FUNC p_callback, void *pv_context); +SPXAPI dialog_service_connector_activity_received_set_callback(SPXRECOHANDLE h_connector, PRECOGNITION_CALLBACK_FUNC p_callback, void *pv_context); +SPXAPI dialog_service_connector_turn_status_received_set_callback(SPXRECOHANDLE h_connector, PRECOGNITION_CALLBACK_FUNC p_callback, void* pv_context); + +SPXAPI dialog_service_connector_activity_received_event_get_activity_size(SPXEVENTHANDLE h_event, size_t* size); +SPXAPI dialog_service_connector_activity_received_event_get_activity(SPXEVENTHANDLE h_event, char* p_activity, size_t size); +SPXAPI_(bool) dialog_service_connector_activity_received_event_has_audio(SPXEVENTHANDLE h_event); +SPXAPI dialog_service_connector_activity_received_event_get_audio(SPXEVENTHANDLE h_event, SPXAUDIOSTREAMHANDLE* p_audio); + +SPXAPI dialog_service_connector_turn_status_received_get_interaction_id_size(SPXEVENTHANDLE h_event, size_t* size); +SPXAPI dialog_service_connector_turn_status_received_get_interaction_id(SPXEVENTHANDLE h_event, char* p_interaction_id, size_t size); +SPXAPI dialog_service_connector_turn_status_received_get_conversation_id_size(SPXEVENTHANDLE h_event, size_t* size); +SPXAPI dialog_service_connector_turn_status_received_get_conversation_id(SPXEVENTHANDLE h_event, char* p_interaction_id, size_t size); +SPXAPI dialog_service_connector_turn_status_received_get_status(SPXEVENTHANDLE h_event, int* p_status); + +SPXAPI dialog_service_connector_recognized_size(SPXEVENTHANDLE h_event, uint32_t* size); +SPXAPI dialog_service_connector_recognized_get_result(SPXEVENTHANDLE h_event, uint32_t* size); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_embedded_speech_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_embedded_speech_config.h new file mode 100644 index 0000000..fb45fc1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_embedded_speech_config.h @@ -0,0 +1,21 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include + +SPXAPI embedded_speech_config_create(SPXSPEECHCONFIGHANDLE* hconfig); +SPXAPI embedded_speech_config_add_path(SPXSPEECHCONFIGHANDLE hconfig, const char* path); +SPXAPI embedded_speech_config_get_num_speech_reco_models(SPXSPEECHCONFIGHANDLE hconfig, uint32_t* numModels); +SPXAPI embedded_speech_config_get_speech_reco_model(SPXSPEECHCONFIGHANDLE hconfig, uint32_t index, SPXSPEECHRECOMODELHANDLE* hmodel); +SPXAPI embedded_speech_config_get_num_speech_translation_models(SPXSPEECHCONFIGHANDLE hconfig, uint32_t* numModels); +SPXAPI embedded_speech_config_get_speech_translation_model(SPXSPEECHCONFIGHANDLE hconfig, uint32_t index, SPXSPEECHRECOMODELHANDLE* hmodel); +SPXAPI embedded_speech_config_set_speech_recognition_model(SPXSPEECHCONFIGHANDLE hconfig, const char* name, const char* license); +SPXAPI embedded_speech_config_set_speech_synthesis_voice(SPXSPEECHCONFIGHANDLE hconfig, const char* name, const char* license); +SPXAPI embedded_speech_config_set_speech_translation_model(SPXSPEECHCONFIGHANDLE hconfig, const char* name, const char* license); +SPXAPI embedded_speech_config_set_keyword_recognition_model(SPXSPEECHCONFIGHANDLE hconfig, const char* name, const char* license); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_error.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_error.h new file mode 100644 index 0000000..0a581e3 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_error.h @@ -0,0 +1,9 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// + +#pragma once +#include +#include // must include after spxdebug.h or speechapi*.h (can NOT be included before) diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_ext_audiocompression.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_ext_audiocompression.h new file mode 100644 index 0000000..8af2d78 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_ext_audiocompression.h @@ -0,0 +1,105 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include "speechapi_c_common.h" + +const char CODECCREATEEXPORTNAME[] = "codec_create"; +struct codec_c_interface; +typedef struct codec_c_interface* codec_c_interface_P; +typedef codec_c_interface_P SPXCODECCTYPE; + +/*! \cond INTERNAL */ + +/** + * The SPX_CODEC_CLIENT_GET_PROPERTY represents the function reading a property value + * @param id Property id. + * @param buffer caller provided buffer to receive the value of the property + * @param buffersize buffer size. If buffer is passed as null it will return the required buffer size. + * @param codecContext A pointer to caller data provided through the codec_create call. + * @return A return code or zero if successful. + */ +typedef SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE *SPX_CODEC_CLIENT_GET_PROPERTY)(const char* id, char* buffer, uint64_t* buffersize, void* codecContext); + +/** + * The AUDIO_ENCODER_ONENCODEDDATA type represents an application-defined + * status callback function used to provide the encoded data. + * @param pBuffer audio data buffer. + * @param bytesToWrite The length of pBuffer in bytes. + * @param duration_100nanos The duration of the audio sample + * @param pContext A pointer to the application-defined callback context. + */ +typedef void(SPXAPI_CALLTYPE *AUDIO_ENCODER_ONENCODEDDATA)(const uint8_t* pBuffer, size_t bytesToWrite, uint64_t duration_100nanos, void* pContext); + +struct codec_c_interface +{ + /** + * @param codec codec Object returned by the codec_create call to be initialized + * @param inputSamplesPerSecond sample rate for the input audio + * @param inputBitsPerSample bits per sample for the input audio + * @param inputChannels number of channel of the input audio + * @param dataCallback An application defined callback. + * @param pContext A pointer to the application-defined callback context. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE *init)( + SPXCODECCTYPE codec, + uint32_t inputSamplesPerSecond, + uint8_t inputBitsPerSample, + uint8_t inputChannels, + AUDIO_ENCODER_ONENCODEDDATA datacallback, + void* pContext); + + /** + * @param codec codec object returned by the codec_create call. + * @param buffer caller provided buffer to receive the value of the property + * @param buffersize buffer size. If buffer is passed as null it will return the required buffer size. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE* get_format_type)(SPXCODECCTYPE codec, char* buffer, uint64_t* buffersize); + + /** + * Encodes raw PCM data. + * @param codec codec object returned by the codec_create call. + * @param pBuffer The PCM data. + * @param bytesToWrite The length pBuffer. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE *encode) (SPXCODECCTYPE codec, const uint8_t* pBuffer, size_t bytesToWrite); + + /** + * Flushes the encoder. + * @param codec codec object returned by the codec_create call. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE(SPXAPI_CALLTYPE* flush)(SPXCODECCTYPE codec); + + /** + * Terminate the encoded stream immediately + * @param codec codec object returned by the codec_create call. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE *endstream)(SPXCODECCTYPE codec); + + /** + * Destroys the encoder. The codec object should not be used anymore after this call. + * @param codec codec object returned by the codec_create call. + * @return A return code or zero if successful. + */ + SPXAPI_RESULTTYPE (SPXAPI_CALLTYPE *destroy) (SPXCODECCTYPE codec); +}; + +/** +* Creates a codec object. This method needs to be exported from the dll +* @param codecid - codec id, can be null or empty if the library implements only one codec. +* @param codecContext - context to be used to call back to the caller +* @param property_read_func - function to read properties +* @return A codec object +*/ + +SPX_EXTERN_C SPXDLL_EXPORT SPXCODECCTYPE codec_create(const char* codecid, void* codecContext, SPX_CODEC_CLIENT_GET_PROPERTY property_read_func); +typedef SPXCODECCTYPE (*PCODEC_CREATE_FUNC)(const char* codecid, void* codecContext, SPX_CODEC_CLIENT_GET_PROPERTY property_read_func); + +/*! \endcond */ diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_factory.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_factory.h new file mode 100644 index 0000000..43e8b4b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_factory.h @@ -0,0 +1,29 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI recognizer_create_speech_recognizer_from_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_speech_recognizer_from_auto_detect_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUTODETECTSOURCELANGCONFIGHANDLE hautoDetectSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_speech_recognizer_from_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXSOURCELANGCONFIGHANDLE hSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_translation_recognizer_from_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_translation_recognizer_from_auto_detect_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUTODETECTSOURCELANGCONFIGHANDLE hautoDetectSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_intent_recognizer_from_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_keyword_recognizer_from_audio_config(SPXRECOHANDLE* phreco, SPXAUDIOCONFIGHANDLE haudio); +SPXAPI recognizer_create_source_language_recognizer_from_auto_detect_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUTODETECTSOURCELANGCONFIGHANDLE hautoDetectSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI synthesizer_create_speech_synthesizer_from_config(SPXSYNTHHANDLE* phsynth, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioOuput); +SPXAPI synthesizer_create_speech_synthesizer_from_auto_detect_source_lang_config(SPXSYNTHHANDLE* phsynth, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUTODETECTSOURCELANGCONFIGHANDLE hautoDetectSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioOutput); +SPXAPI dialog_service_connector_create_dialog_service_connector_from_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +//SPXAPI recognizer_create_conversation_transcriber_from_config(SPXRECOHANDLE* phreco, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_conversation_transcriber_from_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_conversation_transcriber_from_auto_detect_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUTODETECTSOURCELANGCONFIGHANDLE hautoDetectSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_create_conversation_transcriber_from_source_lang_config(SPXRECOHANDLE* phreco, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXSOURCELANGCONFIGHANDLE hSourceLangConfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_join_conversation(SPXCONVERSATIONHANDLE hconv, SPXRECOHANDLE hreco); +SPXAPI recognizer_leave_conversation(SPXRECOHANDLE hreco); +SPXAPI recognizer_create_meeting_transcriber_from_config(SPXRECOHANDLE* phreco, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI recognizer_join_meeting(SPXMEETINGHANDLE hmeeting, SPXRECOHANDLE hreco); +SPXAPI recognizer_leave_meeting(SPXRECOHANDLE hreco); +SPXAPI transcriber_get_participants_list(SPXRECOHANDLE hreco, SPXPARTICIPANTHANDLE* participants, int size); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_grammar.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_grammar.h new file mode 100644 index 0000000..2833055 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_grammar.h @@ -0,0 +1,33 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_grammar.h: Public API declarations for Grammar related C methods and typedefs +// + +#pragma once +#include + +typedef enum +{ + // A Recognition Factor will apply to grammars that are referenced as individual words. + PartialPhrase = 1 +} GrammarList_RecognitionFactorScope; + +SPXAPI_(bool) grammar_handle_is_valid(SPXGRAMMARHANDLE hgrammar); +SPXAPI phrase_list_grammar_from_recognizer_by_name(SPXGRAMMARHANDLE* hgrammar, SPXRECOHANDLE hreco, const char* name); +SPXAPI grammar_handle_release(SPXGRAMMARHANDLE hgrammar); + +SPXAPI phrase_list_grammar_add_phrase(SPXGRAMMARHANDLE hgrammar, SPXPHRASEHANDLE hphrase); +SPXAPI phrase_list_grammar_clear(SPXGRAMMARHANDLE hgrammar); + +SPXAPI_(bool) grammar_phrase_handle_is_valid(SPXPHRASEHANDLE hphrase); +SPXAPI grammar_phrase_create_from_text(SPXPHRASEHANDLE* hphrase, const char* phrase); +SPXAPI grammar_phrase_handle_release(SPXPHRASEHANDLE hphrase); + +SPXAPI grammar_create_from_storage_id(SPXGRAMMARHANDLE *hgrammarlist, const char *id); +SPXAPI grammar_list_from_recognizer(SPXGRAMMARHANDLE *hgrammarlist, SPXRECOHANDLE hreco); +SPXAPI grammar_list_add_grammar(SPXGRAMMARHANDLE hgrammarlist, SPXGRAMMARHANDLE hgrammar); +SPXAPI grammar_list_set_recognition_factor(SPXGRAMMARHANDLE hgrammarlist, double factor, GrammarList_RecognitionFactorScope scope); +SPXAPI class_language_model_from_storage_id(SPXGRAMMARHANDLE* hclm, const char *storageid); +SPXAPI class_language_model_assign_class(SPXGRAMMARHANDLE hclm, const char *classname, SPXGRAMMARHANDLE hgrammar); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_hybrid_speech_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_hybrid_speech_config.h new file mode 100644 index 0000000..945c3ee --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_hybrid_speech_config.h @@ -0,0 +1,9 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI hybrid_speech_config_create(SPXSPEECHCONFIGHANDLE* hconfig, SPXSPEECHCONFIGHANDLE hcloudSpeechConfig, SPXSPEECHCONFIGHANDLE hembeddedSpeechConfig); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_recognizer.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_recognizer.h new file mode 100644 index 0000000..241cf99 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_recognizer.h @@ -0,0 +1,16 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_intent_recognizer.h: Public API declarations for IntentRecognizer related C methods and typedefs +// + +#pragma once +#include + +SPXAPI intent_recognizer_add_intent(SPXRECOHANDLE hreco, const char* intentId, SPXTRIGGERHANDLE htrigger); +SPXAPI intent_recognizer_add_intent_with_model_id(SPXRECOHANDLE hreco, SPXTRIGGERHANDLE htrigger, const char* modelId); +SPXAPI intent_recognizer_recognize_text_once(SPXRECOHANDLE hreco, const char* text, SPXRESULTHANDLE* hresult); +SPXAPI intent_recognizer_clear_language_models(SPXRECOHANDLE hreco); +SPXAPI intent_recognizer_import_pattern_matching_model(SPXRECOHANDLE hreco, const char* jsonData); +SPXAPI intent_recognizer_add_conversational_language_understanding_model(SPXRECOHANDLE hreco, const char* languageResourceKey, const char* endpoint, const char* projectName, const char* deploymentName); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_result.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_result.h new file mode 100644 index 0000000..491121b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_result.h @@ -0,0 +1,11 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_intent_result.h: Public API declarations for IntentResult related C methods and enumerations +// + +#pragma once +#include + +SPXAPI intent_result_get_intent_id(SPXRESULTHANDLE hresult, char* pszIntentId, uint32_t cchIntentId); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_trigger.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_trigger.h new file mode 100644 index 0000000..50a49e5 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_intent_trigger.h @@ -0,0 +1,17 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_intent_trigger.h: Public API declarations for IntentTrigger related C methods and typedefs +// + +#pragma once +#include + + +SPXAPI_(bool) intent_trigger_handle_is_valid(SPXTRIGGERHANDLE htrigger); + +SPXAPI intent_trigger_create_from_phrase(SPXTRIGGERHANDLE* htrigger, const char* phrase); +SPXAPI intent_trigger_create_from_language_understanding_model(SPXTRIGGERHANDLE* htrigger, SPXLUMODELHANDLE hlumodel, const char* intentName); + +SPXAPI intent_trigger_handle_release(SPXTRIGGERHANDLE htrigger); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_json.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_json.h new file mode 100644 index 0000000..afcf98a --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_json.h @@ -0,0 +1,37 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI__(const char*) ai_core_string_create(const char* str, size_t size); +SPXAPI_(void) ai_core_string_free(const char* str); + +SPXAPI_(int) ai_core_json_parser_create(SPXHANDLE* parser, const char* json, size_t jsize); // returns item for root +SPXAPI_(bool) ai_core_json_parser_handle_is_valid(SPXHANDLE parser); +SPXAPI ai_core_json_parser_handle_release(SPXHANDLE parser); + +SPXAPI_(int) ai_core_json_builder_create(SPXHANDLE* builder, const char* json, size_t jsize); // returns item for root +SPXAPI_(bool) ai_core_json_builder_handle_is_valid(SPXHANDLE builder); +SPXAPI ai_core_json_builder_handle_release(SPXHANDLE builder); + +SPXAPI_(int) ai_core_json_item_count(SPXHANDLE parserOrBuilder, int item); +SPXAPI_(int) ai_core_json_item_at(SPXHANDLE parserOrBuilder, int item, int index, const char* find); // returns item found +SPXAPI_(int) ai_core_json_item_next(SPXHANDLE parserOrBuilder, int item); // returns next item +SPXAPI_(int) ai_core_json_item_name(SPXHANDLE parserOrBuilder, int item); // returns item representing name of item specified + +SPXAPI_(int) ai_core_json_value_kind(SPXHANDLE parserOrBuilder, int item); +SPXAPI_(bool) ai_core_json_value_as_bool(SPXHANDLE parserOrBuilder, int item, bool defaultValue); +SPXAPI_(double) ai_core_json_value_as_double(SPXHANDLE parserOrBuilder, int item, double defaultValue); +SPXAPI_(int64_t) ai_core_json_value_as_int(SPXHANDLE parserOrBuilder, int item, int64_t defaultValue); +SPXAPI_(uint64_t) ai_core_json_value_as_uint(SPXHANDLE parserOrBuilder, int item, uint64_t defaultValue); + +SPXAPI__(const char*) ai_core_json_value_as_string_ptr(SPXHANDLE parserOrBuilder, int item, size_t* size); + +SPXAPI__(const char*) ai_core_json_value_as_string_copy(SPXHANDLE parserOrBuilder, int item, const char* defaultValue); +SPXAPI__(const char*) ai_core_json_value_as_json_copy(SPXHANDLE parserOrBuilder, int item); + +SPXAPI_(int) ai_core_json_builder_item_add(SPXHANDLE builder, int item, int index, const char* find); +SPXAPI ai_core_json_builder_item_set(SPXHANDLE builder, int item, const char* json, size_t jsize, int kind, const char* str, size_t ssize, bool boolean, int integer, double number); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_keyword_recognition_model.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_keyword_recognition_model.h new file mode 100644 index 0000000..45f1ae3 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_keyword_recognition_model.h @@ -0,0 +1,17 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_keyword_recognition_model.h: Public API declarations for KeywordRecognitionModel related C methods and typedefs +// + +#pragma once +#include + + +SPXAPI_(bool) keyword_recognition_model_handle_is_valid(SPXKEYWORDHANDLE hkeyword); +SPXAPI keyword_recognition_model_handle_release(SPXKEYWORDHANDLE hkeyword); + +SPXAPI keyword_recognition_model_create_from_file(const char* fileName, SPXKEYWORDHANDLE* phkwmodel); +SPXAPI keyword_recognition_model_create_from_config(SPXSPEECHCONFIGHANDLE hconfig, SPXKEYWORDHANDLE* phkwmodel); +SPXAPI keyword_recognition_model_add_user_defined_wake_word(SPXKEYWORDHANDLE hkwmodel, const char* wakeWord); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_language_understanding_model.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_language_understanding_model.h new file mode 100644 index 0000000..c86d5b4 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_language_understanding_model.h @@ -0,0 +1,18 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_language_understanding_model.h: Public API declarations for LanguageUnderstandingModel related C methods and typedefs +// + +#pragma once +#include + +SPXAPI_(bool) language_understanding_model_handle_is_valid(SPXLUMODELHANDLE hlumodel); + +SPXAPI language_understanding_model_create_from_uri(SPXLUMODELHANDLE* hlumodel, const char* uri); +SPXAPI language_understanding_model_create_from_app_id(SPXLUMODELHANDLE* hlumodel, const char* appId); +SPXAPI language_understanding_model_create_from_subscription(SPXLUMODELHANDLE* hlumodel, const char* subscriptionKey, const char* appId, const char* region); + +SPXAPI language_understanding_model__handle_release(SPXLUMODELHANDLE hlumodel); +SPXAPI__(const char *) language_understanding_model_get_model_id(SPXLUMODELHANDLE hlumodel); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting.h new file mode 100644 index 0000000..b39a60f --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting.h @@ -0,0 +1,28 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_meeting.h: Public API declarations for meeting related C methods and typedefs +// + +#pragma once +#include + +SPXAPI meeting_create_from_config(SPXMEETINGHANDLE* phmeeting, SPXSPEECHCONFIGHANDLE hspeechconfig, const char* id); +SPXAPI meeting_update_participant_by_user_id(SPXMEETINGHANDLE hconv, bool add, const char* userId); +SPXAPI meeting_update_participant_by_user(SPXMEETINGHANDLE hconv, bool add, SPXUSERHANDLE huser); +SPXAPI meeting_update_participant(SPXMEETINGHANDLE hconv, bool add, SPXPARTICIPANTHANDLE hparticipant); +SPXAPI meeting_get_meeting_id(SPXMEETINGHANDLE hconv, char* id, size_t size); +SPXAPI meeting_end_meeting(SPXMEETINGHANDLE hconv); +SPXAPI meeting_get_property_bag(SPXMEETINGHANDLE hconv, SPXPROPERTYBAGHANDLE* phpropbag); +SPXAPI meeting_release_handle(SPXHANDLE handle); + +SPXAPI meeting_start_meeting(SPXMEETINGHANDLE hconv); +SPXAPI meeting_delete_meeting(SPXMEETINGHANDLE hconv); +SPXAPI meeting_lock_meeting(SPXMEETINGHANDLE hconv); +SPXAPI meeting_unlock_meeting(SPXMEETINGHANDLE hconv); +SPXAPI meeting_mute_all_participants(SPXMEETINGHANDLE hconv); +SPXAPI meeting_unmute_all_participants(SPXMEETINGHANDLE hconv); +SPXAPI meeting_mute_participant(SPXMEETINGHANDLE hconv, const char * participantId); +SPXAPI meeting_unmute_participant(SPXMEETINGHANDLE hconv, const char * participantId); + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting_transcription_result.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting_transcription_result.h new file mode 100644 index 0000000..bcfdd35 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_meeting_transcription_result.h @@ -0,0 +1,12 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_meeting_transcriber_result.h: Public API declarations for MeetingTranscriberResult related C methods and enumerations +// + +#pragma once +#include + +SPXAPI meeting_transcription_result_get_user_id(SPXRESULTHANDLE hresult, char* pszUserId, uint32_t cchUserId); +SPXAPI meeting_transcription_result_get_utterance_id(SPXRESULTHANDLE hresult, char* pszUtteranceId, uint32_t cchUtteranceId); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_operations.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_operations.h new file mode 100644 index 0000000..ed556d7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_operations.h @@ -0,0 +1,12 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_operations.h: Public API declaration for common operation methods in the C API layer. +// + +#pragma once +#include + +SPXAPI speechapi_async_handle_release(SPXASYNCHANDLE h_async); +SPXAPI speechapi_async_wait_for(SPXASYNCHANDLE h_async, uint32_t milliseconds); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_participant.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_participant.h new file mode 100644 index 0000000..1ddb4c8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_participant.h @@ -0,0 +1,15 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_participant.h: Public API declarations for conversation transcriber participant related C methods and enumerations +// + +#pragma once +#include + +SPXAPI participant_create_handle(SPXPARTICIPANTHANDLE* hparticipant, const char* userId, const char* preferred_language, const char* voice_signature); +SPXAPI participant_release_handle(SPXPARTICIPANTHANDLE hparticipant); +SPXAPI participant_set_preferred_langugage(SPXPARTICIPANTHANDLE hparticipant, const char* preferred_language); +SPXAPI participant_set_voice_signature(SPXPARTICIPANTHANDLE hparticipant, const char* voice_signature); +SPXAPI participant_get_property_bag(SPXPARTICIPANTHANDLE hparticipant, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_pattern_matching_model.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_pattern_matching_model.h new file mode 100644 index 0000000..264f063 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_pattern_matching_model.h @@ -0,0 +1,33 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_pattern_matching_model.h: Public API declarations for PatternMatchingModel related C methods and typedefs +// + +#pragma once +#include + +SPXAPI_(bool) pattern_matching_model_handle_is_valid(SPXLUMODELHANDLE hlumodel); + +SPXAPI pattern_matching_model_create(SPXLUMODELHANDLE* hlumodel, SPXRECOHANDLE hIntentReco, const char* id); +SPXAPI pattern_matching_model_create_from_id(SPXLUMODELHANDLE* hlumodel, const char* id); + +typedef SPXAPI_RESULTTYPE(SPXAPI_CALLTYPE* PATTERN_MATCHING_MODEL_GET_STR_FROM_INDEX)(void* context, size_t index, const char** str, size_t* size); + +SPXAPI pattern_matching_model_add_entity( + SPXLUMODELHANDLE hlumodel, + const char* id, + int32_t type, + int32_t mode, + size_t numPhrases, + void* phraseContext, + PATTERN_MATCHING_MODEL_GET_STR_FROM_INDEX phraseGetter); + +SPXAPI pattern_matching_model_add_intent( + SPXLUMODELHANDLE hlumodel, + const char* id, + uint32_t priority, + size_t numPhrases, + void* phraseContext, + PATTERN_MATCHING_MODEL_GET_STR_FROM_INDEX phraseGetter); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_pronunciation_assessment_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_pronunciation_assessment_config.h new file mode 100644 index 0000000..1d5df85 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_pronunciation_assessment_config.h @@ -0,0 +1,33 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +typedef enum +{ + PronunciationAssessmentGradingSystem_FivePoint = 1, + PronunciationAssessmentGradingSystem_HundredMark = 2 +} Pronunciation_Assessment_Grading_System; + +typedef enum +{ + PronunciationAssessmentGranularity_Phoneme = 1, + PronunciationAssessmentGranularity_Word = 2, + PronunciationAssessmentGranularity_FullText = 3 +} Pronunciation_Assessment_Granularity; + +SPXAPI create_pronunciation_assessment_config(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE* hPronunciationAssessmentConfig, + const char* referenceText, + Pronunciation_Assessment_Grading_System gradingSystem, + Pronunciation_Assessment_Granularity granularity, + bool enableMiscue); +SPXAPI create_pronunciation_assessment_config_from_json(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE* hPronunciationAssessmentConfig, const char* json); +SPXAPI_(bool) pronunciation_assessment_config_is_handle_valid(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hPronunciationAssessmentConfig); +SPXAPI pronunciation_assessment_config_release(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hPronunciationAssessmentConfig); +SPXAPI pronunciation_assessment_config_get_property_bag( + SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hPronunciationAssessmentConfig, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI__(const char*) pronunciation_assessment_config_to_json(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hPronunciationAssessmentConfig); +SPXAPI pronunciation_assessment_config_apply_to_recognizer(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hPronunciationAssessmentConfig, SPXRECOHANDLE hreco); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_property_bag.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_property_bag.h new file mode 100644 index 0000000..5ab9f18 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_property_bag.h @@ -0,0 +1,162 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_property_bag.h: Public API declarations for Property Bag related C methods +// + +#pragma once +#include + +SPXAPI property_bag_create(SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI_(bool) property_bag_is_valid(SPXPROPERTYBAGHANDLE hpropbag); +SPXAPI property_bag_set_string(SPXPROPERTYBAGHANDLE hpropbag, int id, const char* name, const char* value); +SPXAPI__(const char*) property_bag_get_string(SPXPROPERTYBAGHANDLE hpropbag, int id, const char* name, const char* defaultValue); +SPXAPI property_bag_free_string(const char* value); +SPXAPI property_bag_release(SPXPROPERTYBAGHANDLE hpropbag); +SPXAPI property_bag_copy(SPXPROPERTYBAGHANDLE hfrom, SPXPROPERTYBAGHANDLE hto); + +// NOTE: Currently this enum is duplicated with C++ side, +// because SWIG cannot properly resolve conditional compilation. +#ifndef __cplusplus +enum PropertyId +{ + SpeechServiceConnection_Key = 1000, + SpeechServiceConnection_Endpoint = 1001, + SpeechServiceConnection_Region = 1002, + SpeechServiceAuthorization_Token = 1003, + SpeechServiceAuthorization_Type = 1004, + SpeechServiceConnection_EndpointId = 1005, + SpeechServiceConnection_Host = 1006, + + SpeechServiceConnection_ProxyHostName = 1100, + SpeechServiceConnection_ProxyPort = 1101, + SpeechServiceConnection_ProxyUserName = 1102, + SpeechServiceConnection_ProxyPassword = 1103, + SpeechServiceConnection_Url = 1104, + SpeechServiceConnection_ProxyHostBypass = 1105, + + SpeechServiceConnection_TranslationToLanguages = 2000, + SpeechServiceConnection_TranslationVoice = 2001, + SpeechServiceConnection_TranslationFeatures = 2002, + SpeechServiceConnection_IntentRegion = 2003, + + SpeechServiceConnection_RecoMode = 3000, + SpeechServiceConnection_RecoLanguage = 3001, + Speech_SessionId = 3002, + SpeechServiceConnection_UserDefinedQueryParameters = 3003, + SpeechServiceConnection_RecoModelBackend = 3004, + SpeechServiceConnection_RecoModelName = 3005, + SpeechServiceConnection_RecoModelKey = 3006, + SpeechServiceConnection_RecoModelIniFile = 3007, + + SpeechServiceConnection_SynthLanguage = 3100, + SpeechServiceConnection_SynthVoice = 3101, + SpeechServiceConnection_SynthOutputFormat = 3102, + SpeechServiceConnection_SynthEnableCompressedAudioTransmission = 3103, + SpeechServiceConnection_SynthBackend = 3110, + SpeechServiceConnection_SynthOfflineDataPath = 3112, + SpeechServiceConnection_SynthOfflineVoice = 3113, + SpeechServiceConnection_SynthModelKey = 3114, + SpeechServiceConnection_VoicesListEndpoint = 3130, + + SpeechServiceConnection_InitialSilenceTimeoutMs = 3200, + SpeechServiceConnection_EndSilenceTimeoutMs = 3201, + SpeechServiceConnection_EnableAudioLogging = 3202, + SpeechServiceConnection_LanguageIdMode = 3205, + SpeechServiceConnection_TranslationCategoryId = 3206, + + SpeechServiceConnection_AutoDetectSourceLanguages = 3300, + SpeechServiceConnection_AutoDetectSourceLanguageResult = 3301, + + SpeechServiceResponse_RequestDetailedResultTrueFalse = 4000, + SpeechServiceResponse_RequestProfanityFilterTrueFalse = 4001, + SpeechServiceResponse_ProfanityOption = 4002, + SpeechServiceResponse_PostProcessingOption = 4003, + SpeechServiceResponse_RequestWordLevelTimestamps = 4004, + SpeechServiceResponse_StablePartialResultThreshold = 4005, + SpeechServiceResponse_OutputFormatOption = 4006, + SpeechServiceResponse_RequestSnr = 4007, + + SpeechServiceResponse_TranslationRequestStablePartialResult = 4100, + + SpeechServiceResponse_RequestWordBoundary = 4200, + SpeechServiceResponse_RequestPunctuationBoundary = 4201, + SpeechServiceResponse_RequestSentenceBoundary = 4202, + SpeechServiceResponse_SynthesisEventsSyncToAudio = 4210, + + SpeechServiceResponse_JsonResult = 5000, + SpeechServiceResponse_JsonErrorDetails = 5001, + SpeechServiceResponse_RecognitionLatencyMs = 5002, + SpeechServiceResponse_RecognitionBackend = 5003, + + SpeechServiceResponse_SynthesisFirstByteLatencyMs = 5010, + SpeechServiceResponse_SynthesisFinishLatencyMs = 5011, + SpeechServiceResponse_SynthesisUnderrunTimeMs = 5012, + SpeechServiceResponse_SynthesisConnectionLatencyMs = 5013, + SpeechServiceResponse_SynthesisNetworkLatencyMs = 5014, + SpeechServiceResponse_SynthesisServiceLatencyMs = 5015, + SpeechServiceResponse_DiarizeIntermediateResults = 5025, + + CancellationDetails_Reason = 6000, + CancellationDetails_ReasonText = 6001, + CancellationDetails_ReasonDetailedText = 6002, + + LanguageUnderstandingServiceResponse_JsonResult = 7000, + + AudioConfig_DeviceNameForCapture = 8000, + AudioConfig_NumberOfChannelsForCapture = 8001, + AudioConfig_SampleRateForCapture = 8002, + AudioConfig_BitsPerSampleForCapture = 8003, + AudioConfig_AudioSource = 8004, + AudioConfig_DeviceNameForRender = 8005, + AudioConfig_PlaybackBufferLengthInMs = 8006, + + Speech_LogFilename = 9001, + Speech_SegmentationSilenceTimeoutMs = 9002, + Speech_SegmentationMaximumTimeMs = 9003, + Speech_SegmentationStrategy = 9004, + + Conversation_ApplicationId = 10000, + Conversation_DialogType = 10001, + Conversation_Initial_Silence_Timeout = 10002, + Conversation_From_Id = 10003, + Conversation_Conversation_Id = 10004, + Conversation_Custom_Voice_Deployment_Ids = 10005, + Conversation_Speech_Activity_Template = 10006, + Conversation_ParticipantId = 10007, + DataBuffer_TimeStamp = 11001, + DataBuffer_UserId = 11002, + + PronunciationAssessment_ReferenceText = 12001, + PronunciationAssessment_GradingSystem = 12002, + PronunciationAssessment_Granularity = 12003, + PronunciationAssessment_EnableMiscue = 12005, + PronunciationAssessment_PhonemeAlphabet = 12006, + PronunciationAssessment_NBestPhonemeCount = 12007, + PronunciationAssessment_EnableProsodyAssessment = 12008, + PronunciationAssessment_Json = 12009, + PronunciationAssessment_Params = 12010, + PronunciationAssessment_ContentTopic = 12020, + SpeakerRecognition_Api_Version = 13001, + + SpeechTranslation_ModelName = 13100, + SpeechTranslation_ModelKey = 13101, + + KeywordRecognition_ModelName = 13200, + KeywordRecognition_ModelKey = 13201, + + EmbeddedSpeech_EnablePerformanceMetrics = 13300, + + SpeechSynthesis_FrameTimeoutInterval = 14101, + SpeechSynthesis_RtfTimeoutThreshold = 14102 +}; + +typedef enum _ParticipantChangedReason +{ + JoinedConversation, + LeftConversation, + Updated +} ParticipantChangedReason; +#endif + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_recognizer.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_recognizer.h new file mode 100644 index 0000000..c7eecbb --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_recognizer.h @@ -0,0 +1,67 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_recognizer.h: Public API declarations for Recognizer related C methods and typedefs +// + +#pragma once +#include + + +SPXAPI_(bool) recognizer_handle_is_valid(SPXRECOHANDLE hreco); +SPXAPI recognizer_handle_release(SPXRECOHANDLE hreco); + +SPXAPI_(bool) recognizer_async_handle_is_valid(SPXASYNCHANDLE hasync); +SPXAPI recognizer_async_handle_release(SPXASYNCHANDLE hasync); + +SPXAPI_(bool) recognizer_result_handle_is_valid(SPXRESULTHANDLE hresult); +SPXAPI recognizer_result_handle_release(SPXRESULTHANDLE hresult); + +SPXAPI_(bool) recognizer_event_handle_is_valid(SPXEVENTHANDLE hevent); +SPXAPI recognizer_event_handle_release(SPXEVENTHANDLE hevent); + +SPXAPI recognizer_get_property_bag(SPXRECOHANDLE hreco, SPXPROPERTYBAGHANDLE* hpropbag); + +SPXAPI recognizer_recognize_once(SPXRECOHANDLE hreco, SPXRESULTHANDLE* phresult); +SPXAPI recognizer_recognize_once_async(SPXRECOHANDLE hreco, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_recognize_text_once_async(SPXRECOHANDLE hreco, const char* text, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_recognize_once_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds, SPXRESULTHANDLE* phresult); + +SPXAPI recognizer_start_continuous_recognition(SPXRECOHANDLE hreco); +SPXAPI recognizer_start_continuous_recognition_async(SPXRECOHANDLE hreco, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_start_continuous_recognition_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +SPXAPI recognizer_stop_continuous_recognition(SPXRECOHANDLE hreco); +SPXAPI recognizer_stop_continuous_recognition_async(SPXRECOHANDLE hreco, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_stop_continuous_recognition_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +SPXAPI recognizer_start_keyword_recognition(SPXRECOHANDLE hreco, SPXKEYWORDHANDLE hkeyword); +SPXAPI recognizer_start_keyword_recognition_async(SPXRECOHANDLE hreco, SPXKEYWORDHANDLE hkeyword, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_start_keyword_recognition_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +SPXAPI recognizer_recognize_keyword_once(SPXRECOHANDLE hreco, SPXKEYWORDHANDLE hkeyword, SPXRESULTHANDLE* phresult); +SPXAPI recognizer_recognize_keyword_once_async(SPXRECOHANDLE hreco, SPXKEYWORDHANDLE hkeyword, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_recognize_keyword_once_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds, SPXRESULTHANDLE* phresult); + +SPXAPI recognizer_stop_keyword_recognition(SPXRECOHANDLE hreco); +SPXAPI recognizer_stop_keyword_recognition_async(SPXRECOHANDLE hreco, SPXASYNCHANDLE* phasync); +SPXAPI recognizer_stop_keyword_recognition_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +typedef void (*PSESSION_CALLBACK_FUNC)(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext); +SPXAPI recognizer_session_started_set_callback(SPXRECOHANDLE hreco, PSESSION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_session_stopped_set_callback(SPXRECOHANDLE hreco, PSESSION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_token_requested_set_callback(SPXRECOHANDLE hreco, PSESSION_CALLBACK_FUNC pCallback, void* pvContext); + +typedef void (*PRECOGNITION_CALLBACK_FUNC)(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext); +SPXAPI recognizer_recognizing_set_callback(SPXRECOHANDLE hreco, PRECOGNITION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_recognized_set_callback(SPXRECOHANDLE hreco, PRECOGNITION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_canceled_set_callback(SPXRECOHANDLE hreco, PRECOGNITION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_speech_start_detected_set_callback(SPXRECOHANDLE hreco, PRECOGNITION_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI recognizer_speech_end_detected_set_callback(SPXRECOHANDLE hreco, PRECOGNITION_CALLBACK_FUNC pCallback, void* pvContext); + +SPXAPI recognizer_session_event_get_session_id(SPXEVENTHANDLE hevent, char* pszSessionId, uint32_t cchSessionId); +SPXAPI recognizer_recognition_event_get_offset(SPXEVENTHANDLE hevent, uint64_t *pszOffset); +SPXAPI recognizer_recognition_event_get_result(SPXEVENTHANDLE hevent, SPXRESULTHANDLE* phresult); + +SPXAPI recognizer_connection_event_get_property_bag(SPXEVENTHANDLE hevent, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_result.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_result.h new file mode 100644 index 0000000..48874a7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_result.h @@ -0,0 +1,109 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_result.h: Public API declarations for Result related C methods and enumerations +// + +#pragma once +#include + +enum Result_Reason +{ + ResultReason_NoMatch = 0, + ResultReason_Canceled = 1, + ResultReason_RecognizingSpeech = 2, + ResultReason_RecognizedSpeech = 3, + ResultReason_RecognizingIntent = 4, + ResultReason_RecognizedIntent = 5, + ResultReason_TranslatingSpeech = 6, + ResultReason_TranslatedSpeech = 7, + ResultReason_SynthesizingAudio = 8, + ResultReason_SynthesizingAudioComplete = 9, + ResultReason_RecognizingKeyword = 10, + ResultReason_RecognizedKeyword = 11, + ResultReason_SynthesizingAudioStart = 12 +}; +typedef enum Result_Reason Result_Reason; + +enum Result_CancellationReason +{ + CancellationReason_Error = 1, + CancellationReason_EndOfStream = 2, + CancellationReason_UserCancelled = 3, +}; + +typedef enum Result_CancellationReason Result_CancellationReason; + +enum Result_CancellationErrorCode +{ + CancellationErrorCode_NoError = 0, + CancellationErrorCode_AuthenticationFailure = 1, + CancellationErrorCode_BadRequest = 2, + CancellationErrorCode_TooManyRequests = 3, + CancellationErrorCode_Forbidden = 4, + CancellationErrorCode_ConnectionFailure = 5, + CancellationErrorCode_ServiceTimeout = 6, + CancellationErrorCode_ServiceError = 7, + CancellationErrorCode_ServiceUnavailable = 8, + CancellationErrorCode_RuntimeError = 9 +}; +typedef enum Result_CancellationErrorCode Result_CancellationErrorCode; + +enum Result_NoMatchReason +{ + NoMatchReason_NotRecognized = 1, + NoMatchReason_InitialSilenceTimeout = 2, + NoMatchReason_InitialBabbleTimeout = 3, + NoMatchReason_KeywordNotRecognized = 4, + NoMatchReason_EndSilenceTimeout = 5 +}; +typedef enum Result_NoMatchReason Result_NoMatchReason; + +enum Synthesis_VoiceType +{ + SynthesisVoiceType_OnlineNeural = 1, + SynthesisVoiceType_OnlineStandard = 2, + SynthesisVoiceType_OfflineNeural = 3, + SynthesisVoiceType_OfflineStandard = 4 +}; +typedef enum Synthesis_VoiceType Synthesis_VoiceType; + +SPXAPI result_get_reason(SPXRESULTHANDLE hresult, Result_Reason* reason); +SPXAPI result_get_reason_canceled(SPXRESULTHANDLE hresult, Result_CancellationReason* reason); +SPXAPI result_get_canceled_error_code(SPXRESULTHANDLE hresult, Result_CancellationErrorCode* errorCode); +SPXAPI result_get_no_match_reason(SPXRESULTHANDLE hresult, Result_NoMatchReason* reason); + +SPXAPI result_get_result_id(SPXRESULTHANDLE hresult, char* pszResultId, uint32_t cchResultId); + +SPXAPI result_get_text(SPXRESULTHANDLE hresult, char* pszText, uint32_t cchText); +SPXAPI result_get_offset(SPXRESULTHANDLE hresult, uint64_t* offset); +SPXAPI result_get_duration(SPXRESULTHANDLE hresult, uint64_t* duration); +SPXAPI result_get_channel(SPXRESULTHANDLE hresult, uint32_t* channel); + +SPXAPI result_get_property_bag(SPXRESULTHANDLE hresult, SPXPROPERTYBAGHANDLE* hpropbag); + +SPXAPI synth_result_get_result_id(SPXRESULTHANDLE hresult, char* resultId, uint32_t resultIdLength); +SPXAPI synth_result_get_reason(SPXRESULTHANDLE hresult, Result_Reason* reason); +SPXAPI synth_result_get_reason_canceled(SPXRESULTHANDLE hresult, Result_CancellationReason* reason); +SPXAPI synth_result_get_canceled_error_code(SPXRESULTHANDLE hresult, Result_CancellationErrorCode* errorCode); +SPXAPI synth_result_get_audio_data(SPXRESULTHANDLE hresult, uint8_t* buffer, uint32_t bufferSize, uint32_t* filledSize); +SPXAPI synth_result_get_audio_length_duration(SPXRESULTHANDLE hresult, uint32_t* audioLength, uint64_t* audioDuration); +SPXAPI synth_result_get_audio_format(SPXRESULTHANDLE hresult, SPXAUDIOSTREAMFORMATHANDLE* hformat); +SPXAPI synth_result_get_property_bag(SPXRESULTHANDLE hresult, SPXPROPERTYBAGHANDLE* hpropbag); + +SPXAPI synthesis_voices_result_get_result_id(SPXRESULTHANDLE hresult, char* resultId, uint32_t resultIdLength); +SPXAPI synthesis_voices_result_get_reason(SPXRESULTHANDLE hresult, Result_Reason* reason); +SPXAPI synthesis_voices_result_get_voice_num(SPXRESULTHANDLE hresult, uint32_t* voiceNum); +SPXAPI synthesis_voices_result_get_voice_info(SPXRESULTHANDLE hresult, uint32_t index, SPXRESULTHANDLE* hVoiceInfo); +SPXAPI synthesis_voices_result_get_property_bag(SPXRESULTHANDLE hresult, SPXPROPERTYBAGHANDLE* hpropbag); + +SPXAPI voice_info_handle_release(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_name(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_locale(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_short_name(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_local_name(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_style_list(SPXRESULTHANDLE hVoiceInfo); +SPXAPI__(const char*) voice_info_get_voice_path(SPXRESULTHANDLE hVoiceInfo); +SPXAPI voice_info_get_voice_type(SPXRESULTHANDLE hVoiceInfo, Synthesis_VoiceType* voiceType); +SPXAPI voice_info_get_property_bag(SPXRESULTHANDLE hVoiceInfo, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_session.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_session.h new file mode 100644 index 0000000..c0a8186 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_session.h @@ -0,0 +1,16 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_session.h: Public API declarations for Session related C methods +// + +#pragma once +#include + +SPXAPI session_from_recognizer(SPXRECOHANDLE hreco, SPXSESSIONHANDLE* phsession); + +SPXAPI_(bool) session_handle_is_valid(SPXSESSIONHANDLE hsession); +SPXAPI session_handle_release(SPXSESSIONHANDLE hsession); + +SPXAPI session_get_property_bag(SPXSESSIONHANDLE hsession, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_source_lang_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_source_lang_config.h new file mode 100644 index 0000000..53da418 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_source_lang_config.h @@ -0,0 +1,13 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI source_lang_config_from_language(SPXSOURCELANGCONFIGHANDLE* hconfig, const char* language); +SPXAPI source_lang_config_from_language_and_endpointId(SPXSOURCELANGCONFIGHANDLE* hconfig, const char* language, const char* endpointId); +SPXAPI_(bool) source_lang_config_is_handle_valid(SPXSOURCELANGCONFIGHANDLE hconfig); +SPXAPI source_lang_config_release(SPXSOURCELANGCONFIGHANDLE hconfig); +SPXAPI source_lang_config_get_property_bag(SPXSOURCELANGCONFIGHANDLE hconfig, SPXPROPERTYBAGHANDLE* hpropbag); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_speaker_recognition.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speaker_recognition.h new file mode 100644 index 0000000..84d4b74 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speaker_recognition.h @@ -0,0 +1,37 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_speaker_recogntion.h: c API declarations for speaker recognition. +// + +#pragma once + +#include + +SPXAPI create_voice_profile_client_from_config(SPXVOICEPROFILECLIENTHANDLE* phclient, SPXSPEECHCONFIGHANDLE hSpeechConfig); +SPXAPI voice_profile_client_release_handle(SPXVOICEPROFILECLIENTHANDLE hVoiceClient); +SPXAPI create_voice_profile(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, int id, const char* locale, SPXVOICEPROFILEHANDLE* pProfileHandle); + +SPXAPI enroll_voice_profile(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, SPXVOICEPROFILEHANDLE hProfileHandle, SPXAUDIOCONFIGHANDLE hAudioInput, SPXRESULTHANDLE* phresult); +SPXAPI voice_profile_client_get_property_bag(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI create_voice_profile_from_id_and_type(SPXVOICEPROFILEHANDLE* phVoiceProfile, const char* id, int type); +SPXAPI voice_profile_get_id(SPXVOICEPROFILEHANDLE hVoiceProfile, char* psz, uint32_t* pcch); +SPXAPI voice_profile_get_type(SPXVOICEPROFILEHANDLE hVoiceProfile, int* ptype); +SPXAPI voice_profile_release_handle(SPXVOICEPROFILEHANDLE hVoiceProfile); +SPXAPI voice_profile_get_property_bag(SPXVOICEPROFILEHANDLE voiceprofilehandle, SPXPROPERTYBAGHANDLE* pProperties); +SPXAPI delete_voice_profile(SPXVOICEPROFILECLIENTHANDLE hclient, SPXVOICEPROFILEHANDLE hProfileHandle, SPXRESULTHANDLE* phresult); +SPXAPI reset_voice_profile(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, SPXVOICEPROFILEHANDLE hProfileHandle, SPXRESULTHANDLE* phresult); +SPXAPI get_profiles_json(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, int type, char** ppsz, size_t* pcch); +SPXAPI retrieve_enrollment_result(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, const char* pId, int type, SPXVOICEPROFILEHANDLE* phVoiceProfile); +SPXAPI get_activation_phrases(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient, const char* pLocale, int type, SPXRESULTHANDLE* phresult); +SPXAPI recognizer_create_speaker_recognizer_from_config(SPXSPEAKERIDHANDLE* phspeakerid, SPXSPEECHCONFIGHANDLE hspeechconfig, SPXAUDIOCONFIGHANDLE haudioInput); +SPXAPI speaker_recognizer_release_handle(SPXSPEAKERIDHANDLE phspeakerid); +SPXAPI speaker_recognizer_get_property_bag(SPXSPEAKERIDHANDLE phspeakerid, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI speaker_identification_model_create(SPXSIMODELHANDLE* psimodel); +SPXAPI speaker_identification_model_add_profile(SPXSIMODELHANDLE hsimodel, SPXVOICEPROFILEHANDLE hprofile); +SPXAPI speaker_identification_model_release_handle(SPXSIMODELHANDLE hmodel); +SPXAPI speaker_recognizer_identify(SPXSPEAKERIDHANDLE phspeakerid, SPXSIMODELHANDLE hsimodel, SPXRESULTHANDLE* phresult); +SPXAPI speaker_recognizer_verify(SPXSPEAKERIDHANDLE phspeakerid, SPXSVMODELHANDLE hsvmodel, SPXRESULTHANDLE* phresult); +SPXAPI speaker_verification_model_create(SPXSVMODELHANDLE* psvmodel, SPXVOICEPROFILEHANDLE hprofile); +SPXAPI speaker_verification_model_release_handle(SPXSVMODELHANDLE hsvmodel); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_config.h new file mode 100644 index 0000000..ef2c521 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_config.h @@ -0,0 +1,171 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +typedef enum { SpeechOutputFormat_Simple = 0, SpeechOutputFormat_Detailed = 1 } SpeechOutputFormat; + +typedef enum +{ + // raw-8khz-8bit-mono-mulaw + SpeechSynthesisOutputFormat_Raw8Khz8BitMonoMULaw = 1, + + // riff-16khz-16kbps-mono-siren + // Unsupported by the service. Do not use this value. + SpeechSynthesisOutputFormat_Riff16Khz16KbpsMonoSiren = 2, + + // audio-16khz-16kbps-mono-siren + // Unsupported by the service. Do not use this value. + SpeechSynthesisOutputFormat_Audio16Khz16KbpsMonoSiren = 3, + + // audio-16khz-32kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio16Khz32KBitRateMonoMp3 = 4, + + // audio-16khz-128kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio16Khz128KBitRateMonoMp3 = 5, + + // audio-16khz-64kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio16Khz64KBitRateMonoMp3 = 6, + + // audio-24khz-48kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio24Khz48KBitRateMonoMp3 = 7, + + // audio-24khz-96kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio24Khz96KBitRateMonoMp3 = 8, + + // audio-24khz-160kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio24Khz160KBitRateMonoMp3 = 9, + + // raw-16khz-16bit-mono-truesilk + SpeechSynthesisOutputFormat_Raw16Khz16BitMonoTrueSilk = 10, + + // riff-16khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Riff16Khz16BitMonoPcm = 11, + + // riff-8khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Riff8Khz16BitMonoPcm = 12, + + // riff-24khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Riff24Khz16BitMonoPcm = 13, + + // riff-8khz-8bit-mono-mulaw + SpeechSynthesisOutputFormat_Riff8Khz8BitMonoMULaw = 14, + + // raw-16khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Raw16Khz16BitMonoPcm = 15, + + // raw-24khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Raw24Khz16BitMonoPcm = 16, + + // raw-8khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Raw8Khz16BitMonoPcm = 17, + + // ogg-16khz-16bit-mono-opus + SpeechSynthesisOutputFormat_Ogg16khz16BitMonoOpus = 18, + + // ogg-24khz-24bit-mono-opus + SpeechSynthesisOutputFormat_Ogg24Khz16BitMonoOpus = 19, + + // raw-48khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Raw48Khz16BitMonoPcm = 20, + + // riff-48khz-16bit-mono-pcm + SpeechSynthesisOutputFormat_Riff48Khz16BitMonoPcm = 21, + + // audio-48khz-96kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio48Khz96KBitRateMonoMp3 = 22, + + // audio-48khz-192kbitrate-mono-mp3 + SpeechSynthesisOutputFormat_Audio48Khz192KBitRateMonoMp3 = 23, + + // ogg-48khz-16bit-mono-opus + SpeechSynthesisOutputFormat_Ogg48Khz16BitMonoOpus = 24, + + // webm-16khz-16bit-mono-opus + SpeechSynthesisOutputFormat_Webm16Khz16BitMonoOpus = 25, + + // webm-24khz-16bit-mono-opus + SpeechSynthesisOutputFormat_Webm24Khz16BitMonoOpus = 26, + + // raw-24khz-16bit-mono-truesilk + SpeechSynthesisOutputFormat_Raw24Khz16BitMonoTrueSilk = 27, + + // raw-8khz-8bit-mono-alaw + SpeechSynthesisOutputFormat_Raw8Khz8BitMonoALaw = 28, + + // riff-8khz-8bit-mono-alaw + SpeechSynthesisOutputFormat_Riff8Khz8BitMonoALaw = 29, + + // webm-24khz-16bit-24kbps-mono-opus + // Audio compressed by OPUS codec in a WebM container, with bitrate of 24kbps, optimized for IoT scenario. + SpeechSynthesisOutputFormat_Webm24Khz16Bit24KbpsMonoOpus = 30, + + // audio-16khz-16bit-32kbps-mono-opus + // Audio compressed by OPUS codec without container, with bitrate of 32kbps. + SpeechSynthesisOutputFormat_Audio16Khz16Bit32KbpsMonoOpus = 31, + + // audio-24khz-48bit-mono-opus + // Audio compressed by OPUS codec without container, with bitrate of 48kbps. + SpeechSynthesisOutputFormat_Audio24Khz16Bit48KbpsMonoOpus = 32, + + // audio-24khz-24bit-mono-opus + // Audio compressed by OPUS codec without container, with bitrate of 24kbps. + SpeechSynthesisOutputFormat_Audio24Khz16Bit24KbpsMonoOpus = 33, + + // raw-22050hz-16bit-mono-pcm + // Raw PCM audio at 22050Hz sampling rate and 16-bit depth. + SpeechSynthesisOutputFormat_Raw22050Hz16BitMonoPcm = 34, + + // riff-22050hz-16bit-mono-pcm + // PCM audio at 22050Hz sampling rate and 16-bit depth, with RIFF header. + SpeechSynthesisOutputFormat_Riff22050Hz16BitMonoPcm = 35, + + // raw-44100hz-16bit-mono-pcm + // Raw PCM audio at 44100Hz sampling rate and 16-bit depth. + SpeechSynthesisOutputFormat_Raw44100Hz16BitMonoPcm = 36, + + // riff-44100hz-16bit-mono-pcm + // PCM audio at 44100Hz sampling rate and 16-bit depth, with RIFF header. + SpeechSynthesisOutputFormat_Riff44100Hz16BitMonoPcm = 37, + + /// amr-wb-16000hz + /// AMR-WB audio at 16kHz sampling rate. + /// (Added in 1.24.0) + SpeechSynthesisOutputFormat_AmrWb16000Hz = 38, + + /// g722-16khz-64kbps + /// G.722 audio at 16kHz sampling rate and 64kbps bitrate. + /// (Added in 1.38.0) + SpeechSynthesisOutputFormat_G72216Khz64Kbps = 39, +} Speech_Synthesis_Output_Format; + +typedef enum +{ + // Using URI query parameter to pass property settings to service. + SpeechConfig_ServicePropertyChannel_UriQueryParameter = 0, + + // Using HttpHeader to set a key/value in a HTTP header. + SpeechConfig_ServicePropertyChannel_HttpHeader = 1 +} SpeechConfig_ServicePropertyChannel; + +typedef enum +{ + SpeechConfig_ProfanityMasked = 0, + SpeechConfig_ProfanityRemoved = 1, + SpeechConfig_ProfanityRaw = 2 +} SpeechConfig_ProfanityOption; + +SPXAPI_(bool) speech_config_is_handle_valid(SPXSPEECHCONFIGHANDLE hconfig); +SPXAPI speech_config_from_subscription(SPXSPEECHCONFIGHANDLE* hconfig, const char* subscription, const char* region); +SPXAPI speech_config_from_authorization_token(SPXSPEECHCONFIGHANDLE* hconfig, const char* authToken, const char* region); +SPXAPI speech_config_from_endpoint(SPXSPEECHCONFIGHANDLE * hconfig, const char* endpoint, const char* subscription); +SPXAPI speech_config_from_host(SPXSPEECHCONFIGHANDLE* hconfig, const char* host, const char* subscription); +SPXAPI speech_config_release(SPXSPEECHCONFIGHANDLE hconfig); +SPXAPI speech_config_get_property_bag(SPXSPEECHCONFIGHANDLE hconfig, SPXPROPERTYBAGHANDLE* hpropbag); +SPXAPI speech_config_set_audio_output_format(SPXSPEECHCONFIGHANDLE hconfig, Speech_Synthesis_Output_Format formatId); +SPXAPI speech_config_set_service_property(SPXSPEECHCONFIGHANDLE configHandle, const char* propertyName, const char* propertyValue, SpeechConfig_ServicePropertyChannel channel); +SPXAPI speech_config_set_profanity(SPXSPEECHCONFIGHANDLE configHandle, SpeechConfig_ProfanityOption profanity); + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_recognition_model.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_recognition_model.h new file mode 100644 index 0000000..0c0dada --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_recognition_model.h @@ -0,0 +1,13 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI speech_recognition_model_handle_release(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_recognition_model_get_name(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_recognition_model_get_locales(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_recognition_model_get_path(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_recognition_model_get_version(SPXSPEECHRECOMODELHANDLE hmodel); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_config.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_config.h new file mode 100644 index 0000000..ed2ea7c --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_config.h @@ -0,0 +1,16 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI speech_translation_config_from_subscription(SPXSPEECHCONFIGHANDLE* configHandle, const char* subscription, const char* region); +SPXAPI speech_translation_config_from_authorization_token(SPXSPEECHCONFIGHANDLE* configHandle, const char* authToken, const char* region); +SPXAPI speech_translation_config_from_endpoint(SPXSPEECHCONFIGHANDLE* configHandle, const char* endpoint, const char* subscription); +SPXAPI speech_translation_config_from_host(SPXSPEECHCONFIGHANDLE* configHandle, const char* host, const char* subscription); + +SPXAPI speech_translation_config_add_target_language(SPXSPEECHCONFIGHANDLE configHandle, const char* language); +SPXAPI speech_translation_config_remove_target_language(SPXSPEECHCONFIGHANDLE configHandle, const char* language); +SPXAPI speech_translation_config_set_custom_model_category_id(SPXSPEECHCONFIGHANDLE configHandle, const char* categoryId); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_model.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_model.h new file mode 100644 index 0000000..cca8d4d --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_speech_translation_model.h @@ -0,0 +1,14 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI speech_translation_model_handle_release(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_translation_model_get_name(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_translation_model_get_source_languages(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_translation_model_get_target_languages(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_translation_model_get_path(SPXSPEECHRECOMODELHANDLE hmodel); +SPXAPI__(const char*) speech_translation_model_get_version(SPXSPEECHRECOMODELHANDLE hmodel); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesis_request.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesis_request.h new file mode 100644 index 0000000..90af519 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesis_request.h @@ -0,0 +1,17 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI speech_synthesis_request_create(bool textStreamingEnabled, bool isSSML, const char* inputText, uint32_t textLength, SPXREQUESTHANDLE* hrequest); +SPXAPI speech_synthesis_request_set_voice(SPXREQUESTHANDLE hrequest, const char* voice, const char* personalVoice, const char* modelName); +SPXAPI speech_synthesis_request_send_text_piece(SPXREQUESTHANDLE hrequest, const char* text, uint32_t textLength); +SPXAPI speech_synthesis_request_finish(SPXREQUESTHANDLE hrequest); +SPXAPI speech_synthesis_request_handle_is_valid(SPXREQUESTHANDLE hrequest); +SPXAPI speech_synthesis_request_release(SPXREQUESTHANDLE hrequest); + +SPXAPI speech_synthesis_request_get_property_bag(SPXREQUESTHANDLE hrequest, SPXPROPERTYBAGHANDLE* hpropbag); + diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesizer.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesizer.h new file mode 100644 index 0000000..6e61f5b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_synthesizer.h @@ -0,0 +1,75 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_synthesizer.h: Public API declarations for Synthesizer related C methods and typedefs +// + +#pragma once +#include +#include +#include + + +enum SpeechSynthesis_BoundaryType +{ + SpeechSynthesis_BoundaryType_Word = 0, + SpeechSynthesis_BoundaryType_Punctuation = 1, + SpeechSynthesis_BoundaryType_Sentence = 2 +}; +typedef enum SpeechSynthesis_BoundaryType SpeechSynthesis_BoundaryType; + +SPXAPI_(bool) synthesizer_handle_is_valid(SPXSYNTHHANDLE hsynth); +SPXAPI synthesizer_handle_release(SPXSYNTHHANDLE hsynth); + +SPXAPI_(bool) synthesizer_async_handle_is_valid(SPXASYNCHANDLE hasync); +SPXAPI synthesizer_async_handle_release(SPXASYNCHANDLE hasync); + +SPXAPI_(bool) synthesizer_result_handle_is_valid(SPXRESULTHANDLE hresult); +SPXAPI synthesizer_result_handle_release(SPXRESULTHANDLE hresult); + +SPXAPI_(bool) synthesizer_event_handle_is_valid(SPXEVENTHANDLE hevent); +SPXAPI synthesizer_event_handle_release(SPXEVENTHANDLE hevent); + +SPXAPI synthesizer_get_property_bag(SPXSYNTHHANDLE hsynth, SPXPROPERTYBAGHANDLE* hpropbag); + +SPXAPI synthesizer_speak_text(SPXSYNTHHANDLE hsynth, const char* text, uint32_t textLength, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_speak_ssml(SPXSYNTHHANDLE hsynth, const char* ssml, uint32_t ssmlLength, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_speak_request(SPXSYNTHHANDLE hsynth, SPXREQUESTHANDLE hrequest, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_speak_text_async(SPXSYNTHHANDLE hsynth, const char* text, uint32_t textLength, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_speak_ssml_async(SPXSYNTHHANDLE hsynth, const char* ssml, uint32_t ssmlLength, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_speak_request_async(SPXSYNTHHANDLE hsynth, SPXREQUESTHANDLE hrequest, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_start_speaking_text(SPXSYNTHHANDLE hsynth, const char* text, uint32_t textLength, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_start_speaking_ssml(SPXSYNTHHANDLE hsynth, const char* ssml, uint32_t ssmlLength, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_start_speaking_request(SPXSYNTHHANDLE hsynth, SPXREQUESTHANDLE hrequest, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_start_speaking_text_async(SPXSYNTHHANDLE hsynth, const char* text, uint32_t textLength, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_start_speaking_ssml_async(SPXSYNTHHANDLE hsynth, const char* ssml, uint32_t ssmlLength, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_speak_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_stop_speaking(SPXSYNTHHANDLE hsynth); +SPXAPI synthesizer_stop_speaking_async(SPXSYNTHHANDLE hsynth, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_stop_speaking_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds); + +SPXAPI synthesizer_get_voices_list(SPXSYNTHHANDLE hsynth, const char* locale, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_get_voices_list_async(SPXSYNTHHANDLE hsynth, const char* locale, SPXASYNCHANDLE* phasync); +SPXAPI synthesizer_get_voices_list_async_wait_for(SPXASYNCHANDLE hasync, uint32_t milliseconds, SPXRESULTHANDLE* phresult); + +typedef void(*PSYNTHESIS_CALLBACK_FUNC)(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext); +SPXAPI synthesizer_started_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_token_request_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_synthesizing_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_completed_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_canceled_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_word_boundary_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_viseme_received_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_bookmark_reached_set_callback(SPXSYNTHHANDLE hsynth, PSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); +SPXAPI synthesizer_connection_connected_set_callback(SPXCONNECTIONHANDLE hConnection, CONNECTION_CALLBACK_FUNC pCallback, void * pvContext); +SPXAPI synthesizer_connection_disconnected_set_callback(SPXCONNECTIONHANDLE hConnection, CONNECTION_CALLBACK_FUNC pCallback, void * pvContext); + +SPXAPI synthesizer_synthesis_event_get_result(SPXEVENTHANDLE hevent, SPXRESULTHANDLE* phresult); +SPXAPI synthesizer_word_boundary_event_get_values(SPXEVENTHANDLE hevent, uint64_t *pAudioOffset, uint64_t *pDuration, + uint32_t *pTextOffset, uint32_t *pWordLength, SpeechSynthesis_BoundaryType *pBoundaryType); +SPXAPI synthesizer_event_get_result_id(SPXEVENTHANDLE hEvent, char* resultId, uint32_t resultIdLength); +SPXAPI__(const char*) synthesizer_event_get_text(SPXEVENTHANDLE hEvent); +SPXAPI synthesizer_viseme_event_get_values(SPXEVENTHANDLE hevent, uint64_t* pAudioOffset, uint32_t* pVisemeId); +SPXAPI__(const char*) synthesizer_viseme_event_get_animation(SPXEVENTHANDLE hEvent); +SPXAPI synthesizer_bookmark_event_get_values(SPXEVENTHANDLE hevent, uint64_t* pAudioOffset); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_recognizer.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_recognizer.h new file mode 100644 index 0000000..8912ffe --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_recognizer.h @@ -0,0 +1,17 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + + +#pragma once +#include + + +// Todo: Translation recognizer management API. + +typedef void(*PTRANSLATIONSYNTHESIS_CALLBACK_FUNC)(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext); +SPXAPI translator_synthesizing_audio_set_callback(SPXRECOHANDLE hreco, PTRANSLATIONSYNTHESIS_CALLBACK_FUNC pCallback, void* pvContext); + +SPXAPI translator_add_target_language(SPXRECOHANDLE hreco, const char* language); +SPXAPI translator_remove_target_language(SPXRECOHANDLE hreco, const char* language); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_result.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_result.h new file mode 100644 index 0000000..60bcae0 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_translation_result.h @@ -0,0 +1,14 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include + +SPXAPI translation_text_result_get_translation_count(SPXRESULTHANDLE handle, size_t * size); +SPXAPI translation_text_result_get_translation(SPXRESULTHANDLE handle, size_t index, char * language, char * text, size_t * language_size, size_t * text_size); + +// audioBuffer: point to the header for storing synthesis audio data. The parameter lengthPointer points to the variable saving the size of buffer. On return, *lengthPointer is set to the size of the buffer returned. +// If textBuffer is nullptr or the length is smaller than the size required, the function returns SPXERR_BUFFER_TOO_SMALL. +SPXAPI translation_synthesis_result_get_audio_data(SPXRESULTHANDLE handle, uint8_t* audioBuffer, size_t* lengthPointer); diff --git a/third_party/azure_speech_sdk/include/c_api/speechapi_c_user.h b/third_party/azure_speech_sdk/include/c_api/speechapi_c_user.h new file mode 100644 index 0000000..bd4d705 --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/speechapi_c_user.h @@ -0,0 +1,13 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_c_user.h: Public API declarations for user related C methods and enumerations +// + +#pragma once +#include + +SPXAPI user_create_from_id(const char* user_id, SPXUSERHANDLE* huser); +SPXAPI user_release_handle(SPXUSERHANDLE huser); +SPXAPI user_get_id(SPXUSERHANDLE huser, char* user_id, size_t user_id_size); diff --git a/third_party/azure_speech_sdk/include/c_api/spxdebug.h b/third_party/azure_speech_sdk/include/c_api/spxdebug.h new file mode 100644 index 0000000..6e0131b --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/spxdebug.h @@ -0,0 +1,548 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// spxdebug.h: Public API definitions for global C Trace/Debug methods and related #defines +// + +#pragma once + +//------------------------------------------------------- +// Re-enabled ability to compile out all macros... +// However, currently still need to keep all macros until +// final review of all macros is complete. +//------------------------------------------------------- +#define SPX_CONFIG_TRACE_INCLUDE_DBG_WITH_ALL 1 + +#ifdef SPX_CONFIG_TRACE_INCLUDE_DBG_WITH_ALL +#if defined(SPX_CONFIG_TRACE_ALL) && !defined(SPX_CONFIG_DBG_TRACE_ALL) && (!defined(DEBUG) || !defined(_DEBUG)) +#define SPX_CONFIG_DBG_TRACE_ALL 1 +#endif +#endif + +//------------------------------------------------------- +// SPX_ and AZAC_ compatibility section +// (must preceed #include ) +//------------------------------------------------------- + +#if defined(SPX_CONFIG_DBG_TRACE_ALL) && !defined(AZAC_CONFIG_DBG_TRACE_ALL) +#define AZAC_CONFIG_DBG_TRACE_ALL SPX_CONFIG_DBG_TRACE_ALL +#elif !defined(SPX_CONFIG_DBG_TRACE_ALL) && defined(AZAC_CONFIG_DBG_TRACE_ALL) +#define SPX_CONFIG_DBG_TRACE_ALL AZAC_CONFIG_DBG_TRACE_ALL +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_VERBOSE) && !defined(AZAC_CONFIG_DBG_TRACE_VERBOSE) +#define AZAC_CONFIG_DBG_TRACE_VERBOSE SPX_CONFIG_DBG_TRACE_VERBOSE +#elif !defined(SPX_CONFIG_DBG_TRACE_VERBOSE) && defined(AZAC_CONFIG_DBG_TRACE_VERBOSE) +#define SPX_CONFIG_DBG_TRACE_VERBOSE AZAC_CONFIG_DBG_TRACE_VERBOSE +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_INFO) && !defined(AZAC_CONFIG_DBG_TRACE_INFO) +#define AZAC_CONFIG_DBG_TRACE_INFO SPX_CONFIG_DBG_TRACE_INFO +#elif !defined(SPX_CONFIG_DBG_TRACE_INFO) && defined(AZAC_CONFIG_DBG_TRACE_INFO) +#define SPX_CONFIG_DBG_TRACE_INFO AZAC_CONFIG_DBG_TRACE_INFO +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_WARNING) && !defined(AZAC_CONFIG_DBG_TRACE_WARNING) +#define AZAC_CONFIG_DBG_TRACE_WARNING SPX_CONFIG_DBG_TRACE_WARNING +#elif !defined(SPX_CONFIG_DBG_TRACE_WARNING) && defined(AZAC_CONFIG_DBG_TRACE_WARNING) +#define SPX_CONFIG_DBG_TRACE_WARNING AZAC_CONFIG_DBG_TRACE_WARNING +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_ERROR) && !defined(AZAC_CONFIG_DBG_TRACE_ERROR) +#define AZAC_CONFIG_DBG_TRACE_ERROR SPX_CONFIG_DBG_TRACE_ERROR +#elif !defined(SPX_CONFIG_DBG_TRACE_ERROR) && defined(AZAC_CONFIG_DBG_TRACE_ERROR) +#define SPX_CONFIG_DBG_TRACE_ERROR AZAC_CONFIG_DBG_TRACE_ERROR +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_FUNCTION) && !defined(AZAC_CONFIG_DBG_TRACE_FUNCTION) +#define AZAC_CONFIG_DBG_TRACE_FUNCTION SPX_CONFIG_DBG_TRACE_FUNCTION +#elif !defined(SPX_CONFIG_DBG_TRACE_FUNCTION) && defined(AZAC_CONFIG_DBG_TRACE_FUNCTION) +#define SPX_CONFIG_DBG_TRACE_FUNCTION AZAC_CONFIG_DBG_TRACE_FUNCTION +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_SCOPE) && !defined(AZAC_CONFIG_DBG_TRACE_SCOPE) +#define AZAC_CONFIG_DBG_TRACE_SCOPE SPX_CONFIG_DBG_TRACE_SCOPE +#elif !defined(SPX_CONFIG_DBG_TRACE_SCOPE) && defined(AZAC_CONFIG_DBG_TRACE_SCOPE) +#define SPX_CONFIG_DBG_TRACE_SCOPE AZAC_CONFIG_DBG_TRACE_SCOPE +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_ASSERT) && !defined(AZAC_CONFIG_DBG_TRACE_ASSERT) +#define AZAC_CONFIG_DBG_TRACE_ASSERT SPX_CONFIG_DBG_TRACE_ASSERT +#elif !defined(SPX_CONFIG_DBG_TRACE_ASSERT) && defined(AZAC_CONFIG_DBG_TRACE_ASSERT) +#define SPX_CONFIG_DBG_TRACE_ASSERT AZAC_CONFIG_DBG_TRACE_ASSERT +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_VERIFY) && !defined(AZAC_CONFIG_DBG_TRACE_VERIFY) +#define AZAC_CONFIG_DBG_TRACE_VERIFY SPX_CONFIG_DBG_TRACE_VERIFY +#elif !defined(SPX_CONFIG_DBG_TRACE_VERIFY) && defined(AZAC_CONFIG_DBG_TRACE_VERIFY) +#define SPX_CONFIG_DBG_TRACE_VERIFY AZAC_CONFIG_DBG_TRACE_VERIFY +#endif + +#if defined(SPX_CONFIG_TRACE_ALL) && !defined(AZAC_CONFIG_TRACE_ALL) +#define AZAC_CONFIG_TRACE_ALL SPX_CONFIG_TRACE_ALL +#elif !defined(SPX_CONFIG_TRACE_ALL) && defined(AZAC_CONFIG_TRACE_ALL) +#define SPX_CONFIG_TRACE_ALL AZAC_CONFIG_TRACE_ALL +#endif + +#if defined(SPX_CONFIG_TRACE_VERBOSE) && !defined(AZAC_CONFIG_TRACE_VERBOSE) +#define AZAC_CONFIG_TRACE_VERBOSE SPX_CONFIG_TRACE_VERBOSE +#elif !defined(SPX_CONFIG_TRACE_VERBOSE) && defined(AZAC_CONFIG_TRACE_VERBOSE) +#define SPX_CONFIG_TRACE_VERBOSE AZAC_CONFIG_TRACE_VERBOSE +#endif + +#if defined(SPX_CONFIG_TRACE_INFO) && !defined(AZAC_CONFIG_TRACE_INFO) +#define AZAC_CONFIG_TRACE_INFO SPX_CONFIG_TRACE_INFO +#elif !defined(SPX_CONFIG_TRACE_INFO) && defined(AZAC_CONFIG_TRACE_INFO) +#define SPX_CONFIG_TRACE_INFO AZAC_CONFIG_TRACE_INFO +#endif + +#if defined(SPX_CONFIG_TRACE_WARNING) && !defined(AZAC_CONFIG_TRACE_WARNING) +#define AZAC_CONFIG_TRACE_WARNING SPX_CONFIG_TRACE_WARNING +#elif !defined(SPX_CONFIG_TRACE_WARNING) && defined(AZAC_CONFIG_TRACE_WARNING) +#define SPX_CONFIG_TRACE_WARNING AZAC_CONFIG_TRACE_WARNING +#endif + +#if defined(SPX_CONFIG_TRACE_ERROR) && !defined(AZAC_CONFIG_TRACE_ERROR) +#define AZAC_CONFIG_TRACE_ERROR SPX_CONFIG_TRACE_ERROR +#elif !defined(SPX_CONFIG_TRACE_ERROR) && defined(AZAC_CONFIG_TRACE_ERROR) +#define SPX_CONFIG_TRACE_ERROR AZAC_CONFIG_TRACE_ERROR +#endif + +#if defined(SPX_CONFIG_TRACE_FUNCTION) && !defined(AZAC_CONFIG_TRACE_FUNCTION) +#define AZAC_CONFIG_TRACE_FUNCTION SPX_CONFIG_TRACE_FUNCTION +#elif !defined(SPX_CONFIG_TRACE_FUNCTION) && defined(AZAC_CONFIG_TRACE_FUNCTION) +#define SPX_CONFIG_TRACE_FUNCTION AZAC_CONFIG_TRACE_FUNCTION +#endif + +#if defined(SPX_CONFIG_TRACE_SCOPE) && !defined(AZAC_CONFIG_TRACE_SCOPE) +#define AZAC_CONFIG_TRACE_SCOPE SPX_CONFIG_TRACE_SCOPE +#elif !defined(SPX_CONFIG_TRACE_SCOPE) && defined(AZAC_CONFIG_TRACE_SCOPE) +#define SPX_CONFIG_TRACE_SCOPE AZAC_CONFIG_TRACE_SCOPE +#endif + +#if defined(SPX_CONFIG_TRACE_THROW_ON_FAIL) && !defined(AZAC_CONFIG_TRACE_THROW_ON_FAIL) +#define AZAC_CONFIG_TRACE_THROW_ON_FAIL SPX_CONFIG_TRACE_THROW_ON_FAIL +#elif !defined(SPX_CONFIG_TRACE_THROW_ON_FAIL) && defined(AZAC_CONFIG_TRACE_THROW_ON_FAIL) +#define SPX_CONFIG_TRACE_THROW_ON_FAIL AZAC_CONFIG_TRACE_THROW_ON_FAIL +#endif + +#if defined(SPX_CONFIG_TRACE_REPORT_ON_FAIL) && !defined(AZAC_CONFIG_TRACE_REPORT_ON_FAIL) +#define AZAC_CONFIG_TRACE_REPORT_ON_FAIL SPX_CONFIG_TRACE_REPORT_ON_FAIL +#elif !defined(SPX_CONFIG_TRACE_REPORT_ON_FAIL) && defined(AZAC_CONFIG_TRACE_REPORT_ON_FAIL) +#define SPX_CONFIG_TRACE_REPORT_ON_FAIL AZAC_CONFIG_TRACE_REPORT_ON_FAIL +#endif + +#if defined(SPX_CONFIG_TRACE_RETURN_ON_FAIL) && !defined(AZAC_CONFIG_TRACE_RETURN_ON_FAIL) +#define AZAC_CONFIG_TRACE_RETURN_ON_FAIL SPX_CONFIG_TRACE_RETURN_ON_FAIL +#elif !defined(SPX_CONFIG_TRACE_RETURN_ON_FAIL) && defined(AZAC_CONFIG_TRACE_RETURN_ON_FAIL) +#define SPX_CONFIG_TRACE_RETURN_ON_FAIL AZAC_CONFIG_TRACE_RETURN_ON_FAIL +#endif + +#if defined(SPX_CONFIG_TRACE_EXITFN_ON_FAIL) && !defined(AZAC_CONFIG_TRACE_EXITFN_ON_FAIL) +#define AZAC_CONFIG_TRACE_EXITFN_ON_FAIL SPX_CONFIG_TRACE_EXITFN_ON_FAIL +#elif !defined(SPX_CONFIG_TRACE_EXITFN_ON_FAIL) && defined(AZAC_CONFIG_TRACE_EXITFN_ON_FAIL) +#define SPX_CONFIG_TRACE_EXITFN_ON_FAIL AZAC_CONFIG_TRACE_EXITFN_ON_FAIL +#endif + +#if !defined(__AZAC_THROW_HR_IMPL) && defined(__SPX_THROW_HR_IMPL) +#define __AZAC_THROW_HR_IMPL __SPX_THROW_HR_IMPL +#elif !defined(__SPX_THROW_HR_IMPL) && defined(__AZAC_THROW_HR_IMPL) +#define __SPX_THROW_HR_IMPL __AZAC_THROW_HR_IMPL +#elif !defined(__AZAC_THROW_HR_IMPL) && !defined(__SPX_THROW_HR_IMPL) +#define __AZAC_THROW_HR_IMPL __azac_rethrow +#define __SPX_THROW_HR_IMPL __azac_rethrow +#else +#error Both __AZAC_THROW_HR_IMPL and __SPX_THROW_HR_IMPL cannot be defined at the same time +#endif + +//------------------------------------------------------- +// SPX_ and SPX_DBG_ macro configuration +//------------------------------------------------------- + +#ifdef SPX_CONFIG_DBG_TRACE_ALL +#define SPX_CONFIG_DBG_TRACE_VERBOSE 1 +#define SPX_CONFIG_DBG_TRACE_INFO 1 +#define SPX_CONFIG_DBG_TRACE_WARNING 1 +#define SPX_CONFIG_DBG_TRACE_ERROR 1 +#define SPX_CONFIG_DBG_TRACE_FUNCTION 1 +#define SPX_CONFIG_DBG_TRACE_SCOPE 1 +#define SPX_CONFIG_DBG_TRACE_ASSERT 1 +#define SPX_CONFIG_DBG_TRACE_VERIFY 1 +#ifndef SPX_CONFIG_TRACE_ALL +#define SPX_CONFIG_TRACE_ALL 1 +#endif +#endif // SPX_CONFIG_DBG_TRACE_ALL + +#ifdef SPX_CONFIG_TRACE_ALL +#define SPX_CONFIG_TRACE_VERBOSE 1 +#define SPX_CONFIG_TRACE_INFO 1 +#define SPX_CONFIG_TRACE_WARNING 1 +#define SPX_CONFIG_TRACE_ERROR 1 +#define SPX_CONFIG_TRACE_FUNCTION 1 +#define SPX_CONFIG_TRACE_SCOPE 1 +#define SPX_CONFIG_TRACE_THROW_ON_FAIL 1 +#define SPX_CONFIG_TRACE_REPORT_ON_FAIL 1 +#define SPX_CONFIG_TRACE_RETURN_ON_FAIL 1 +#define SPX_CONFIG_TRACE_EXITFN_ON_FAIL 1 +#endif // SPX_CONFIG_TRACE_ALL + +//------------------------------------------------------- +// #include section ... +// (must come after everything above) +//------------------------------------------------------- + +#include +#include +#include + +#ifndef _MSC_VER +// macros in this header generate a bunch of +// "ISO C++11 requires at least one argument for the "..." in a variadic macro" errors. +// system_header pragma is the only mechanism that helps to suppress them. +// https://stackoverflow.com/questions/35587137/how-to-suppress-gcc-variadic-macro-argument-warning-for-zero-arguments-for-a-par +// TODO: try to make macros standard-compliant. +#pragma GCC system_header +#endif + +//----------------------------------------------------------- +// SPX_TRACE macro common implementations +//----------------------------------------------------------- + +#define __SPX_TRACE_LEVEL_INFO __AZAC_TRACE_LEVEL_INFO // Trace_Info +#define __SPX_TRACE_LEVEL_WARNING __AZAC_TRACE_LEVEL_WARNING // Trace_Warning +#define __SPX_TRACE_LEVEL_ERROR __AZAC_TRACE_LEVEL_ERROR // Trace_Error +#define __SPX_TRACE_LEVEL_VERBOSE __AZAC_TRACE_LEVEL_VERBOSE // Trace_Verbose + +#ifndef __SPX_DO_TRACE_IMPL +#define __SPX_DO_TRACE_IMPL __AZAC_DO_TRACE_IMPL +#endif + +#define __SPX_DOTRACE(level, title, fileName, lineNumber, ...) \ + __AZAC_DOTRACE(level, title, fileName, lineNumber, ##__VA_ARGS__) + +#define __SPX_TRACE_INFO(title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_INFO(title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_INFO_IF(cond, title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_INFO_IF(cond, title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_WARNING(title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_WARNING(title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_WARNING_IF(cond, title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_WARNING_IF(cond, title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_ERROR(title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_ERROR(title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_ERROR_IF(cond, title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_ERROR_IF(cond, title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_VERBOSE(title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_VERBOSE(title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define __SPX_TRACE_VERBOSE_IF(cond, title, fileName, lineNumber, msg, ...) \ + __AZAC_TRACE_VERBOSE_IF(cond, title, fileName, lineNumber, msg, ##__VA_ARGS__) + +#define ___SPX_EXPR_AS_STRING(_String) \ + ___AZAC_EXPR_AS_STRING(_String) + +#define __SPX_EXPR_AS_STRING(_String) \ + __AZAC_EXPR_AS_STRING(_String) + +#define __SPX_TRACE_HR(title, fileName, lineNumber, hr, x) \ + __AZAC_TRACE_HR(title, fileName, lineNumber, hr, x) + +#define __SPX_REPORT_ON_FAIL(title, fileName, lineNumber, hr) \ + __AZAC_REPORT_ON_FAIL(title, fileName, lineNumber, hr) + +#define __SPX_REPORT_ON_FAIL_IFNOT(title, fileName, lineNumber, hr, hrNot) \ + __AZAC_REPORT_ON_FAIL_IFNOT(title, fileName, lineNumber, hr, hrNot) + +#define __SPX_T_RETURN_HR(title, fileName, lineNumber, hr) \ + __AZAC_T_RETURN_HR(title, fileName, lineNumber, hr) + +#define __SPX_T_RETURN_HR_IF(title, fileName, lineNumber, hr, cond) \ + __AZAC_T_RETURN_HR_IF(title, fileName, lineNumber, hr, cond) + +#define __SPX_T_RETURN_ON_FAIL(title, fileName, lineNumber, hr) \ + __AZAC_T_RETURN_ON_FAIL(title, fileName, lineNumber, hr) + +#define __SPX_T_RETURN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + __AZAC_T_RETURN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) + +#define __SPX_RETURN_HR(hr) \ + __AZAC_RETURN_HR(hr) + +#define __SPX_RETURN_HR_IF(hr, cond) \ + __AZAC_RETURN_HR_IF(hr, cond) + +#define __SPX_RETURN_ON_FAIL(hr) \ + __AZAC_RETURN_ON_FAIL(hr) + +#define __SPX_RETURN_ON_FAIL_IF_NOT(hr, hrNot) \ + __AZAC_RETURN_ON_FAIL_IF_NOT(hr, hrNot) + +#define SPX_EXITFN_CLEANUP AZAC_EXITFN_CLEANUP + +#define __SPX_T_EXITFN_HR(title, fileName, lineNumber, hr) \ + __AZAC_T_EXITFN_HR(title, fileName, lineNumber, hr) + +#define __SPX_T_EXITFN_HR_IF(title, fileName, lineNumber, hr, cond) \ + __AZAC_T_EXITFN_HR_IF(title, fileName, lineNumber, hr, cond) + +#define __SPX_T_EXITFN_ON_FAIL(title, fileName, lineNumber, hr) \ + __AZAC_T_EXITFN_ON_FAIL(title, fileName, lineNumber, hr) + +#define __SPX_T_EXITFN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + __AZAC_T_EXITFN_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) + +#define __SPX_EXITFN_HR(hr) \ + __AZAC_EXITFN_HR(hr) + +#define __SPX_EXITFN_HR_IF(hr, cond) \ + __AZAC_EXITFN_HR_IF(hr, cond) + +#define __SPX_EXITFN_ON_FAIL(hr) \ + __AZAC_EXITFN_ON_FAIL(hr) + +#define __SPX_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) \ + __AZAC_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) + +#define __SPX_TRACE_ASSERT(title, fileName, lineNumber, expr) \ + __AZAC_TRACE_ASSERT(title, fileName, lineNumber, expr) + +#define __SPX_TRACE_ASSERT_MSG(title, fileName, lineNumber, expr, ...) \ + __AZAC_TRACE_ASSERT_MSG(title, fileName, lineNumber, expr, ##__VA_ARGS__) + +#define __SPX_DBG_ASSERT(title, fileName, lineNumber, expr) \ + __AZAC_DBG_ASSERT(title, fileName, lineNumber, expr) + +#define __SPX_DBG_ASSERT_WITH_MESSAGE(title, fileName, lineNumber, expr, ...) \ + __AZAC_DBG_ASSERT_WITH_MESSAGE(title, fileName, lineNumber, expr, ##__VA_ARGS__) + +#define __SPX_DBG_VERIFY(title, fileName, lineNumber, expr) \ + __AZAC_DBG_VERIFY(title, fileName, lineNumber, expr) + +#define __SPX_DBG_VERIFY_WITH_MESSAGE(title, fileName, lineNumber, expr, ...) \ + __AZAC_DBG_VERIFY_WITH_MESSAGE(title, fileName, lineNumber, expr, ##__VA_ARGS__) + +#ifdef __cplusplus + +#define __SPX_TRACE_SCOPE(t1, fileName, lineNumber, t2, x, y) \ + __AZAC_TRACE_SCOPE(t1, fileName, lineNumber, t2, x, y) + +#ifndef __SPX_THROW_HR +#define __SPX_THROW_HR(hr) __SPX_THROW_HR_IMPL(hr) +#endif + +#define __SPX_T_THROW_ON_FAIL(title, fileName, lineNumber, hr) \ + __AZAC_T_THROW_ON_FAIL(title, fileName, lineNumber, hr) + +#define __SPX_T_THROW_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) \ + __AZAC_T_THROW_ON_FAIL_IF_NOT(title, fileName, lineNumber, hr, hrNot) + +#define __SPX_T_THROW_HR_IF(title, fileName, lineNumber, hr, cond) \ + __AZAC_T_THROW_HR_IF(title, fileName, lineNumber, hr, cond) + +#define __SPX_T_THROW_HR(title, fileName, lineNumber, hr) \ + __AZAC_T_THROW_HR(title, fileName, lineNumber, hr) + +#define __SPX_THROW_ON_FAIL(hr) \ + __AZAC_THROW_ON_FAIL(hr) + +#define __SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) \ + __AZAC_THROW_ON_FAIL_IF_NOT(hr, hrNot) + +#define __SPX_THROW_HR_IF(hr, cond) \ + __AZAC_THROW_HR_IF(hr, cond) + +#endif // __cplusplus + + +//------------------------------------------------------- +// SPX_ macro definitions +//------------------------------------------------------- + +#ifdef SPX_CONFIG_TRACE_VERBOSE +#define SPX_TRACE_VERBOSE(msg, ...) __SPX_TRACE_VERBOSE("SPX_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_TRACE_VERBOSE_IF(cond, msg, ...) __SPX_TRACE_VERBOSE_IF(cond, "SPX_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_TRACE_VERBOSE(...) +#define SPX_TRACE_VERBOSE_IF(...) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_VERBOSE +#define SPX_DBG_TRACE_VERBOSE(msg, ...) __SPX_TRACE_VERBOSE("SPX_DBG_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_DBG_TRACE_VERBOSE_IF(cond, msg, ...) __SPX_TRACE_VERBOSE_IF(cond, "SPX_DBG_TRACE_VERBOSE: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_DBG_TRACE_VERBOSE(...) +#define SPX_DBG_TRACE_VERBOSE_IF(...) +#endif + +#ifdef SPX_CONFIG_TRACE_INFO +#define SPX_TRACE_INFO(msg, ...) __SPX_TRACE_INFO("SPX_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_TRACE_INFO_IF(cond, msg, ...) __SPX_TRACE_INFO_IF(cond, "SPX_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_TRACE_INFO(...) +#define SPX_TRACE_INFO_IF(...) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_INFO +#define SPX_DBG_TRACE_INFO(msg, ...) __SPX_TRACE_INFO("SPX_DBG_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_DBG_TRACE_INFO_IF(cond, msg, ...) __SPX_TRACE_INFO_IF(cond, "SPX_DBG_TRACE_INFO: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_DBG_TRACE_INFO(...) +#define SPX_DBG_TRACE_INFO_IF(...) +#endif + +#ifdef SPX_CONFIG_TRACE_WARNING +#define SPX_TRACE_WARNING(msg, ...) __SPX_TRACE_WARNING("SPX_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_TRACE_WARNING_IF(cond, msg, ...) __SPX_TRACE_WARNING_IF(cond, "SPX_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_TRACE_WARNING(...) +#define SPX_TRACE_WARNING_IF(...) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_WARNING +#define SPX_DBG_TRACE_WARNING(msg, ...) __SPX_TRACE_WARNING("SPX_DBG_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_DBG_TRACE_WARNING_IF(cond, msg, ...) __SPX_TRACE_WARNING_IF(cond, "SPX_DBG_TRACE_WARNING:", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_DBG_TRACE_WARNING(...) +#define SPX_DBG_TRACE_WARNING_IF(...) +#endif + +#ifdef SPX_CONFIG_TRACE_ERROR +#define SPX_TRACE_ERROR(msg, ...) __SPX_TRACE_ERROR("SPX_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_TRACE_ERROR_IF(cond, msg, ...) __SPX_TRACE_ERROR_IF(cond, "SPX_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_TRACE_ERROR(...) +#define SPX_TRACE_ERROR_IF(...) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_ERROR +#define SPX_DBG_TRACE_ERROR(msg, ...) __SPX_TRACE_ERROR("SPX_DBG_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#define SPX_DBG_TRACE_ERROR_IF(cond, msg, ...) __SPX_TRACE_ERROR_IF(cond, "SPX_DBG_TRACE_ERROR: ", __FILE__, __LINE__, msg, ##__VA_ARGS__) +#else +#define SPX_DBG_TRACE_ERROR(...) +#define SPX_DBG_TRACE_ERROR_IF(...) +#endif + +#ifdef SPX_CONFIG_TRACE_FUNCTION +#define SPX_TRACE_FUNCTION(...) __SPX_TRACE_VERBOSE("SPX_TRACE_FUNCTION: ", __FILE__, __LINE__, __FUNCTION__) +#else +#define SPX_TRACE_FUNCTION(...) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_FUNCTION +#define SPX_DBG_TRACE_FUNCTION(...) __SPX_TRACE_VERBOSE("SPX_DBG_TRACE_FUNCTION: ", __FILE__, __LINE__, __FUNCTION__) +#else +#define SPX_DBG_TRACE_FUNCTION(...) +#endif + +#ifdef SPX_CONFIG_TRACE_REPORT_ON_FAIL +#define SPX_REPORT_ON_FAIL(hr) __SPX_REPORT_ON_FAIL("SPX_REPORT_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_REPORT_ON_FAIL_IFNOT(hr, hrNot) __SPX_REPORT_ON_FAIL_IFNOT("SPX_REPORT_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define SPX_REPORT_ON_FAIL(hr) UNUSED(hr) +#define SPX_REPORT_ON_FAIL_IFNOT(hr, hrNot) UNUSED(hr); UNUSED(hrNot) +#endif + +#ifdef SPX_CONFIG_TRACE_RETURN_ON_FAIL +#define SPX_RETURN_HR(hr) __SPX_T_RETURN_HR("SPX_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_RETURN_HR_IF(hr, cond) __SPX_T_RETURN_HR_IF("SPX_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr, cond) +#define SPX_RETURN_ON_FAIL(hr) __SPX_T_RETURN_ON_FAIL("SPX_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_RETURN_ON_FAIL_IF_NOT(hr, hrNot) __SPX_T_RETURN_ON_FAIL_IF_NOT("SPX_RETURN_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define SPX_RETURN_HR(hr) __SPX_RETURN_HR(hr) +#define SPX_RETURN_HR_IF(hr, cond) __SPX_RETURN_HR_IF(hr, cond) +#define SPX_RETURN_ON_FAIL(hr) __SPX_RETURN_ON_FAIL(hr) +#define SPX_RETURN_ON_FAIL_IF_NOT(hr, hrNot) __SPX_RETURN_ON_FAIL_IF_NOT(hr, hrNot) +#endif + +#define SPX_IFTRUE_RETURN_HR(cond, hr) SPX_RETURN_HR_IF(hr, cond) +#define SPX_IFFALSE_RETURN_HR(cond, hr) SPX_RETURN_HR_IF(hr, !(cond)) +#define SPX_IFFAILED_RETURN_HR(hr) SPX_RETURN_ON_FAIL(hr) +#define SPX_IFFAILED_RETURN_HR_IFNOT(hr, hrNot) SPX_RETURN_ON_FAIL_IF_NOT(hr, hrNot) + +#ifdef SPX_CONFIG_TRACE_EXITFN_ON_FAIL +#define SPX_EXITFN_HR(hr) __SPX_T_EXITFN_HR("SPX_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_EXITFN_HR_IF(hr, cond) __SPX_T_EXITFN_HR_IF("SPX_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr, cond) +#define SPX_EXITFN_ON_FAIL(hr) __SPX_T_EXITFN_ON_FAIL("SPX_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) __SPX_T_EXITFN_ON_FAIL_IF_NOT("SPX_EXITFN_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#else +#define SPX_EXITFN_HR(hr) __SPX_EXITFN_HR(hr) +#define SPX_EXITFN_HR_IF(hr, cond) __SPX_EXITFN_HR_IF(hr, cond) +#define SPX_EXITFN_ON_FAIL(hr) __SPX_EXITFN_ON_FAIL(hr) +#define SPX_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) __SPX_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) +#endif + +#define SPX_IFTRUE_EXITFN_WHR(cond, hr) SPX_EXITFN_HR_IF(hr, cond) +#define SPX_IFFALSE_EXITFN_WHR(cond, hr) SPX_EXITFN_HR_IF(hr, !(cond)) +#define SPX_IFFAILED_EXITFN_WHR(hr) SPX_EXITFN_ON_FAIL(hr) +#define SPX_IFFAILED_EXITFN_WHR_IFNOT(hr, hrNot) SPX_EXITFN_ON_FAIL_IF_NOT(hr, hrNot) + +#define SPX_IFTRUE_EXITFN_CLEANUP(cond, expr) AZAC_IFTRUE_EXITFN_CLEANUP(cond, expr) +#define SPX_IFFALSE_EXITFN_CLEANUP(cond, expr) AZAC_IFFALSE_EXITFN_CLEANUP(cond, expr) + +#if defined(SPX_CONFIG_DBG_TRACE_ASSERT) && (defined(DEBUG) || defined(_DEBUG)) +#define SPX_DBG_ASSERT(expr) __SPX_DBG_ASSERT("SPX_ASSERT: ", __FILE__, __LINE__, expr) +#define SPX_DBG_ASSERT_WITH_MESSAGE(expr, ...) __SPX_DBG_ASSERT_WITH_MESSAGE("SPX_ASSERT: ", __FILE__, __LINE__, expr, ##__VA_ARGS__) +#else +#define SPX_DBG_ASSERT(expr) +#define SPX_DBG_ASSERT_WITH_MESSAGE(expr, ...) +#endif + +#if defined(SPX_CONFIG_DBG_TRACE_VERIFY) && (defined(DEBUG) || defined(_DEBUG)) +#define SPX_DBG_VERIFY(expr) __SPX_DBG_VERIFY("SPX_VERIFY: ", __FILE__, __LINE__, expr) +#define SPX_DBG_VERIFY_WITH_MESSAGE(expr, ...) __SPX_DBG_VERIFY_WITH_MESSAGE("SPX_VERIFY: ", __FILE__, __LINE__, expr, ##__VA_ARGS__) +#else +#define SPX_DBG_VERIFY(expr) (expr) +#define SPX_DBG_VERIFY_WITH_MESSAGE(expr, ...) (expr) +#endif + +#define SPX_IFTRUE(cond, expr) AZAC_IFTRUE(cond, expr) +#define SPX_IFFALSE(cond, expr) AZAC_IFFALSE(cond, expr) + +#ifdef __cplusplus + +#ifdef SPX_CONFIG_TRACE_SCOPE +#define SPX_TRACE_SCOPE(x, y) __SPX_TRACE_SCOPE("SPX_TRACE_SCOPE_ENTER: ", __FILE__, __LINE__, "SPX_TRACE_SCOPE_EXIT: ", x, y) +#else +#define SPX_TRACE_SCOPE(x, y) +#endif + +#ifdef SPX_CONFIG_DBG_TRACE_SCOPE +#define SPX_DBG_TRACE_SCOPE(x, y) __SPX_TRACE_SCOPE("SPX_DBG_TRACE_SCOPE_ENTER: ", __FILE__, __LINE__, "SPX_DBG_TRACE_SCOPE_EXIT: ", x, y) +#else +#define SPX_DBG_TRACE_SCOPE(x, y) +#endif + +#ifdef SPX_CONFIG_TRACE_THROW_ON_FAIL +#define SPX_THROW_ON_FAIL(hr) __SPX_T_THROW_ON_FAIL("SPX_THROW_ON_FAIL: ", __FILE__, __LINE__, hr) +#define SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) __SPX_T_THROW_ON_FAIL_IF_NOT("SPX_THROW_ON_FAIL: ", __FILE__, __LINE__, hr, hrNot) +#define SPX_THROW_HR_IF(hr, cond) __SPX_T_THROW_HR_IF("SPX_THROW_HR_IF: ", __FILE__, __LINE__, hr, cond) +#define SPX_THROW_HR(hr) __SPX_T_THROW_HR("SPX_THROW_HR: ", __FILE__, __LINE__, hr) +#else +#define SPX_THROW_ON_FAIL(hr) __SPX_THROW_ON_FAIL(hr) +#define SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) __SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) +#define SPX_THROW_HR_IF(hr, cond) __SPX_THROW_HR_IF(hr, cond) +#define SPX_THROW_HR(hr) __SPX_THROW_HR(hr) +#endif + +#define SPX_IFFAILED_THROW_HR(hr) SPX_THROW_ON_FAIL(hr) +#define SPX_IFFAILED_THROW_HR_IFNOT(hr, hrNot) SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) + +#else // __cplusplus + +#define SPX_TRACE_SCOPE(x, y) static_assert(false) +#define SPX_DBG_TRACE_SCOPE(x, y) static_assert(false) +#define SPX_THROW_ON_FAIL(hr) static_assert(false) +#define SPX_THROW_ON_FAIL_IF_NOT(hr, hrNot) static_assert(false) +#define SPX_THROW_HR_IF(hr, cond) static_assert(false) +#define SPX_THROW_HR(hr) static_assert(false) +#define SPX_IFFAILED_THROW_HR(hr) static_assert(false) +#define SPX_IFFAILED_THROW_HR_IFNOT(hr, hrNot) static_assert(false) + +#endif // __cplusplus diff --git a/third_party/azure_speech_sdk/include/c_api/spxerror.h b/third_party/azure_speech_sdk/include/c_api/spxerror.h new file mode 100644 index 0000000..1d266fd --- /dev/null +++ b/third_party/azure_speech_sdk/include/c_api/spxerror.h @@ -0,0 +1,455 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include // must include after spxdebug.h or speechapi*.h (can NOT be included before) + +#define SPXHR AZACHR +#define SPX_NOERROR AZAC_ERR_NONE +#define SPX_INIT_HR(hr) AZAC_INIT_HR(hr) +#define SPX_SUCCEEDED(x) AZAC_SUCCEEDED(x) +#define SPX_FAILED(x) AZAC_FAILED(x) +#define __SPX_ERRCODE_FAILED(x) __AZAC_ERRCODE_FAILED(x) + +/// +/// The function is not implemented. +/// +#define SPXERR_NOT_IMPL \ + AZAC_ERR_NOT_IMPL + +/// +/// The object has not been properly initialized. +/// +#define SPXERR_UNINITIALIZED \ + AZAC_ERR_UNINITIALIZED + +/// +/// The object has already been initialized. +/// +#define SPXERR_ALREADY_INITIALIZED \ + AZAC_ERR_ALREADY_INITIALIZED + +/// +/// An unhandled exception was detected. +/// +#define SPXERR_UNHANDLED_EXCEPTION \ + AZAC_ERR_UNHANDLED_EXCEPTION + +/// +/// The object or property was not found. +/// +#define SPXERR_NOT_FOUND \ + AZAC_ERR_NOT_FOUND + +/// +/// One or more arguments are not valid. +/// +#define SPXERR_INVALID_ARG \ + AZAC_ERR_INVALID_ARG + +/// +/// The specified timeout value has elapsed. +/// +#define SPXERR_TIMEOUT \ + AZAC_ERR_TIMEOUT + +/// +/// The asynchronous operation is already in progress. +/// +#define SPXERR_ALREADY_IN_PROGRESS \ + AZAC_ERR_ALREADY_IN_PROGRESS + +/// +/// The attempt to open the file failed. +/// +#define SPXERR_FILE_OPEN_FAILED \ + AZAC_ERR_FILE_OPEN_FAILED + +/// +/// The end of the file was reached unexpectedly. +/// +#define SPXERR_UNEXPECTED_EOF \ + AZAC_ERR_UNEXPECTED_EOF + +/// +/// Invalid audio header encountered. +/// +#define SPXERR_INVALID_HEADER \ + AZAC_ERR_INVALID_HEADER + +/// +/// The requested operation cannot be performed while audio is pumping +/// +#define SPXERR_AUDIO_IS_PUMPING \ + AZAC_ERR_AUDIO_IS_PUMPING + +/// +/// Unsupported audio format. +/// +#define SPXERR_UNSUPPORTED_FORMAT \ + AZAC_ERR_UNSUPPORTED_FORMAT + +/// +/// Operation aborted. +/// +#define SPXERR_ABORT \ + AZAC_ERR_ABORT + +/// +/// Microphone is not available. +/// +#define SPXERR_MIC_NOT_AVAILABLE \ + AZAC_ERR_MIC_NOT_AVAILABLE + +/// +/// An invalid state was encountered. +/// +#define SPXERR_INVALID_STATE \ + AZAC_ERR_INVALID_STATE + +/// +/// Attempting to create a UUID failed. +/// +#define SPXERR_UUID_CREATE_FAILED \ + AZAC_ERR_UUID_CREATE_FAILED + +/// +/// An unexpected session state transition was encountered when setting the session audio format. +/// +/// +/// Valid transitions are: +/// * WaitForPumpSetFormatStart --> ProcessingAudio (at the beginning of stream) +/// * StoppingPump --> WaitForAdapterCompletedSetFormatStop (at the end of stream) +/// * ProcessingAudio --> WaitForAdapterCompletedSetFormatStop (when the stream runs out of data) +/// All other state transitions are invalid. +/// +#define SPXERR_SETFORMAT_UNEXPECTED_STATE_TRANSITION \ + AZAC_ERR_SETFORMAT_UNEXPECTED_STATE_TRANSITION + +/// +/// An unexpected session state was encountered in while processing audio. +/// +/// +/// Valid states to encounter are: +/// * ProcessingAudio: We're allowed to process audio while in this state. +/// * StoppingPump: We're allowed to be called to process audio, but we'll ignore the data passed in while we're attempting to stop the pump. +/// All other states are invalid while processing audio. +/// +#define SPXERR_PROCESS_AUDIO_INVALID_STATE \ + AZAC_ERR_PROCESS_AUDIO_INVALID_STATE + +/// +/// An unexpected state transition was encountered while attempting to start recognizing. +/// +/// +/// A valid transition is: +/// * Idle --> WaitForPumpSetFormatStart +/// All other state transitions are invalid when attempting to start recognizing +/// +#define SPXERR_START_RECOGNIZING_INVALID_STATE_TRANSITION \ + AZAC_ERR_START_RECOGNIZING_INVALID_STATE_TRANSITION + +/// +/// An unexpected error was encountered when trying to create an internal object. +/// +#define SPXERR_UNEXPECTED_CREATE_OBJECT_FAILURE \ + AZAC_ERR_UNEXPECTED_CREATE_OBJECT_FAILURE + +/// +/// An error in the audio-capturing system. +/// +#define SPXERR_MIC_ERROR \ + AZAC_ERR_MIC_ERROR + +/// +/// The requested operation cannot be performed; there is no audio input. +/// +#define SPXERR_NO_AUDIO_INPUT \ + AZAC_ERR_NO_AUDIO_INPUT + +/// +/// An unexpected error was encountered when trying to access the USP site. +/// +#define SPXERR_UNEXPECTED_USP_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_USP_SITE_FAILURE + +/// +/// An unexpected error was encountered when trying to access the LuAdapterSite site. +/// +#define SPXERR_UNEXPECTED_LU_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_LU_SITE_FAILURE + +/// +/// The buffer is too small. +/// +#define SPXERR_BUFFER_TOO_SMALL \ + AZAC_ERR_BUFFER_TOO_SMALL + +/// +/// A method failed to allocate memory. +/// +#define SPXERR_OUT_OF_MEMORY \ + AZAC_ERR_OUT_OF_MEMORY + +/// +/// An unexpected runtime error occurred. +/// +#define SPXERR_RUNTIME_ERROR \ + AZAC_ERR_RUNTIME_ERROR + +/// +/// The url specified is invalid. +/// +#define SPXERR_INVALID_URL \ + AZAC_ERR_INVALID_URL + +/// +/// The region specified is invalid or missing. +/// +#define SPXERR_INVALID_REGION \ + AZAC_ERR_INVALID_REGION + +/// +/// Switch between single shot and continuous recognition is not supported. +/// +#define SPXERR_SWITCH_MODE_NOT_ALLOWED \ + AZAC_ERR_SWITCH_MODE_NOT_ALLOWED + +/// +/// Changing connection status is not supported in the current recognition state. +/// +#define SPXERR_CHANGE_CONNECTION_STATUS_NOT_ALLOWED \ + AZAC_ERR_CHANGE_CONNECTION_STATUS_NOT_ALLOWED + +/// +/// Explicit connection management is not supported by the specified recognizer. +/// +#define SPXERR_EXPLICIT_CONNECTION_NOT_SUPPORTED_BY_RECOGNIZER \ + AZAC_ERR_EXPLICIT_CONNECTION_NOT_SUPPORTED_BY_RECOGNIZER + +/// +/// The handle is invalid. +/// +#define SPXERR_INVALID_HANDLE \ + AZAC_ERR_INVALID_HANDLE + +/// +/// The recognizer is invalid. +/// +#define SPXERR_INVALID_RECOGNIZER \ + AZAC_ERR_INVALID_RECOGNIZER + +/// +/// The value is out of range. +/// Added in version 1.3.0. +/// +#define SPXERR_OUT_OF_RANGE \ + AZAC_ERR_OUT_OF_RANGE + +/// +/// Extension library not found. +/// Added in version 1.3.0. +/// +#define SPXERR_EXTENSION_LIBRARY_NOT_FOUND \ + AZAC_ERR_EXTENSION_LIBRARY_NOT_FOUND + +/// +/// An unexpected error was encountered when trying to access the TTS engine site. +/// Added in version 1.4.0. +/// +#define SPXERR_UNEXPECTED_TTS_ENGINE_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_TTS_ENGINE_SITE_FAILURE + +/// +/// An unexpected error was encountered when trying to access the audio output stream. +/// Added in version 1.4.0. +/// +#define SPXERR_UNEXPECTED_AUDIO_OUTPUT_FAILURE \ + AZAC_ERR_UNEXPECTED_AUDIO_OUTPUT_FAILURE + +/// +/// Gstreamer internal error. +/// Added in version 1.4.0. +/// +#define SPXERR_GSTREAMER_INTERNAL_ERROR \ + AZAC_ERR_GSTREAMER_INTERNAL_ERROR + +/// +/// Compressed container format not supported. +/// Added in version 1.4.0. +/// +#define SPXERR_CONTAINER_FORMAT_NOT_SUPPORTED_ERROR \ + AZAC_ERR_CONTAINER_FORMAT_NOT_SUPPORTED_ERROR + +/// +/// Codec extension or gstreamer not found. +/// Added in version 1.4.0. +/// +#define SPXERR_GSTREAMER_NOT_FOUND_ERROR \ + AZAC_ERR_GSTREAMER_NOT_FOUND_ERROR + +/// +/// The language specified is missing. +/// Added in version 1.5.0. +/// +#define SPXERR_INVALID_LANGUAGE \ + AZAC_ERR_INVALID_LANGUAGE + +/// +/// The API is not applicable. +/// Added in version 1.5.0. +/// +#define SPXERR_UNSUPPORTED_API_ERROR \ + AZAC_ERR_UNSUPPORTED_API_ERROR + +/// +/// The ring buffer is unavailable. +/// Added in version 1.8.0. +/// +#define SPXERR_RINGBUFFER_DATA_UNAVAILABLE \ + AZAC_ERR_RINGBUFFER_DATA_UNAVAILABLE + +/// +/// An unexpected error was encountered when trying to access the Conversation site. +/// Added in version 1.5.0. +/// +#define SPXERR_UNEXPECTED_CONVERSATION_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_CONVERSATION_SITE_FAILURE + +/// +/// An unexpected error was encountered when trying to access the Conversation site. +/// Added in version 1.8.0. +/// +#define SPXERR_UNEXPECTED_CONVERSATION_TRANSLATOR_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_CONVERSATION_TRANSLATOR_SITE_FAILURE + +/// +/// An asynchronous operation was canceled before it was executed. +/// Added in version 1.8.0. +/// +#define SPXERR_CANCELED \ + AZAC_ERR_CANCELED + +/// +/// Codec for compression could not be initialized. +/// Added in version 1.10.0. +/// +#define SPXERR_COMPRESS_AUDIO_CODEC_INITIFAILED \ + AZAC_ERR_COMPRESS_AUDIO_CODEC_INITIFAILED + +/// +/// Data not available. +/// Added in version 1.10.0. +/// +#define SPXERR_DATA_NOT_AVAILABLE \ + AZAC_ERR_DATA_NOT_AVAILABLE + +/// +/// Invalid result reason. +/// Added in version 1.12.0 +/// +#define SPXERR_INVALID_RESULT_REASON \ + AZAC_ERR_INVALID_RESULT_REASON + +/// +/// An unexpected error was encountered when trying to access the RNN-T site. +/// +#define SPXERR_UNEXPECTED_RNNT_SITE_FAILURE \ + AZAC_ERR_UNEXPECTED_RNNT_SITE_FAILURE + +/// +/// Sending of a network message failed. +/// +#define SPXERR_NETWORK_SEND_FAILED \ + AZAC_ERR_NETWORK_SEND_FAILED + +/// +/// Audio extension library not found. +/// Added in version 1.16.0. +/// +#define SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND \ + AZAC_ERR_AUDIO_SYS_LIBRARY_NOT_FOUND + +/// +/// An error in the audio-rendering system. +/// Added in version 1.20.0 +/// +#define SPXERR_LOUDSPEAKER_ERROR \ + AZAC_ERR_LOUDSPEAKER_ERROR + +/// +/// An unexpected error was encountered when trying to access the Vision site. +/// Added in version 1.15.0. +/// +#define SPXERR_VISION_SITE_FAILURE \ + AZAC_ERR_VISION_SITE_FAILURE + +/// +/// Stream number provided was invalid in the current context. +/// Added in version 1.15.0. +/// +#define SPXERR_MEDIA_INVALID_STREAM \ + AZAC_ERR_MEDIA_INVALID_STREAM + +/// +/// Offset required is invalid in the current context. +/// Added in version 1.15.0. +/// +#define SPXERR_MEDIA_INVALID_OFFSET \ + AZAC_ERR_MEDIA_INVALID_OFFSET + +/// +/// No more data is available in source. +/// Added in version 1.15.0. +/// +#define SPXERR_MEDIA_NO_MORE_DATA \ + AZAC_ERR_MEDIA_NO_MORE_DATA + +/// +/// Source has not been started. +/// Added in version 1.15.0. +/// +#define SPXERR_MEDIA_NOT_STARTED \ + AZAC_ERR_MEDIA_NOT_STARTED + +/// +/// Source has already been started. +/// Added in version 1.15.0. +/// +#define SPXERR_MEDIA_ALREADY_STARTED \ + AZAC_ERR_MEDIA_ALREADY_STARTED + +/// +/// Media device creation failed. +/// Added in version 1.18.0. +/// +#define SPXERR_MEDIA_DEVICE_CREATION_FAILED \ + AZAC_ERR_MEDIA_DEVICE_CREATION_FAILED + +/// +/// No devices of the selected category are available. +/// Added in version 1.18.0. +/// +#define SPXERR_MEDIA_NO_DEVICE_AVAILABLE \ + AZAC_ERR_MEDIA_NO_DEVICE_AVAILABLE + +/// +/// Enabled Voice Activity Detection while using keyword recognition is not allowed. +/// +#define SPXERR_VAD_CANNOT_BE_USED_WITH_KEYWORD_RECOGNIZER \ + AZAC_ERR_VAD_CANNOT_BE_USED_WITH_KEYWORD_RECOGNIZER + +/// +/// The specified RecoEngineAdapter could not be created. +/// +#define SPXERR_COULD_NOT_CREATE_ENGINE_ADAPTER \ + AZAC_ERR_COULD_NOT_CREATE_ENGINE_ADAPTER + +/// +/// MAS extension library not found. +/// +#define SPXERR_MAS_LIBRARY_NOT_FOUND \ + AZAC_ERR_MAS_LIBRARY_NOT_FOUND diff --git a/third_party/azure_speech_sdk/include/cxx_api/CMakeLists.txt b/third_party/azure_speech_sdk/include/cxx_api/CMakeLists.txt new file mode 100644 index 0000000..c5ee7ae --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.19) + +project(cxx_headers) + +set(SRC_DIR "${PROJECT_SOURCE_DIR}") +add_library(${PROJECT_NAME} INTERFACE ${SPEECH_CXX_API_HEADERS}) +target_include_directories(${PROJECT_NAME} INTERFACE ${PROJECT_SOURCE_DIR}) +target_link_libraries(${PROJECT_NAME} INTERFACE c_headers) +set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER api) diff --git a/third_party/azure_speech_sdk/include/cxx_api/azac_api_cxx_common.h b/third_party/azure_speech_sdk/include/cxx_api/azac_api_cxx_common.h new file mode 100644 index 0000000..31e221d --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/azac_api_cxx_common.h @@ -0,0 +1,80 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/azai/license202106 for the full license information. +// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#define AZAC_DISABLE_COPY_AND_MOVE(T) \ + /** \brief Disable copy constructor */ \ + T(const T&) = delete; \ + /** \brief Disable copy assignment */ \ + T& operator=(const T&) = delete; \ + /** \brief Disable move constructor */ \ + T(T&&) = delete; \ + /** \brief Disable move assignment */ \ + T& operator=(T&&) = delete + +#define AZAC_DISABLE_DEFAULT_CTORS(T) \ + /** \brief Disable default constructor */ \ + T() = delete; \ + AZAC_DISABLE_COPY_AND_MOVE(T) + +#if defined(__GNUG__) && defined(__linux__) && !defined(ANDROID) && !defined(__ANDROID__) +#include +#define SHOULD_HANDLE_FORCED_UNWIND 1 +#endif + +/*! \cond INTERNAL */ + +namespace Azure { +namespace AI { +namespace Core { +namespace _detail { + +template +class ProtectedAccess : public T +{ +public: + + static AZAC_HANDLE HandleFromPtr(T* ptr) { + if (ptr == nullptr) + { + return nullptr; + } + auto access = static_cast(ptr); + return (AZAC_HANDLE)(*access); + } + + static AZAC_HANDLE HandleFromConstPtr(const T* ptr) { + if (ptr == nullptr) + { + return nullptr; + } + auto access = static_cast(ptr); + return (AZAC_HANDLE)(*access); + } + + template + static std::shared_ptr FromHandle(AZAC_HANDLE handle, Args... extras) { + return T::FromHandle(handle, extras...); + } + + template + static std::shared_ptr Create(Args&&... args) { + return T::Create(std::forward(args)...); + } + +}; + +} } } } // Azure::AI::Core::Details + +/*! \endcond */ diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx.h new file mode 100644 index 0000000..44fe059 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx.h @@ -0,0 +1,117 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx.h: Master include header for public C++ API declarations +// + +#pragma once + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_config.h new file mode 100644 index 0000000..abfd623 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_config.h @@ -0,0 +1,338 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_audio_config.h: Public API declarations for AudioConfig C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Audio { + + +/// +/// Represents audio input or output configuration. Audio input can be from a microphone, file, +/// or input stream. Audio output can be to a speaker, audio file output in WAV format, or output +/// stream. +/// +class AudioConfig +{ +public: + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUDIOCONFIGHANDLE() const { return m_haudioConfig.get(); } + + /// + /// Creates an AudioConfig object representing the default microphone on the system. + /// + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromDefaultMicrophoneInput() + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_default_microphone(&haudioConfig)); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the default microphone on the system. + /// + /// Audio processing options. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromDefaultMicrophoneInput(std::shared_ptr audioProcessingOptions) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, audioProcessingOptions == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_default_microphone(&haudioConfig)); + SPX_THROW_ON_FAIL(audio_config_set_audio_processing_options(haudioConfig, static_cast(*audioProcessingOptions.get()))); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing a specific microphone on the system. + /// Added in version 1.3.0. + /// + /// Specifies the device name. Please refer to this page on how to retrieve platform-specific microphone names. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromMicrophoneInput(const SPXSTRING& deviceName) + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_a_microphone(&haudioConfig, Utils::ToUTF8(deviceName).c_str())); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing a specific microphone on the system. + /// + /// Specifies the device name. Please refer to this page on how to retrieve platform-specific microphone names. + /// Audio processing options. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromMicrophoneInput(const SPXSTRING& deviceName, std::shared_ptr audioProcessingOptions) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, audioProcessingOptions == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_a_microphone(&haudioConfig, Utils::ToUTF8(deviceName).c_str())); + SPX_THROW_ON_FAIL(audio_config_set_audio_processing_options(haudioConfig, static_cast(*audioProcessingOptions.get()))); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified file. + /// + /// Specifies the audio input file. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromWavFileInput(const SPXSTRING& fileName) + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_wav_file_name(&haudioConfig, Utils::ToUTF8(fileName).c_str())); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified file. + /// + /// Specifies the audio input file. + /// Audio processing options. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromWavFileInput(const SPXSTRING& fileName, std::shared_ptr audioProcessingOptions) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, audioProcessingOptions == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_wav_file_name(&haudioConfig, Utils::ToUTF8(fileName).c_str())); + SPX_THROW_ON_FAIL(audio_config_set_audio_processing_options(haudioConfig, static_cast(*audioProcessingOptions.get()))); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified stream. + /// + /// Specifies the custom audio input stream. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromStreamInput(std::shared_ptr stream) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, stream == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_stream(&haudioConfig, GetStreamHandle(stream))); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified stream. + /// + /// Specifies the custom audio input stream. + /// Audio processing options. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromStreamInput(std::shared_ptr stream, std::shared_ptr audioProcessingOptions) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, stream == nullptr); + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, audioProcessingOptions == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_input_from_stream(&haudioConfig, GetStreamHandle(stream))); + SPX_THROW_ON_FAIL(audio_config_set_audio_processing_options(haudioConfig, static_cast(*audioProcessingOptions.get()))); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the default audio output device (speaker) on the system. + /// Added in version 1.4.0 + /// + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromDefaultSpeakerOutput() + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_output_from_default_speaker(&haudioConfig)); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing a specific speaker on the system. + /// Added in version 1.14.0. + /// + /// Specifies the device name. Please refer to this page on how to retrieve platform-specific audio device names. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromSpeakerOutput(const SPXSTRING& deviceName) + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_output_from_a_speaker(&haudioConfig, Utils::ToUTF8(deviceName).c_str())); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified file for audio output. + /// Added in version 1.4.0 + /// + /// Specifies the audio output file. The parent directory must already exist. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromWavFileOutput(const SPXSTRING& fileName) + { + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_output_from_wav_file_name(&haudioConfig, Utils::ToUTF8(fileName).c_str())); + + auto config = new AudioConfig(haudioConfig); + return std::shared_ptr(config); + } + + /// + /// Creates an AudioConfig object representing the specified output stream. + /// Added in version 1.4.0 + /// + /// Specifies the custom audio output stream. + /// A shared pointer to the AudioConfig object + static std::shared_ptr FromStreamOutput(std::shared_ptr stream) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, stream == nullptr); + + SPXAUDIOCONFIGHANDLE haudioConfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_create_audio_output_from_stream(&haudioConfig, GetOutputStreamHandle(stream))); + + auto config = new AudioConfig(haudioConfig); + config->m_outputStream = stream; + return std::shared_ptr(config); + } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), Utils::ToUTF8(value).c_str()); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, static_cast(id), nullptr, Utils::ToUTF8(value).c_str()); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + const char* value = property_bag_get_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + + /// + /// Gets a property value by ID. + /// + /// The parameter id. + /// The property value. + SPXSTRING GetProperty(PropertyId id) const + { + const char* value = property_bag_get_string(m_propertybag, static_cast(id), nullptr, ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + + /// + /// Gets an instance of AudioProcessingOptions class which contains the parameters for audio processing used by Speech SDK. + /// + /// A shared pointer to the AudioProcessingOptions object. + std::shared_ptr GetAudioProcessingOptions() const + { + SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_config_get_audio_processing_options(m_haudioConfig, &hoptions)); + + return std::make_shared(hoptions); + } + + /// + /// Destructs the object. + /// + virtual ~AudioConfig() + { + property_bag_release(m_propertybag); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AudioConfig(SPXAUDIOCONFIGHANDLE haudioConfig) + : m_haudioConfig(haudioConfig) + { + SPX_THROW_ON_FAIL(audio_config_get_property_bag(m_haudioConfig, &m_propertybag)); + } + + /// + /// Internal helper method to get the audio stream format handle. + /// + static SPXAUDIOSTREAMHANDLE GetStreamHandle(std::shared_ptr stream) { return (SPXAUDIOSTREAMHANDLE)(*stream.get()); } + + /// + /// Internal helper method to get the audio output stream format handle. + /// + static SPXAUDIOSTREAMHANDLE GetOutputStreamHandle(std::shared_ptr stream) { return (SPXAUDIOSTREAMHANDLE)(*stream.get()); } + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(AudioConfig); + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_haudioConfig; + + /// + /// Internal member variable that holds the properties of the audio config + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + std::shared_ptr m_stream; + std::shared_ptr m_outputStream; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Audio diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_data_stream.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_data_stream.h new file mode 100644 index 0000000..65ea8bc --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_data_stream.h @@ -0,0 +1,248 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_audio_data_stream.h: Public API declarations for AudioDataStream C++ class +// + +#pragma once + +#include + +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +class SpeechSynthesisResult; +class KeywordRecognitionResult; + +/// +/// Represents audio data stream used for operating audio data as a stream. +/// Added in version 1.4.0 +/// +class AudioDataStream : public std::enable_shared_from_this +{ +private: + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_haudioStream; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXAUDIOSTREAMHANDLE hstream) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + audio_data_stream_get_property_bag(hstream, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties associating to the audio data stream. + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Destroy the instance. + /// + ~AudioDataStream() + { + DetachInput(); + } + + /// + /// Creates a memory backed AudioDataStream for the specified audio input file. + /// Added in version 1.14.0 + /// + /// Specifies the audio input file. + /// A shared pointer to AudioDataStream + static std::shared_ptr FromWavFileInput(const SPXSTRING& fileName) + { + SPXAUDIOSTREAMHANDLE hstream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_data_stream_create_from_file(&hstream, Utils::ToUTF8(fileName).c_str())); + + auto stream = new AudioDataStream(hstream); + return std::shared_ptr(stream); + } + + /// + /// Creates a memory backed AudioDataStream from given speech synthesis result. + /// + /// The speech synthesis result. + /// A shared pointer to AudioDataStream + static std::shared_ptr FromResult(std::shared_ptr result); + + /// + /// Obtains the memory backed AudioDataStream associated with a given KeywordRecognition result. + /// + /// The keyword recognition result. + /// An audio stream with the input to the KeywordRecognizer starting from right before the Keyword. + static std::shared_ptr FromResult(std::shared_ptr result); + + /// + /// Get current status of the audio data stream. + /// + /// Current status + StreamStatus GetStatus() + { + Stream_Status status = StreamStatus_Unknown; + SPX_THROW_ON_FAIL(audio_data_stream_get_status(m_haudioStream, &status)); + return (StreamStatus)status; + } + + /// + /// Check whether the stream has enough data to be read. + /// + /// The requested data size in bytes. + /// A bool indicating whether the stream has enough data to be read. + bool CanReadData(uint32_t bytesRequested) + { + return audio_data_stream_can_read_data(m_haudioStream, bytesRequested); + } + + /// + /// Check whether the stream has enough data to be read, starting from the specified position. + /// + /// The position counting from start of the stream. + /// The requested data size in bytes. + /// A bool indicating whether the stream has enough data to be read. + bool CanReadData(uint32_t pos, uint32_t bytesRequested) + { + return audio_data_stream_can_read_data_from_position(m_haudioStream, bytesRequested, pos); + } + + /// + /// Get the available size of the audio data stream. + /// + /// Available size of the audio data stream. + uint32_t GetAvailableSize() + { + return audio_data_stream_get_available_size(m_haudioStream); + } + + /// + /// Reads a chunk of the audio data and fill it to given buffer + /// + /// A buffer to receive read data. + /// Size of the buffer. + /// Size of data filled to the buffer, 0 means end of stream + uint32_t ReadData(uint8_t* buffer, uint32_t bufferSize) + { + uint32_t filledSize = 0; + SPX_THROW_ON_FAIL(audio_data_stream_read(m_haudioStream, buffer, bufferSize, &filledSize)); + + return filledSize; + } + + /// + /// Reads a chunk of the audio data and fill it to given buffer, starting from the specified position. + /// + /// The position counting from start of the stream. + /// A buffer to receive read data. + /// Size of the buffer. + /// Size of data filled to the buffer, 0 means end of stream + uint32_t ReadData(uint32_t pos, uint8_t* buffer, uint32_t bufferSize) + { + uint32_t filledSize = 0; + SPX_THROW_ON_FAIL(audio_data_stream_read_from_position(m_haudioStream, buffer, bufferSize, pos, &filledSize)); + + return filledSize; + } + + /// + /// Save the audio data to a file, synchronously. + /// + /// The file name with full path. + void SaveToWavFile(const SPXSTRING& fileName) + { + SPX_THROW_ON_FAIL(audio_data_stream_save_to_wave_file(m_haudioStream, Utils::ToUTF8(fileName).c_str())); + } + + /// + /// Save the audio data to a file, asynchronously. + /// + /// The file name with full path. + /// An asynchronous operation representing the saving. + std::future SaveToWavFileAsync(const SPXSTRING& fileName) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, fileName]() -> void { + SPX_THROW_ON_FAIL(audio_data_stream_save_to_wave_file(m_haudioStream, Utils::ToUTF8(fileName).c_str())); + }); + + return future; + } + + /// + /// Get current position of the audio data stream. + /// + /// Current position + uint32_t GetPosition() + { + uint32_t position = 0; + SPX_THROW_ON_FAIL(audio_data_stream_get_position(m_haudioStream, &position)); + return position; + } + + /// + /// Set current position of the audio data stream. + /// + /// Position to be set. + void SetPosition(uint32_t pos) + { + SPX_THROW_ON_FAIL(audio_data_stream_set_position(m_haudioStream, pos)); + } + + /// + /// Stops any more data from getting to the stream. + /// + void DetachInput() + { + SPX_THROW_ON_FAIL(audio_data_stream_detach_input(m_haudioStream)); + } + + /// + /// Explicit conversion operator. + /// + /// A handle. + explicit operator SPXAUDIOSTREAMHANDLE() { return m_haudioStream; } + + /// + /// Collection of additional SpeechSynthesisResult properties. + /// + const PropertyCollection& Properties; + +private: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AudioDataStream(SPXAUDIOSTREAMHANDLE haudioStream) : + m_haudioStream(haudioStream), + m_properties(haudioStream), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_processing_options.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_processing_options.h new file mode 100644 index 0000000..de3354b --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_processing_options.h @@ -0,0 +1,358 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_audio_processing_options.h: Public API declarations for AudioProcessingOptions and related C++ classes +// + +#pragma once +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Audio { + +/// +/// Types of preset microphone array geometries. +/// See [Microphone Array Recommendations](/azure/cognitive-services/speech-service/speech-devices-sdk-microphone) for more details. +/// +enum class PresetMicrophoneArrayGeometry +{ + /// + /// Indicates that no geometry specified. Speech SDK will determine the microphone array geometry. + /// + Uninitialized, + /// + /// Indicates a microphone array with one microphone in the center and six microphones evenly spaced + /// in a circle with radius approximately equal to 42.5 mm. + /// + Circular7, + /// + /// Indicates a microphone array with one microphone in the center and three microphones evenly spaced + /// in a circle with radius approximately equal to 42.5 mm. + /// + Circular4, + /// + /// Indicates a microphone array with four linearly placed microphones with 40 mm spacing between them. + /// + Linear4, + /// + /// Indicates a microphone array with two linearly placed microphones with 40 mm spacing between them. + /// + Linear2, + /// + /// Indicates a microphone array with a single microphone. + /// + Mono, + /// + /// Indicates a microphone array with custom geometry. + /// + Custom +}; + +/// +/// Types of microphone arrays. +/// +enum class MicrophoneArrayType +{ + /// + /// Indicates that the microphone array has microphones in a straight line. + /// + Linear, + /// + /// Indicates that the microphone array has microphones in a plane. + /// + Planar +}; + +/// +/// Defines speaker reference channel position in input audio. +/// +enum class SpeakerReferenceChannel +{ + /// + /// Indicates that the input audio does not have a speaker reference channel. + /// + None, + /// + /// Indicates that the last channel in the input audio corresponds to the speaker + /// reference for echo cancellation. + /// + LastChannel +}; + +typedef AudioProcessingOptions_MicrophoneCoordinates MicrophoneCoordinates; + +/// +/// Represents the geometry of a microphone array. +/// +struct MicrophoneArrayGeometry +{ + /// + /// Type of microphone array. + /// + MicrophoneArrayType microphoneArrayType; + /// + /// Start angle for beamforming in degrees. + /// + uint16_t beamformingStartAngle; + /// + /// End angle for beamforming in degrees. + /// + uint16_t beamformingEndAngle; + /// + /// Coordinates of microphones in the microphone array. + /// + std::vector microphoneCoordinates; + + /// + /// Creates a new instance of MicrophoneArrayGeometry. + /// Beamforming start angle is set to zero. + /// Beamforming end angle is set to 180 degrees if microphoneArrayType is Linear, otherwise it is set to 360 degrees. + /// + /// Type of microphone array. + /// Coordinates of microphones in the microphone array. + MicrophoneArrayGeometry(MicrophoneArrayType microphoneArrayType, const std::vector& microphoneCoordinates) + { + this->microphoneArrayType = microphoneArrayType; + this->beamformingStartAngle = 0; + this->beamformingEndAngle = (microphoneArrayType == MicrophoneArrayType::Linear) ? 180 : 360; + this->microphoneCoordinates.resize(microphoneCoordinates.size()); + for (size_t i = 0; i < microphoneCoordinates.size(); i++) + { + this->microphoneCoordinates[i] = microphoneCoordinates[i]; + } + } + + /// + /// Creates a new instance of MicrophoneArrayGeometry. + /// + /// Type of microphone array. + /// Start angle for beamforming in degrees. + /// End angle for beamforming in degrees. + /// Coordinates of microphones in the microphone array. + MicrophoneArrayGeometry(MicrophoneArrayType microphoneArrayType, uint16_t beamformingStartAngle, uint16_t beamformingEndAngle, const std::vector& microphoneCoordinates) + { + this->microphoneArrayType = microphoneArrayType; + this->beamformingStartAngle = beamformingStartAngle; + this->beamformingEndAngle = beamformingEndAngle; + this->microphoneCoordinates.resize(microphoneCoordinates.size()); + for (size_t i = 0; i < microphoneCoordinates.size(); i++) + { + this->microphoneCoordinates[i] = microphoneCoordinates[i]; + } + } +}; + +/// +/// Represents audio processing options used with audio config class. +/// +class AudioProcessingOptions +{ +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// A handle to audio processing options. + explicit AudioProcessingOptions(SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions) + : m_hoptions(hoptions) + { + SPX_THROW_ON_FAIL(audio_processing_options_get_property_bag(m_hoptions, &m_propertybag)); + } + + /// + /// Destructs an instance of the AudioProcessingOptions class. + /// + ~AudioProcessingOptions() = default; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUDIOPROCESSINGOPTIONSHANDLE() const { return m_hoptions.get(); } + + /// + /// Creates a new instance of the AudioProcessingOptions class. + /// + /// Specifies flags to control the audio processing performed by Speech SDK. It is bitwise OR of AUDIO_INPUT_PROCESSING_XXX constants. + /// The newly created AudioProcessingOptions wrapped inside a std::shared_ptr. + /// + /// This function should only be used when the audio input is from a microphone array. + /// On Windows, this function will try to query the microphone array geometry from the audio driver. Audio data is also read from speaker reference channel. + /// On Linux, it assumes that the microphone is a single channel microphone. + /// + static std::shared_ptr Create(int audioProcessingFlags) + { + SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_processing_options_create(&hoptions, audioProcessingFlags)); + + auto options = new AudioProcessingOptions(hoptions); + return std::shared_ptr(options); + } + + /// + /// Creates a new instance of the AudioProcessingOptions class with preset microphone array geometry. + /// + /// Specifies flags to control the audio processing performed by Speech SDK. It is bitwise OR of AUDIO_INPUT_PROCESSING_XXX constants. + /// Specifies the type of microphone array geometry. + /// Specifies the speaker reference channel position in the input audio. + /// The newly created AudioProcessingOptions wrapped inside a std::shared_ptr. + static std::shared_ptr Create(int audioProcessingFlags, PresetMicrophoneArrayGeometry microphoneArrayGeometry, SpeakerReferenceChannel speakerReferenceChannel = SpeakerReferenceChannel::None) + { + SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_processing_options_create_from_preset_microphone_array_geometry(&hoptions, audioProcessingFlags, (AudioProcessingOptions_PresetMicrophoneArrayGeometry)microphoneArrayGeometry, (AudioProcessingOptions_SpeakerReferenceChannel)speakerReferenceChannel)); + + auto options = new AudioProcessingOptions(hoptions); + return std::shared_ptr(options); + } + + /// + /// Creates a new instance of the AudioProcessingOptions class with microphone array geometry. + /// + /// Specifies flags to control the audio processing performed by Speech SDK. It is bitwise OR of AUDIO_INPUT_PROCESSING_XXX constants. + /// Specifies the microphone array geometry. + /// Specifies the speaker reference channel position in the input audio. + /// The newly created AudioProcessingOptions wrapped inside a std::shared_ptr. + static std::shared_ptr Create(int audioProcessingFlags, MicrophoneArrayGeometry microphoneArrayGeometry, SpeakerReferenceChannel speakerReferenceChannel = SpeakerReferenceChannel::None) + { + AudioProcessingOptions_MicrophoneArrayGeometry geometry + { + (AudioProcessingOptions_MicrophoneArrayType)microphoneArrayGeometry.microphoneArrayType, + microphoneArrayGeometry.beamformingStartAngle, + microphoneArrayGeometry.beamformingEndAngle, + (uint16_t)microphoneArrayGeometry.microphoneCoordinates.size(), + microphoneArrayGeometry.microphoneCoordinates.data() + }; + + SPXAUDIOPROCESSINGOPTIONSHANDLE hoptions = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_processing_options_create_from_microphone_array_geometry(&hoptions, audioProcessingFlags, &geometry, (AudioProcessingOptions_SpeakerReferenceChannel)speakerReferenceChannel)); + + auto options = new AudioProcessingOptions(hoptions); + return std::shared_ptr(options); + } + + /// + /// Returns the type of audio processing performed by Speech SDK. + /// + /// Bitwise OR of AUDIO_INPUT_PROCESSING_XXX constant flags indicating the input audio processing performed by Speech SDK. + int GetAudioProcessingFlags() const + { + int audioProcessingFlags; + SPX_THROW_ON_FAIL(audio_processing_options_get_audio_processing_flags(m_hoptions, &audioProcessingFlags)); + return audioProcessingFlags; + } + + /// + /// Returns the microphone array geometry of the microphone used for audio input. + /// + /// A value of type PresetMicrophoneArrayGeometry enum. + PresetMicrophoneArrayGeometry GetPresetMicrophoneArrayGeometry() const + { + PresetMicrophoneArrayGeometry microphoneArrayGeometry = PresetMicrophoneArrayGeometry::Uninitialized; + SPX_THROW_ON_FAIL(audio_processing_options_get_preset_microphone_array_geometry(m_hoptions, (AudioProcessingOptions_PresetMicrophoneArrayGeometry*)µphoneArrayGeometry)); + return microphoneArrayGeometry; + } + + /// + /// Returns the microphone array type of the microphone used for audio input. + /// + /// A value of type MicrophoneArrayType enum. + MicrophoneArrayType GetMicrophoneArrayType() const + { + MicrophoneArrayType microphoneArrayType = MicrophoneArrayType::Linear; + SPX_THROW_ON_FAIL(audio_processing_options_get_microphone_array_type(m_hoptions, (AudioProcessingOptions_MicrophoneArrayType*)µphoneArrayType)); + return microphoneArrayType; + } + + /// + /// Returns the start angle used for beamforming. + /// + /// Beamforming start angle. + uint16_t GetBeamformingStartAngle() const + { + uint16_t startAngle; + SPX_THROW_ON_FAIL(audio_processing_options_get_beamforming_start_angle(m_hoptions, &startAngle)); + return startAngle; + } + + /// + /// Returns the end angle used for beamforming. + /// + /// Beamforming end angle. + uint16_t GetBeamformingEndAngle() const + { + uint16_t endAngle; + SPX_THROW_ON_FAIL(audio_processing_options_get_beamforming_end_angle(m_hoptions, &endAngle)); + return endAngle; + } + + /// + /// Returns the coordinates of microphones in the microphone array used for audio input. + /// + /// A std::vector of MicrophoneCoordinates elements. + std::vector GetMicrophoneCoordinates() const + { + uint16_t microphoneCount; + SPX_THROW_ON_FAIL(audio_processing_options_get_microphone_count(m_hoptions, µphoneCount)); + + std::vector microphoneCoordinates(microphoneCount); + SPX_THROW_ON_FAIL(audio_processing_options_get_microphone_coordinates(m_hoptions, microphoneCoordinates.data(), microphoneCount)); + return microphoneCoordinates; + } + + /// + /// Returns the speaker reference channel position in the audio input. + /// + /// A value of type SpeakerReferenceChannel enum. + SpeakerReferenceChannel GetSpeakerReferenceChannel() const + { + SpeakerReferenceChannel speakerReferenceChannel = SpeakerReferenceChannel::None; + SPX_THROW_ON_FAIL(audio_processing_options_get_speaker_reference_channel(m_hoptions, (AudioProcessingOptions_SpeakerReferenceChannel*)&speakerReferenceChannel)); + return speakerReferenceChannel; + } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), Utils::ToUTF8(value).c_str()); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + const char* value = property_bag_get_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + +private: + + DISABLE_COPY_AND_MOVE(AudioProcessingOptions); + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_hoptions; + + /// + /// Internal member variable that holds the properties of the audio processing options. + /// + SmartHandle m_propertybag; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Audio diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream.h new file mode 100644 index 0000000..6a3f7d2 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream.h @@ -0,0 +1,995 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_audio_stream.h: Public API declarations for AudioInputStream / AudioOutputStream and related C++ classes +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +namespace Dialog { + class ActivityReceivedEventArgs; +} + +namespace Audio { + + + +class PullAudioInputStreamCallback; +class PushAudioInputStream; +class PullAudioInputStream; +class PushAudioOutputStreamCallback; +class PushAudioOutputStream; +class PullAudioOutputStream; + + +/// +/// Represents audio input stream used for custom audio input configurations. +/// +class AudioInputStream +{ +public: + + using ReadCallbackFunction_Type = ::std::function; + using CloseCallbackFunction_Type = ::std::function; + /// Added in version 1.5.0. + using GetPropertyCallbackFunction_Type = std::function; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUDIOSTREAMHANDLE() const { return m_haudioStream.get(); } + + /// + /// Creates a memory backed PushAudioInputStream using the default format (16 kHz, 16 bit, mono PCM). + /// + /// A shared pointer to PushAudioInputStream + static std::shared_ptr CreatePushStream(); + + /// + /// Creates a memory backed PushAudioInputStream with the specified audio format. + /// + /// Audio stream format. + /// A shared pointer to PushAudioInputStream + static std::shared_ptr CreatePushStream(std::shared_ptr format); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read() and Close() methods, using the default format (16 kHz, 16 bit, mono PCM). + /// + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback = nullptr); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read(), Close() and GetProperty() methods + /// Added in version 1.5.0. + /// + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// GetProperty callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback); + + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read() and Close() methods, using the default format (16 kHz, 16 bit, mono PCM). + /// + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback = nullptr); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read(), Close() and GetProperty() methods. + /// Added in version 1.5.0. + /// + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback); + + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback interface for the Read() and Close() methods, using the default format (16 kHz, 16 bit, mono PCM). + /// + /// Shared pointer to PullAudioInputStreamCallback instance. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr callback); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read() and Close() methods. + /// + /// Audio stream format. + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback = nullptr); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read(), Close() and GetProperty() methods. + /// Added in version 1.5.0. + /// + /// Audio stream format. + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback); + + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read() and Close() methods. + /// + /// Audio stream format. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback = nullptr); + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback functions for Read() and Close() methods. + /// Added in version 1.5.0. + /// + /// Audio stream format. + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback); + + + /// + /// Creates a PullAudioInputStream that delegates to the specified callback interface for the Read() and Close() methods, using the specified format. + /// + /// Audio stream format. + /// Shared pointer to PullAudioInputStreamCallback instance. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr CreatePullStream(std::shared_ptr format, std::shared_ptr callback); + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AudioInputStream(SPXAUDIOSTREAMHANDLE haudioStream) : m_haudioStream(haudioStream) { } + + /// + /// Destructor, does nothing. + /// + virtual ~AudioInputStream() {} + + /// + /// Internal helper method to get the default format if the specified format is nullptr. + /// + static std::shared_ptr UseDefaultFormatIfNull(std::shared_ptr format) { return format != nullptr ? format : AudioStreamFormat::GetDefaultInputFormat(); } + + /// + /// Internal helper method to get the audio stream format handle. + /// + static SPXAUDIOSTREAMFORMATHANDLE GetFormatHandle(std::shared_ptr format) { return (SPXAUDIOSTREAMFORMATHANDLE)(*format.get()); } + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_haudioStream; + + protected: + static constexpr size_t m_maxPropertyLen = 1024; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(AudioInputStream); +}; + + +/// +/// Represents memory backed push audio input stream used for custom audio input configurations. +/// +class PushAudioInputStream : public AudioInputStream +{ +public: + + /// + /// Destructor; closes the underlying stream if not already closed. + /// + virtual ~PushAudioInputStream() + { + if (audio_stream_is_handle_valid(m_haudioStream)) + { + CloseStream(); + } + } + + /// + /// Creates a memory backed PushAudioInputStream using the default format (16 kHz, 16 bit, mono PCM). + /// + /// A shared pointer to PushAudioInputStream + static std::shared_ptr Create() + { + return Create(nullptr); + } + + /// + /// Creates a memory backed PushAudioInputStream with the specified audio format. + /// + /// Audio stream format. + /// A shared pointer to PushAudioInputStream + static std::shared_ptr Create(std::shared_ptr format) + { + format = UseDefaultFormatIfNull(format); + + SPXAUDIOSTREAMHANDLE haudioStream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_create_push_audio_input_stream(&haudioStream, GetFormatHandle(format))); + + auto stream = new PushAudioInputStream(haudioStream); + return std::shared_ptr(stream); + } + + /// + /// Writes the audio data specified by making an internal copy of the data. + /// Note: The dataBuffer should not contain any audio header. + /// + /// The pointer to the audio buffer of which this function will make a copy. + /// The size of the buffer. + void Write(uint8_t* dataBuffer, uint32_t size) + { + SPX_THROW_ON_FAIL(push_audio_input_stream_write(m_haudioStream, dataBuffer, size)); + } + + /// + /// Set value of a property. The properties of the audio data should be set before writing the audio data. + /// Added in version 1.5.0. + /// + /// The id of property. See + /// value to set + void SetProperty(PropertyId id, const SPXSTRING& value) + { + SPX_THROW_ON_FAIL(push_audio_input_stream_set_property_by_id(m_haudioStream, static_cast(id), Utils::ToUTF8(value).c_str())); + } + + /// + /// Set value of a property. The properties of the audio data should be set before writing the audio data. + /// Added in version 1.5.0. + /// + /// The name of property. + /// value to set + void SetProperty(const SPXSTRING& propertyName, const SPXSTRING& value) + { + SPX_THROW_ON_FAIL(push_audio_input_stream_set_property_by_name(m_haudioStream, Utils::ToUTF8(propertyName.c_str()), Utils::ToUTF8(value.c_str()))); + } + + /// + /// Closes the stream. + /// + void Close() { SPX_THROW_ON_FAIL(CloseStream()); } + + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PushAudioInputStream(SPXAUDIOSTREAMHANDLE haudioStream) : AudioInputStream(haudioStream) { } + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PushAudioInputStream); + + SPXHR CloseStream() { return push_audio_input_stream_close(m_haudioStream); } +}; + + +/// +/// An interface that defines callback methods for an audio input stream. +/// +/// +/// Derive from this class and implement its function to provide your own +/// data as an audio input stream. +/// +class PullAudioInputStreamCallback +{ +public: + + /// + /// Destructor, does nothing. + /// + virtual ~PullAudioInputStreamCallback() {} + + /// + /// This function is called to synchronously get data from the audio stream. + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// The pointer to the buffer to which to copy the audio data. + /// The size of the buffer. + /// The number of bytes copied into the buffer, or zero to indicate end of stream + virtual int Read(uint8_t* dataBuffer, uint32_t size) = 0; + + /// + /// This function is called to synchronously to get meta information associated to stream data, such as TimeStamp or UserId . + /// Added in version 1.5.0. + /// + /// The id of the property. + /// The value of the property. + virtual SPXSTRING GetProperty(PropertyId id) + { + if (PropertyId::DataBuffer_TimeStamp == id) + { + return ""; + } + else if (PropertyId::DataBuffer_UserId == id) + { + return ""; + } + else + { + return ""; + } + } + + /// + /// This function is called to close the audio stream. + /// + /// + virtual void Close() = 0; + +protected: + + /*! \cond PROTECTED */ + + /// + /// Constructor, does nothing. + /// + PullAudioInputStreamCallback() {}; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PullAudioInputStreamCallback); +}; + + +/// +/// Pull audio input stream class. +/// +class PullAudioInputStream : public AudioInputStream +{ +public: + + /// + /// Creates a PullAudioInputStream utilizing the specified Read() and Close() "C" callback functions pointers + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback = nullptr) + { + return Create(nullptr, pvContext, readCallback, closeCallback); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read(), Close() and GetProperty() "C" callback functions pointers + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// Added in version 1.5.0. + /// + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback) + { + return Create(nullptr, pvContext, readCallback, closeCallback, getPropertyCallback); + } + + /// Creates a PullAudioInputStream utilizing the specified Read() and Close() callback functions. + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback = nullptr) + { + return Create(nullptr, readCallback, closeCallback); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read(), Close() and GetProperty() callback functions. + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// Added in version 1.5.0. + /// + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback) + { + return Create(nullptr, readCallback, closeCallback, getPropertyCallback); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Close() callback function. + /// + /// Shared pointer to PullAudioInputStreamCallback instance. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr callback) + { + return Create(nullptr, callback); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read() and Close() "C" callback functions pointers + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// Audio stream format. + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback = nullptr) + { + return Create(format, + [=](uint8_t* buffer, uint32_t size) -> int { return readCallback(pvContext, buffer, size); }, + [=]() { if (closeCallback != nullptr) { closeCallback(pvContext); } }); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read(), Close() and GetProperty() "C" callback functions pointers + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// Audio stream format. + /// Context pointer to use when invoking the callbacks. + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback) + { + return Create(format, + [=](uint8_t* buffer, uint32_t size) -> int { return readCallback(pvContext, buffer, size); }, + [=]() { if (closeCallback != nullptr) { closeCallback(pvContext); } }, + [=](PropertyId id) -> SPXSTRING + { + uint8_t result[m_maxPropertyLen]; + getPropertyCallback(pvContext, static_cast(id), result, m_maxPropertyLen); + return reinterpret_cast(result); + }); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read() and Close() callback functions. + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// + /// Audio stream format. + /// Read callback. + /// Close callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback = nullptr) + { + auto wrapper = std::make_shared(readCallback, closeCallback); + return Create(format, wrapper); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read(), Close() and GetProperty() callback functions. + /// Note: The dataBuffer returned by Read() should not contain any audio header. + /// Added in version 1.5.0. + /// + /// Audio stream format. + /// Read callback. + /// Close callback. + /// Get property callback. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback) + { + auto wrapper = std::make_shared(readCallback, closeCallback, getPropertyCallback); + return Create(format, wrapper); + } + + /// + /// Creates a PullAudioInputStream utilizing the specified Read() and Close() callback functions. + /// + /// Audio stream format. + /// Shared pointer to PullAudioInputStreamCallback instance. + /// A shared pointer to PullAudioInputStream + static std::shared_ptr Create(std::shared_ptr format, std::shared_ptr callback) + { + format = UseDefaultFormatIfNull(format); + + SPXAUDIOSTREAMHANDLE haudioStream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_create_pull_audio_input_stream(&haudioStream, GetFormatHandle(format))); + + auto stream = new PullAudioInputStream(haudioStream); + SPX_THROW_ON_FAIL(pull_audio_input_stream_set_callbacks(haudioStream, stream, ReadCallbackWrapper, CloseCallbackWrapper)); + SPX_THROW_ON_FAIL(pull_audio_input_stream_set_getproperty_callback(haudioStream, stream, GetPropertyCallbackWrapper)); + + stream->m_callback = callback; + + return std::shared_ptr(stream); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PullAudioInputStream(SPXAUDIOSTREAMHANDLE haudioStream) : AudioInputStream(haudioStream) { } + + class FunctionCallbackWrapper : public PullAudioInputStreamCallback + { + public: + + FunctionCallbackWrapper(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback = nullptr) : + m_readCallback(readCallback), + m_closeCallback(closeCallback), + m_getPropertyCallback(getPropertyCallback) + { + }; + + /// Note: The dataBuffer returned by Read() should not contain any audio header. + int Read(uint8_t* dataBuffer, uint32_t size) override { return m_readCallback(dataBuffer, size); } + void Close() override { if (m_closeCallback != nullptr) m_closeCallback(); }; + SPXSTRING GetProperty(PropertyId id) override + { + if (m_getPropertyCallback != nullptr) + { + return m_getPropertyCallback(id); + } + else + { + return ""; + } + } + + private: + + DISABLE_COPY_AND_MOVE(FunctionCallbackWrapper); + + ReadCallbackFunction_Type m_readCallback; + CloseCallbackFunction_Type m_closeCallback; + GetPropertyCallbackFunction_Type m_getPropertyCallback; + + }; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PullAudioInputStream); + + static int ReadCallbackWrapper(void* pvContext, uint8_t* dataBuffer, uint32_t size) + { + PullAudioInputStream* ptr = (PullAudioInputStream*)pvContext; + return ptr->m_callback->Read(dataBuffer, size); + } + + static void CloseCallbackWrapper(void* pvContext) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + PullAudioInputStream* ptr = (PullAudioInputStream*)pvContext; + ptr->m_callback->Close(); + } + + static void GetPropertyCallbackWrapper(void *pvContext, int id, uint8_t* result, uint32_t size) + { + PullAudioInputStream* ptr = (PullAudioInputStream*)pvContext; + auto value = ptr->m_callback->GetProperty(static_cast(id)); + auto valueSize = value.size() + 1; + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, valueSize > size); + std::memcpy(result, value.c_str(), valueSize); + } + + std::shared_ptr m_callback; +}; + + +inline std::shared_ptr AudioInputStream::CreatePushStream() +{ + return PushAudioInputStream::Create(); +} + +inline std::shared_ptr AudioInputStream::CreatePushStream(std::shared_ptr format) +{ + return PushAudioInputStream::Create(format); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback) +{ + return PullAudioInputStream::Create(pvContext, readCallback, closeCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback) +{ + return PullAudioInputStream::Create(pvContext, readCallback, closeCallback, getPropertyCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback) +{ + return PullAudioInputStream::Create(readCallback, closeCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback) +{ + return PullAudioInputStream::Create(readCallback, closeCallback, getPropertyCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr callback) +{ + return PullAudioInputStream::Create(callback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback) +{ + return PullAudioInputStream::Create(format, pvContext, readCallback, closeCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr format, void* pvContext, CUSTOM_AUDIO_PULL_STREAM_READ_CALLBACK readCallback, CUSTOM_AUDIO_PULL_STREAM_CLOSE_CALLBACK closeCallback, CUSTOM_AUDIO_PULL_STREAM_GET_PROPERTY_CALLBACK getPropertyCallback) +{ + return PullAudioInputStream::Create(format, pvContext, readCallback, closeCallback, getPropertyCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback) +{ + return PullAudioInputStream::Create(format, readCallback, closeCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr format, ReadCallbackFunction_Type readCallback, CloseCallbackFunction_Type closeCallback, GetPropertyCallbackFunction_Type getPropertyCallback) +{ + return PullAudioInputStream::Create(format, readCallback, closeCallback, getPropertyCallback); +} + +inline std::shared_ptr AudioInputStream::CreatePullStream(std::shared_ptr format, std::shared_ptr callback) +{ + return PullAudioInputStream::Create(format, callback); +} + + +/// +/// Represents audio output stream used for custom audio output configurations. +/// Updated in version 1.7.0 +/// +class AudioOutputStream +{ +public: + + using WriteCallbackFunction_Type = ::std::function; + using CloseCallbackFunction_Type = ::std::function; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUDIOSTREAMHANDLE() const { return m_haudioStream.get(); } + + /// + /// Creates a memory backed PullAudioOutputStream. + /// + /// A shared pointer to PullAudioOutputStream + static std::shared_ptr CreatePullStream(); + + /// + /// Creates a PushAudioOutputStream that delegates to the specified callback functions for Write() and Close() methods. + /// + /// Context pointer to use when invoking the callbacks. + /// Write callback. + /// Close callback. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr CreatePushStream(void* pvContext, CUSTOM_AUDIO_PUSH_STREAM_WRITE_CALLBACK writeCallback, CUSTOM_AUDIO_PUSH_STREAM_CLOSE_CALLBACK closeCallback = nullptr); + + /// + /// Creates a PushAudioOutputStream that delegates to the specified callback functions for Write() and Close() methods. + /// + /// Write callback. + /// Close callback. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr CreatePushStream(WriteCallbackFunction_Type writeCallback, CloseCallbackFunction_Type closeCallback = nullptr); + + /// + /// Creates a PushAudioOutputStream that delegates to the specified callback interface for Write() and Close() methods. + /// + /// Shared pointer to PushAudioOutputStreamCallback instance. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr CreatePushStream(std::shared_ptr callback); + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AudioOutputStream(SPXAUDIOSTREAMHANDLE haudioStream) : m_haudioStream(haudioStream) { } + + /// + /// Destructor, does nothing. + /// + virtual ~AudioOutputStream() {} + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_haudioStream; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(AudioOutputStream); +}; + + +/// +/// Represents memory backed pull audio output stream used for custom audio output. +/// Updated in version 1.7.0 +/// +class PullAudioOutputStream : public AudioOutputStream +{ +public: + friend class Dialog::ActivityReceivedEventArgs; + + /// + /// Creates a memory backed PullAudioOutputStream. + /// + /// A shared pointer to PullAudioOutputStream + static std::shared_ptr Create() + { + SPXAUDIOSTREAMHANDLE haudioStream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_create_pull_audio_output_stream(&haudioStream)); + + auto stream = new PullAudioOutputStream(haudioStream); + return std::shared_ptr(stream); + } + + /// + /// Reads a chunk of the audio data and fill it to given buffer + /// + /// A buffer to receive read data. + /// Size of the buffer. + /// Size of data filled to the buffer, 0 means end of stream + inline uint32_t Read(uint8_t* buffer, uint32_t bufferSize) + { + uint32_t filledSize = 0; + SPX_THROW_ON_FAIL(pull_audio_output_stream_read(m_haudioStream, buffer, bufferSize, &filledSize)); + + return filledSize; + } + + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PullAudioOutputStream(SPXAUDIOSTREAMHANDLE haudioStream) : AudioOutputStream(haudioStream) { } + + /*! \endcond */ + + +private: + + template + static std::shared_ptr SpxAllocSharedBuffer(size_t sizeInBytes) + { + auto ptr = reinterpret_cast(new uint8_t[sizeInBytes]); + auto deleter = [](T* p) { delete[] reinterpret_cast(p); }; + + std::shared_ptr buffer(ptr, deleter); + return buffer; + } + + +private: + + DISABLE_COPY_AND_MOVE(PullAudioOutputStream); + + std::vector m_audioData; +}; + + +/// +/// An interface that defines callback methods for an audio output stream. +/// Updated in version 1.7.0 +/// +/// +/// Derive from this class and implement its function to provide your own +/// data as an audio output stream. +/// +class PushAudioOutputStreamCallback +{ +public: + + /// + /// Destructor, does nothing. + /// + virtual ~PushAudioOutputStreamCallback() {} + + /// + /// This function is called to synchronously put data to the audio stream. + /// + /// The pointer to the buffer from which to consume the audio data. + /// The size of the buffer. + /// The number of bytes consumed from the buffer + virtual int Write(uint8_t* dataBuffer, uint32_t size) = 0; + + /// + /// This function is called to close the audio stream. + /// + /// + virtual void Close() = 0; + +protected: + + /*! \cond PROTECTED */ + + /// + /// Constructor, does nothing. + /// + PushAudioOutputStreamCallback() {}; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PushAudioOutputStreamCallback); +}; + + +/// +/// Push audio output stream class. +/// Added in version 1.4.0 +/// +class PushAudioOutputStream : public AudioOutputStream +{ +public: + + /// + /// Creates a PushAudioOutputStream utilizing the specified Write() and Close() "C" callback functions pointers + /// + /// Context pointer to use when invoking the callbacks. + /// Write callback. + /// Close callback. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr Create(void* pvContext, CUSTOM_AUDIO_PUSH_STREAM_WRITE_CALLBACK writeCallback, CUSTOM_AUDIO_PUSH_STREAM_CLOSE_CALLBACK closeCallback = nullptr) + { + return Create( + [=](uint8_t* buffer, uint32_t size) -> int { return writeCallback(pvContext, buffer, size); }, + [=]() { if (closeCallback != nullptr) { closeCallback(pvContext); } }); + } + + /// + /// Creates a PushAudioOutputStream utilizing the specified Write() and Close() callback functions. + /// + /// Write callback. + /// Close callback. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr Create(WriteCallbackFunction_Type writeCallback, CloseCallbackFunction_Type closeCallback = nullptr) + { + auto wrapper = std::make_shared(writeCallback, closeCallback); + return Create(wrapper); + } + + /// + /// Creates a PushAudioOutputStream utilizing the specified callback interface with Write() and Close() callback function. + /// + /// Shared pointer to PushAudioOutputStreamCallback instance. + /// A shared pointer to PushAudioOutputStream + static std::shared_ptr Create(std::shared_ptr callback) + { + SPXAUDIOSTREAMHANDLE haudioStream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_create_push_audio_output_stream(&haudioStream)); + + auto stream = new PushAudioOutputStream(haudioStream); + SPX_THROW_ON_FAIL(push_audio_output_stream_set_callbacks(haudioStream, stream, WriteCallbackWrapper, CloseCallbackWrapper)); + stream->m_callback = callback; + + return std::shared_ptr(stream); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PushAudioOutputStream(SPXAUDIOSTREAMHANDLE haudioStream) : AudioOutputStream(haudioStream) { } + + class FunctionCallbackWrapper : public PushAudioOutputStreamCallback + { + public: + + FunctionCallbackWrapper(WriteCallbackFunction_Type writeCallback, CloseCallbackFunction_Type closeCallback) : + m_writeCallback(writeCallback), + m_closeCallback(closeCallback) + { + }; + + int Write(uint8_t* dataBuffer, uint32_t size) override { return m_writeCallback(dataBuffer, size); } + void Close() override { if (m_closeCallback != nullptr) m_closeCallback(); }; + + private: + + DISABLE_COPY_AND_MOVE(FunctionCallbackWrapper); + + WriteCallbackFunction_Type m_writeCallback; + CloseCallbackFunction_Type m_closeCallback; + }; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PushAudioOutputStream); + + static int WriteCallbackWrapper(void* pvContext, uint8_t* dataBuffer, uint32_t size) + { + PushAudioOutputStream* ptr = (PushAudioOutputStream*)pvContext; + return ptr->m_callback->Write(dataBuffer, size); + } + + static void CloseCallbackWrapper(void* pvContext) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + PushAudioOutputStream* ptr = (PushAudioOutputStream*)pvContext; + ptr->m_callback->Close(); + } + + std::shared_ptr m_callback; +}; + + +inline std::shared_ptr AudioOutputStream::CreatePullStream() +{ + return PullAudioOutputStream::Create(); +} + +inline std::shared_ptr AudioOutputStream::CreatePushStream(void* pvContext, CUSTOM_AUDIO_PUSH_STREAM_WRITE_CALLBACK writeCallback, CUSTOM_AUDIO_PUSH_STREAM_CLOSE_CALLBACK closeCallback) +{ + return PushAudioOutputStream::Create(pvContext, writeCallback, closeCallback); +} + +inline std::shared_ptr AudioOutputStream::CreatePushStream(WriteCallbackFunction_Type writeCallback, CloseCallbackFunction_Type closeCallback) +{ + return PushAudioOutputStream::Create(writeCallback, closeCallback); +} + +inline std::shared_ptr AudioOutputStream::CreatePushStream(std::shared_ptr callback) +{ + return PushAudioOutputStream::Create(callback); +} + + +} } } } // Microsoft::CognitiveServices::Speech::Audio diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream_format.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream_format.h new file mode 100644 index 0000000..ea2156b --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_audio_stream_format.h @@ -0,0 +1,215 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_audio_stream_format.h: Public API declarations for AudioStreamFormat and related C++ classes +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Audio { + +/// +/// Defines supported audio stream container format. +/// Changed in version 1.4.0. +/// +enum class AudioStreamContainerFormat +{ + /// + /// Stream ContainerFormat definition for OGG OPUS. + /// + OGG_OPUS = 0x101, + + /// + /// Stream ContainerFormat definition for MP3. + /// + MP3 = 0x102, + + /// + /// Stream ContainerFormat definition for FLAC. Added in version 1.7.0. + /// + FLAC = 0x103, + + /// + /// Stream ContainerFormat definition for ALAW. Added in version 1.7.0. + /// + ALAW = 0x104, + + /// + /// Stream ContainerFormat definition for MULAW. Added in version 1.7.0. + /// + MULAW = 0x105, + + /// + /// Stream ContainerFormat definition for AMRNB. Currently not supported. + /// + AMRNB = 0x106, + + /// + /// Stream ContainerFormat definition for AMRWB. Currently not supported. + /// + AMRWB = 0x107, + + /// + /// Stream ContainerFormat definition for any other or unknown format. + /// + ANY = 0x108 +}; + +/// +/// Represents the format specified inside WAV container. +/// +enum class AudioStreamWaveFormat +{ + /// + /// AudioStreamWaveFormat definition for PCM (pulse-code modulated) data in integer format. + /// + PCM = 0x0001, + + /// + /// AudioStreamWaveFormat definition A-law-encoded format. + /// + ALAW = 0x0006, + + /// + /// AudioStreamWaveFormat definition for Mu-law-encoded format. + /// + MULAW = 0x0007, + + /// + /// AudioStreamWaveFormat definition for G.722-encoded format. + /// + G722 = 0x028F +}; + +/// +/// Class to represent the audio stream format used for custom audio input configurations. +/// Updated in version 1.5.0. +/// +class AudioStreamFormat +{ +public: + + /// + /// Destructor, does nothing. + /// + virtual ~AudioStreamFormat() {} + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUDIOSTREAMFORMATHANDLE() const { return m_hformat.get(); } + + /// + /// Creates an audio stream format object representing the default audio stream format (16 kHz, 16 bit, mono PCM). + /// + /// A shared pointer to AudioStreamFormat + static std::shared_ptr GetDefaultInputFormat() + { + SPXAUDIOSTREAMFORMATHANDLE hformat = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_format_create_from_default_input(&hformat)); + + auto format = new AudioStreamFormat(hformat); + return std::shared_ptr(format); + } + + /// + /// Creates an audio stream format object with the specified PCM waveformat characteristics. + /// + /// Samples per second. + /// Bits per sample. + /// Number of channels in the waveform-audio data. + /// The format specified inside the WAV container. + /// A shared pointer to AudioStreamFormat + static std::shared_ptr GetWaveFormat(uint32_t samplesPerSecond, uint8_t bitsPerSample, uint8_t channels, AudioStreamWaveFormat waveFormat) + { + SPXAUDIOSTREAMFORMATHANDLE hformat = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_format_create_from_waveformat(&hformat, samplesPerSecond, bitsPerSample, channels, (Audio_Stream_Wave_Format)waveFormat)); + + auto format = new AudioStreamFormat(hformat); + return std::shared_ptr(format); + } + + /// + /// Creates an audio stream format object with the specified PCM waveformat characteristics. + /// + /// Samples per second. + /// Bits per sample. + /// Number of channels in the waveform-audio data. + /// A shared pointer to AudioStreamFormat + static std::shared_ptr GetWaveFormatPCM(uint32_t samplesPerSecond, uint8_t bitsPerSample = 16, uint8_t channels = 1) + { + SPXAUDIOSTREAMFORMATHANDLE hformat = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_format_create_from_waveformat(&hformat, samplesPerSecond, bitsPerSample, channels, Audio_Stream_Wave_Format::StreamWaveFormat_PCM)); + + auto format = new AudioStreamFormat(hformat); + return std::shared_ptr(format); + } + + /// + /// Creates an audio stream format object representing the default audio stream format (16 kHz, 16 bit, mono PCM). + /// Added in version 1.4.0 + /// + /// A shared pointer to AudioStreamFormat + static std::shared_ptr GetDefaultOutputFormat() + { + SPXAUDIOSTREAMFORMATHANDLE hformat = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_format_create_from_default_output(&hformat)); + + auto format = new AudioStreamFormat(hformat); + return std::shared_ptr(format); + } + + /// + /// Creates an audio stream format object with the specified compressed audio container format, to be used as input format. + /// Support added in 1.4.0. + /// + /// + /// Formats are defined in AudioStreamContainerFormat enum. + /// + /// Compressed format type. + /// A shared pointer to AudioStreamFormat. + static std::shared_ptr GetCompressedFormat(AudioStreamContainerFormat compressedFormat) + { + SPXAUDIOSTREAMFORMATHANDLE hformat = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_stream_format_create_from_compressed_format(&hformat, (Audio_Stream_Container_Format)compressedFormat)); + + auto format = new AudioStreamFormat(hformat); + return std::shared_ptr(format); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AudioStreamFormat(SPXAUDIOSTREAMFORMATHANDLE hformat) : m_hformat(hformat) { } + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(AudioStreamFormat); + + /// + /// Internal member variable that holds the smart handle. + /// + SmartHandle m_hformat; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Audio diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_config.h new file mode 100644 index 0000000..e68f3fc --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_config.h @@ -0,0 +1,141 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines auto detection source configuration +/// Updated in 1.13.0 +/// +class AutoDetectSourceLanguageConfig +{ +public: + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXAUTODETECTSOURCELANGCONFIGHANDLE() const { return m_hconfig; } + + /// + /// Creates an instance of the AutoDetectSourceLanguageConfig with open range as source languages + /// Note: only , embedded speech translation and multilingual support source language auto detection from open range, + /// for , please use AutoDetectSourceLanguageConfig with specific source languages. + /// Added in 1.13.0 + /// + /// A shared pointer to the new AutoDetectSourceLanguageConfig instance. + static std::shared_ptr FromOpenRange() + { + SPXAUTODETECTSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(create_auto_detect_source_lang_config_from_open_range(&hconfig)); + auto ptr = new AutoDetectSourceLanguageConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the AutoDetectSourceLanguageConfig with source languages + /// + /// The list of source languages. + /// A shared pointer to the new AutoDetectSourceLanguageConfig instance. + static std::shared_ptr FromLanguages(const std::vector& languages) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, languages.empty()); + SPXAUTODETECTSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + std::string languagesStr; + bool isFirst = true; + for (const SPXSTRING& language : languages) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, language.empty()); + if (!isFirst) + { + languagesStr += ","; + } + isFirst = false; + languagesStr += Utils::ToUTF8(language); + } + SPX_THROW_ON_FAIL(create_auto_detect_source_lang_config_from_languages(&hconfig, languagesStr.c_str())); + auto ptr = new AutoDetectSourceLanguageConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the AutoDetectSourceLanguageConfig with a list of source language config + /// + /// The list of source languages config + /// A shared pointer to the new AutoDetectSourceLanguageConfig instance. + static std::shared_ptr FromSourceLanguageConfigs(std::vector> configList) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, configList.empty()); + SPXAUTODETECTSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + bool isFirst = true; + for (const auto& config : configList) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, config == nullptr); + if (isFirst) + { + SPX_THROW_ON_FAIL(create_auto_detect_source_lang_config_from_source_lang_config(&hconfig, Utils::HandleOrInvalid(config))); + isFirst = false; + } + else + { + SPX_THROW_ON_FAIL(add_source_lang_config_to_auto_detect_source_lang_config(hconfig, Utils::HandleOrInvalid(config))); + } + } + auto ptr = new AutoDetectSourceLanguageConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Destructs the object. + /// + virtual ~AutoDetectSourceLanguageConfig() + { + auto_detect_source_lang_config_release(m_hconfig); + property_bag_release(m_propertybag); + } + +private: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit AutoDetectSourceLanguageConfig(SPXAUTODETECTSOURCELANGCONFIGHANDLE hconfig) + :m_hconfig(hconfig) + { + SPX_THROW_ON_FAIL(auto_detect_source_lang_config_get_property_bag(hconfig, &m_propertybag)); + } + + /// + /// Internal member variable that holds the config + /// + SPXAUTODETECTSOURCELANGCONFIGHANDLE m_hconfig; + + /// + /// Internal member variable that holds the properties of the speech config + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + DISABLE_COPY_AND_MOVE(AutoDetectSourceLanguageConfig); +}; + +}}} + diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_result.h new file mode 100644 index 0000000..538ea58 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_auto_detect_source_lang_result.h @@ -0,0 +1,85 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Contains auto detected source language result +/// Added in 1.8.0 +/// +class AutoDetectSourceLanguageResult +{ +public: + + /// + /// Creates an instance of AutoDetectSourceLanguageResult object for the speech recognition result. + /// + /// The speech recognition result. + /// A shared pointer to AutoDetectSourceLanguageResult. + static std::shared_ptr FromResult(std::shared_ptr result) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, result == nullptr); + auto ptr = new AutoDetectSourceLanguageResult(result); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of AutoDetectSourceLanguageResult object for the speech translation result. + /// + /// The speech translation result. + /// A shared pointer to AutoDetectSourceLanguageResult. + static std::shared_ptr FromResult(std::shared_ptr result) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, result == nullptr); + auto ptr = new AutoDetectSourceLanguageResult(result); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of AutoDetectSourceLanguageResult object for the convesation transcription result. + /// + /// The conversation transcription result. + /// A shared pointer to AutoDetectSourceLanguageResult. + static std::shared_ptr FromResult(std::shared_ptr result) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, result == nullptr); + auto ptr = new AutoDetectSourceLanguageResult(result); + return std::shared_ptr(ptr); + } + + /// + /// The language value + /// If this is empty, it means the system fails to detect the source language automatically + /// + const SPXSTRING Language; + +protected: + + /*! \cond PROTECTED */ + // Using RecognitionResult pointer, so this can cover all classes that inherit from RecognitionResult + AutoDetectSourceLanguageResult(std::shared_ptr result) : + Language(result->Properties.GetProperty(PropertyId::SpeechServiceConnection_AutoDetectSourceLanguageResult)) + { + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(AutoDetectSourceLanguageResult); +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_class_language_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_class_language_model.h new file mode 100644 index 0000000..a3099cc --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_class_language_model.h @@ -0,0 +1,70 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_class_language_model.h: Public API declarations for ClassLanguageModel C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Represents a list of grammars for dynamic grammar scenarios. +/// Added in version 1.7.0. +/// +/// +/// ClassLanguageModels are only usable in specific scenarios and are not generally available. +/// +class ClassLanguageModel : public Grammar +{ +public: + + /// + /// Creates a class language model from a storage ID. + /// + /// The persisted storage ID of the language model. + /// The grammar list associated with the recognizer. + /// + /// Creating a ClassLanguageModel from a storage ID is only usable in specific scenarios and is not generally available. + /// + static std::shared_ptr FromStorageId(const SPXSTRING& storageId) + { + SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(class_language_model_from_storage_id(&hgrammar, Utils::ToUTF8(storageId.c_str()))); + + return std::make_shared(hgrammar); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Class Language Model handle. + explicit ClassLanguageModel(SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID) : Grammar(hgrammar) { } + + /// + /// Assigns a grammar to a class in the language mode. + /// + /// Name of the class to assign the grammar to. + /// Grammar to assign. + template + void AssignClass(const SPXSTRING& className, std::shared_ptr grammar) + { + SPX_THROW_ON_FAIL(class_language_model_assign_class(m_hgrammar.get(), Utils::ToUTF8(className.c_str()), (SPXPHRASEHANDLE)(*grammar.get()))); + } + +private: + + DISABLE_COPY_AND_MOVE(ClassLanguageModel); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_common.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_common.h new file mode 100644 index 0000000..2e8d382 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_common.h @@ -0,0 +1,16 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_common.h: Public API declarations for global C++ APIs/namespaces +// + +#pragma once + +#include +#include +#include +#include // must include after spxdebug.h or speechapi*.h (can NOT be included before) + +#define DISABLE_COPY_AND_MOVE(T) AZAC_DISABLE_COPY_AND_MOVE(T) +#define DISABLE_DEFAULT_CTORS(T) AZAC_DISABLE_DEFAULT_CTORS(T) diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection.h new file mode 100644 index 0000000..d4293b7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection.h @@ -0,0 +1,346 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Connection is a proxy class for managing connection to the speech service of the specified Recognizer. +/// By default, a Recognizer autonomously manages connection to service when needed. +/// The Connection class provides additional methods for users to explicitly open or close a connection and +/// to subscribe to connection status changes. +/// The use of Connection is optional. It is intended for scenarios where fine tuning of application +/// behavior based on connection status is needed. Users can optionally call Open() to manually +/// initiate a service connection before starting recognition on the Recognizer associated with this Connection. +/// After starting a recognition, calling Open() or Close() might fail. This will not impact +/// the Recognizer or the ongoing recognition. Connection might drop for various reasons, the Recognizer will +/// always try to reinstitute the connection as required to guarantee ongoing operations. In all these cases +/// Connected/Disconnected events will indicate the change of the connection status. +/// Updated in version 1.17.0. +/// +class Connection : public std::enable_shared_from_this +{ + +public: + /// + /// Gets the Connection instance from the specified recognizer. + /// + /// The recognizer associated with the connection. + /// The Connection instance of the recognizer. + static std::shared_ptr FromRecognizer(std::shared_ptr recognizer) + { + SPX_INIT_HR(hr); + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, recognizer == nullptr); + + SPXCONNECTIONHANDLE handle = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(hr = ::connection_from_recognizer(recognizer->m_hreco, &handle)); + + return std::make_shared(handle); + } + + /// + /// Gets the Connection instance from the specified conversation translator. + /// + /// The conversation translator associated with the connection. + /// The Connection instance of the conversation translator. + static std::shared_ptr FromConversationTranslator(std::shared_ptr convTrans) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, convTrans == nullptr); + + SPXCONNECTIONHANDLE handle = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::connection_from_conversation_translator(convTrans->m_handle, &handle)); + + return std::make_shared(handle); + } + + /// + /// Gets the Connection instance from the specified dialog service connector, used for observing and managing + /// connection and disconnection from the speech service. + /// + /// The dialog service connector associated with the connection. + /// The Connection instance of the dialog service connector. + static std::shared_ptr FromDialogServiceConnector(std::shared_ptr dialogServiceConnector) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, dialogServiceConnector == nullptr); + + SPXCONNECTIONHANDLE handle = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::connection_from_dialog_service_connector(dialogServiceConnector->m_handle, &handle)); + + return std::make_shared(handle); + } + + /// + /// Gets the Connection instance from the specified speech synthesizer. + /// Added in version 1.17.0 + /// + /// The speech synthesizer associated with the connection. + /// The Connection instance of the speech synthesizer. + static std::shared_ptr FromSpeechSynthesizer(std::shared_ptr synthesizer) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, synthesizer == nullptr); + + SPXCONNECTIONHANDLE handle = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::connection_from_speech_synthesizer(synthesizer->m_hsynth, &handle)); + + return std::make_shared(handle); + } + + /// + /// Starts to set up connection to the service. + /// Users can optionally call Open() to manually set up a connection in advance before starting recognition/synthesis on the + /// Recognizer/Synthesizer associated with this Connection. After starting recognition, calling Open() might fail, depending on + /// the process state of the Recognizer/Synthesizer. But the failure does not affect the state of the associated Recognizer/Synthesizer. + /// Note: On return, the connection might not be ready yet. Please subscribe to the Connected event to + /// be notified when the connection is established. + /// + /// Indicates whether the connection is used for continuous recognition or single-shot recognition. It takes no effect if the connection is from SpeechSynthsizer. + void Open(bool forContinuousRecognition) + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_connectionHandle == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::connection_open(m_connectionHandle, forContinuousRecognition)); + } + + /// + /// Closes the connection the service. + /// Users can optionally call Close() to manually shutdown the connection of the associated Recognizer/Synthesizer. The call + /// might fail, depending on the process state of the Recognizer/Synthesizer. But the failure does not affect the state of the + /// associated Recognizer/Synthesizer. + /// + void Close() + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_connectionHandle == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::connection_close(m_connectionHandle)); + } + + /// + /// Appends a parameter in a message to service. + /// Added in version 1.7.0. + /// + /// the message path. + /// Name of the property. + /// Value of the property. This is a json string. + /// void. + void SetMessageProperty(const SPXSTRING& path, const SPXSTRING& propertyName, const SPXSTRING& propertyValue) + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_connectionHandle == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::connection_set_message_property(m_connectionHandle, Utils::ToUTF8(path).c_str(), Utils::ToUTF8(propertyName).c_str(), Utils::ToUTF8(propertyValue).c_str())); + } + + /// + /// Send a message to the speech service. + /// Added in version 1.7.0. + /// + /// The path of the message. + /// The payload of the message. This is a json string. + /// An empty future. + std::future SendMessageAsync(const SPXSTRING& path, const SPXSTRING& payload) + { + auto keep_alive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keep_alive, this, path, payload]() -> void { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_connectionHandle == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::connection_send_message(m_connectionHandle, Utils::ToUTF8(path.c_str()), Utils::ToUTF8(payload.c_str()))); + }); + return future; + } + + /// + /// Send a binary message to the speech service. + /// This method doesn't work for the connection of SpeechSynthesizer. + /// Added in version 1.10.0. + /// + /// The path of the message. + /// The binary payload of the message. + /// The size of the binary payload. + /// An empty future. + std::future SendMessageAsync(const SPXSTRING& path, uint8_t* payload, uint32_t size) + { + auto keep_alive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keep_alive, this, path, payload, size]() -> void { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_connectionHandle == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::connection_send_message_data(m_connectionHandle, Utils::ToUTF8(path.c_str()), payload, size)); + }); + return future; + } + + /// + /// The Connected event to indicate that the recognizer is connected to service. + /// + EventSignal Connected; + + /// + /// The Disconnected event to indicate that the recognizer is disconnected from service. + /// + EventSignal Disconnected; + + /// + /// The MessageReceived event to indicate that the underlying protocol received a message from the service. + /// Added in version 1.10.0. + /// + EventSignal MessageReceived; + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// The connection handle. + explicit Connection(SPXCONNECTIONHANDLE handle) : + Connected(GetConnectionEventConnectionsChangedCallback(), GetConnectionEventConnectionsChangedCallback()), + Disconnected(GetConnectionEventConnectionsChangedCallback(), GetConnectionEventConnectionsChangedCallback()), + MessageReceived(GetConnectionMessageEventConnectionsChangedCallback(), GetConnectionMessageEventConnectionsChangedCallback()), + m_connectionHandle(handle) + { + SPX_DBG_TRACE_FUNCTION(); + } + + /// + /// Destructor. + /// + ~Connection() + { + SPX_DBG_TRACE_FUNCTION(); + + try + { + Disconnected.DisconnectAll(); + Connected.DisconnectAll(); + } + catch (const std::exception& ex) + { + SPX_TRACE_ERROR("Exception caught in ~Connection(): %s", ex.what()); + (void)ex; + } + catch (...) + { + SPX_TRACE_ERROR("Unknown exception happened during ~Connection()."); + } + + if (m_connectionHandle != SPXHANDLE_INVALID) + { + ::connection_handle_release(m_connectionHandle); + m_connectionHandle = SPXHANDLE_INVALID; + } + } + +private: + DISABLE_COPY_AND_MOVE(Connection); + + SPXCONNECTIONHANDLE m_connectionHandle; + + static void FireConnectionEvent(bool firingConnectedEvent, SPXEVENTHANDLE event, void* context) + { + std::exception_ptr p; + try + { + std::unique_ptr connectionEvent{ new ConnectionEventArgs(event) }; + + auto connection = static_cast(context); + auto keepAlive = connection->shared_from_this(); + if (firingConnectedEvent) + { + connection->Connected.Signal(*connectionEvent.get()); + } + else + { + connection->Disconnected.Signal(*connectionEvent.get()); + } + } + +#ifdef SHOULD_HANDLE_FORCED_UNWIND + // Currently Python forcibly kills the thread by throwing __forced_unwind, + // taking care we propagate this exception further. + catch (abi::__forced_unwind&) + { + SPX_TRACE_ERROR("__forced_unwind exception caught in FireConnectionEvent."); + throw; + } +#endif + catch (...) + { + if (recognizer_event_handle_is_valid(event)) { + recognizer_event_handle_release(event); + } + SPX_TRACE_ERROR("Caught exception in FireConnectionEvent(%s). Will rethrow later.", firingConnectedEvent ? "Connected" : "Disconnected"); + throw; + } + + // ConnectionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(event)); + recognizer_event_handle_release(event); + } + + static void FireEvent_Connected(SPXEVENTHANDLE event, void* context) + { + FireConnectionEvent(true, event, context); + } + + static void FireEvent_Disconnected(SPXEVENTHANDLE event, void* context) + { + FireConnectionEvent(false, event, context); + } + + static void FireEvent_MessageReceived(SPXEVENTHANDLE event, void* context) + { + std::unique_ptr connectionEvent { new ConnectionMessageEventArgs(event) }; + + auto connection = static_cast(context); + auto keepAlive = connection->shared_from_this(); + connection->MessageReceived.Signal(*connectionEvent.get()); + } + + void ConnectionEventConnectionsChanged(const EventSignal& connectionEvent) + { + if (m_connectionHandle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_connectionHandle=0x%8p", __FUNCTION__, (void*)m_connectionHandle); + SPX_DBG_TRACE_VERBOSE_IF(!::connection_handle_is_valid(m_connectionHandle), "%s: m_connectionHandle is INVALID!!!", __FUNCTION__); + + if (&connectionEvent == &Connected) + { + SPX_THROW_ON_FAIL(connection_connected_set_callback(m_connectionHandle, Connected.IsConnected() ? FireEvent_Connected : nullptr, this)); + } + else if (&connectionEvent == &Disconnected) + { + SPX_THROW_ON_FAIL(connection_disconnected_set_callback(m_connectionHandle, Disconnected.IsConnected() ? FireEvent_Disconnected : nullptr, this)); + } + } + } + + void ConnectionMessageEventConnectionsChanged(const EventSignal& connectionEvent) + { + if (m_connectionHandle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_connectionHandle=0x%8p", __FUNCTION__, (void*)m_connectionHandle); + SPX_DBG_TRACE_VERBOSE_IF(!::connection_handle_is_valid(m_connectionHandle), "%s: m_connectionHandle is INVALID!!!", __FUNCTION__); + + if (&connectionEvent == &MessageReceived) + { + SPX_THROW_ON_FAIL(connection_message_received_set_callback(m_connectionHandle, MessageReceived.IsConnected() ? FireEvent_MessageReceived : nullptr, this)); + } + } + } + + inline std::function&)> GetConnectionEventConnectionsChangedCallback() + { + return [=](const EventSignal& connectionEvent) { this->ConnectionEventConnectionsChanged(connectionEvent); }; + } + + inline std::function&)> GetConnectionMessageEventConnectionsChangedCallback() + { + return [=](const EventSignal& connectionEvent) { this->ConnectionMessageEventConnectionsChanged(connectionEvent); }; + } +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_eventargs.h new file mode 100644 index 0000000..1e56f25 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_eventargs.h @@ -0,0 +1,68 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Provides data for the ConnectionEvent. +/// Added in version 1.2.0. +/// +class ConnectionEventArgs : public SessionEventArgs +{ +protected: + /*! \cond PRIVATE */ + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXEVENTHANDLE hevent) : + PropertyCollection([=]() + { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + recognizer_connection_event_get_property_bag(hevent, &hpropbag); + return hpropbag; + }()) + {} + }; + + PrivatePropertyCollection m_properties; + /*! \endcond */ + +public: + + /// + /// Constructor. + /// + /// Event handle. + explicit ConnectionEventArgs(SPXEVENTHANDLE hevent) : + SessionEventArgs(hevent), + m_properties(hevent), + Properties(m_properties) + { + }; + + /// + virtual ~ConnectionEventArgs() {} + + /// + /// Collection of additional properties. + /// + const PropertyCollection& Properties; + +private: + + DISABLE_COPY_AND_MOVE(ConnectionEventArgs); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message.h new file mode 100644 index 0000000..a1a9469 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message.h @@ -0,0 +1,152 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_connection_message.h: Public API declarations for ConnectionMessage C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// ConnectionMessage represents implementation specific messages sent to and received from +/// the speech service. These messages are provided for debugging purposes and should not +/// be used for production use cases with the Azure Cognitive Services Speech Service. +/// Messages sent to and received from the Speech Service are subject to change without +/// notice. This includes message contents, headers, payloads, ordering, etc. +/// Added in version 1.10.0. +/// +class ConnectionMessage +{ +private: + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXCONNECTIONMESSAGEHANDLE hcm) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + ::connection_message_get_property_bag(hcm, &hpropbag); + return hpropbag; + }()) + { + } + }; + + SPXCONNECTIONMESSAGEHANDLE m_hcm; + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Constructor. + /// + /// Event handle. + explicit ConnectionMessage(SPXCONNECTIONMESSAGEHANDLE hcm) : + m_hcm(hcm), + m_properties(hcm), + Properties(m_properties) + { + }; + + /// + /// Destructor. + /// + virtual ~ConnectionMessage() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hcm); + SPX_THROW_ON_FAIL(::connection_message_handle_release(m_hcm)); + } + + /// + /// Gets the message path. + /// + /// An std::string containing the message path. + std::string GetPath() const + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hcm == SPXHANDLE_INVALID); + return m_properties.GetProperty("connection.message.path"); + } + + /// + /// Checks to see if the ConnectionMessage is a text message. + /// See also IsBinaryMessage(). + /// + /// A bool indicated if the message payload is text. + bool IsTextMessage() const + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hcm == SPXHANDLE_INVALID); + return m_properties.GetProperty("connection.message.type") == "text"; + } + + /// + /// Checks to see if the ConnectionMessage is a binary message. + /// See also GetBinaryMessage(). + /// + /// A bool indicated if the message payload is binary. + bool IsBinaryMessage() const + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hcm == SPXHANDLE_INVALID); + return m_properties.GetProperty("connection.message.type") == "binary"; + } + + /// + /// Gets the text message payload. Typically the text message content-type is + /// application/json. To determine other content-types use + /// Properties.GetProperty("Content-Type"). + /// + /// An std::string containing the text message. + std::string GetTextMessage() const + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hcm == SPXHANDLE_INVALID); + return m_properties.GetProperty("connection.message.text.message"); + } + + /// + /// Gets the binary message payload. + /// + /// An std::vector containing the binary message. + std::vector GetBinaryMessage() const + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hcm == SPXHANDLE_INVALID); + auto size = ::connection_message_get_data_size(m_hcm); + + std::vector message(size); + SPX_THROW_ON_FAIL(::connection_message_get_data(m_hcm, message.data(), size)); + + return message; + } + + /// + /// A collection of properties and their values defined for this . + /// Message headers can be accessed via this collection (e.g. "Content-Type"). + /// + PropertyCollection& Properties; + +private: + + /*! \cond PRIVATE */ + + DISABLE_COPY_AND_MOVE(ConnectionMessage); + + /*! \endcond */ +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message_eventargs.h new file mode 100644 index 0000000..3ff6f79 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_connection_message_eventargs.h @@ -0,0 +1,79 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_connection_message_eventargs.h: Public API declarations for ConnectionMessageEventArgs C++ base class +// + +#pragma once +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Provides data for the ConnectionMessageEvent +/// +class ConnectionMessageEventArgs : public EventArgs +{ +private: + + /*! \cond PRIVATE */ + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_message; + + /*! \endcond */ + +public: + + /// + /// Constructor. Creates a new instance using the provided handle. + /// + /// Event handle. + explicit ConnectionMessageEventArgs(SPXEVENTHANDLE hevent) : + m_hevent(hevent), + m_message(std::make_shared(MessageHandleFromEventHandle(hevent))) + { + }; + + /// + /// Destructor. + /// + virtual ~ConnectionMessageEventArgs() + { + SPX_THROW_ON_FAIL(::connection_message_received_event_handle_release(m_hevent)); + } + + /// + /// Gets the associated with this . + /// + /// An `std::shared` containing the message. + std::shared_ptr GetMessage() const { return m_message; } + +private: + + /*! \cond PRIVATE */ + + DISABLE_COPY_AND_MOVE(ConnectionMessageEventArgs); + + SPXCONNECTIONMESSAGEHANDLE MessageHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXCONNECTIONMESSAGEHANDLE hcm = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::connection_message_received_event_get_message(hevent, &hcm)); + return hcm; + } + + /*! \endcond */ + +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation.h new file mode 100644 index 0000000..339f22c --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation.h @@ -0,0 +1,340 @@ + +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation.h: Public API declarations for Conversation C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Class for conversation. +/// Added in version 1.8.0 +/// +class Conversation : public std::enable_shared_from_this +{ +public: + + static constexpr size_t MAX_CONVERSATION_ID_LEN = 1024; + + /// + /// Create a conversation using a speech config and an optional conversation id. + /// + /// A shared smart pointer of a speech config object. + /// Conversation Id. + /// A shared smart pointer of the created conversation object. + static std::future> CreateConversationAsync(std::shared_ptr speechConfig, const SPXSTRING& conversationId = SPXSTRING()) + { + auto future = std::async(std::launch::async, [conversationId, speechConfig]() -> std::shared_ptr { + SPXCONVERSATIONHANDLE hconversation; + SPX_THROW_ON_FAIL(conversation_create_from_config(&hconversation, (SPXSPEECHCONFIGHANDLE)(*speechConfig), Utils::ToUTF8(conversationId).c_str())); + return std::make_shared(hconversation); + }); + return future; + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit Conversation(SPXCONVERSATIONHANDLE hconversation) : + m_hconversation(hconversation), + m_properties(hconversation), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~Conversation() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + ::conversation_release_handle(m_hconversation); + m_hconversation = SPXHANDLE_INVALID; + } + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXCONVERSATIONHANDLE () const { return m_hconversation; } + + /// + /// Get the conversation id. + /// + /// Conversation id. + SPXSTRING GetConversationId() + { + char id[MAX_CONVERSATION_ID_LEN + 1]; + std::memset(id, 0, MAX_CONVERSATION_ID_LEN); + SPX_THROW_ON_FAIL(conversation_get_conversation_id(m_hconversation, id, MAX_CONVERSATION_ID_LEN)); + return id; + } + + /// + /// Add a participant to a conversation using the user's id. + /// + /// Note: The returned participant can be used to remove. If the client changes the participant's attributes, + /// the changed attributes are passed on to the service only when the participant is added again. + /// + /// A user id. + /// a shared smart pointer of the participant. + std::future> AddParticipantAsync(const SPXSTRING& userId) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, userId]() -> std::shared_ptr { + const auto participant = Participant::From(userId); + SPX_THROW_ON_FAIL(conversation_update_participant(m_hconversation, true, (SPXPARTICIPANTHANDLE)(*participant))); + return participant; + }); + return future; + } + + /// + /// Add a participant to a conversation using the User object. + /// + /// A shared smart pointer to a User object. + /// The passed in User object. + std::future> AddParticipantAsync(const std::shared_ptr& user) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, user]() -> std::shared_ptr { + SPX_THROW_ON_FAIL(conversation_update_participant_by_user(m_hconversation, true, (SPXUSERHANDLE)(*user))); + return user; + }); + return future; + } + + /// + /// Add a participant to a conversation using the participant object + /// + /// A shared smart pointer to a participant object. + /// The passed in participant object. + std::future> AddParticipantAsync(const std::shared_ptr& participant) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, participant]() -> std::shared_ptr { + SPX_THROW_ON_FAIL(conversation_update_participant(m_hconversation, true, (SPXPARTICIPANTHANDLE)(*participant))); + return participant; + }); + return future; + } + + /// + /// Remove a participant from a conversation using the participant object + /// + /// A shared smart pointer of a participant object. + /// An empty future. + std::future RemoveParticipantAsync(const std::shared_ptr& participant) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, participant]() -> void { + SPX_THROW_ON_FAIL(conversation_update_participant(m_hconversation, false, (SPXPARTICIPANTHANDLE)(*participant))); + }); + return future; + } + + /// + /// Remove a participant from a conversation using the User object + /// + /// A smart pointer of a User. + /// An empty future. + std::future RemoveParticipantAsync(const std::shared_ptr& user) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, user]() -> void { + SPX_THROW_ON_FAIL(conversation_update_participant_by_user(m_hconversation, false, SPXUSERHANDLE(*user))); + }); + return future; + } + + /// + /// Remove a participant from a conversation using a user id string. + /// + /// A user id. + /// An empty future. + std::future RemoveParticipantAsync(const SPXSTRING& userId) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, userId]() -> void { + SPX_THROW_ON_FAIL(conversation_update_participant_by_user_id(m_hconversation, false, Utils::ToUTF8(userId.c_str()))); + }); + return future; + } + + /// + /// Ends the current conversation. + /// + /// An empty future. + std::future EndConversationAsync() + { + return RunAsync(::conversation_end_conversation); + } + + /// + /// Sets the authorization token that will be used for connecting the server. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Start the conversation. + /// + /// An empty future. + std::future StartConversationAsync() + { + return RunAsync(::conversation_start_conversation); + } + + /// + /// Deletes the conversation. Any participants that are still part of the converation + /// will be ejected after this call. + /// + /// An empty future. + std::future DeleteConversationAsync() + { + return RunAsync(::conversation_delete_conversation); + } + + /// + /// Locks the conversation. After this no new participants will be able to join. + /// + /// An empty future. + std::future LockConversationAsync() + { + return RunAsync(::conversation_lock_conversation); + } + + /// + /// Unlocks the conversation. + /// + /// An empty future. + std::future UnlockConversationAsync() + { + return RunAsync(::conversation_unlock_conversation); + } + + /// + /// Mutes all participants except for the host. This prevents others from generating + /// transcriptions, or sending text messages. + /// + /// An empty future. + std::future MuteAllParticipantsAsync() + { + return RunAsync(::conversation_mute_all_participants); + } + + /// + /// Allows other participants to generate transcriptions, or send text messages. + /// + /// An empty future. + std::future UnmuteAllParticipantsAsync() + { + return RunAsync(::conversation_unmute_all_participants); + } + + /// + /// Mutes a particular participant. This will prevent them generating new transcriptions, + /// or sending text messages. + /// + /// The identifier for the participant. + /// An empty future. + std::future MuteParticipantAsync(const SPXSTRING& participantId) + { + return RunAsync([participantId = Utils::ToUTF8(participantId)](auto handle) + { + return ::conversation_mute_participant(handle, participantId.c_str()); + }); + } + + /// + /// Unmutes a particular participant. + /// + /// The identifier for the participant. + /// An empty future. + std::future UnmuteParticipantAsync(const SPXSTRING& participantId) + { + return RunAsync([participantId = Utils::ToUTF8(participantId)](auto handle) + { + return ::conversation_unmute_participant(handle, participantId.c_str()); + }); + } + +private: + + /*! \cond PRIVATE */ + + SPXCONVERSATIONHANDLE m_hconversation; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXCONVERSATIONHANDLE hconv) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + conversation_get_property_bag(hconv, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + inline std::future RunAsync(std::function func) + { + auto keepalive = this->shared_from_this(); + return std::async(std::launch::async, [keepalive, this, func]() + { + SPX_THROW_ON_FAIL(func(m_hconversation)); + }); + } + + /*! \endcond */ + +public: + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + +}; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcriber.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcriber.h new file mode 100644 index 0000000..9cfaa52 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcriber.h @@ -0,0 +1,509 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation_transcriber.h: Public API declarations for ConversationTranscriber C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +class Session; + +/// +/// Class for ConversationTranscribers. +/// +class ConversationTranscriber final : public Recognizer +{ +public: + /// + /// Create a conversation transcriber from a speech config + /// + /// Speech configuration. + /// A smart pointer wrapped conversation transcriber pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_conversation_transcriber_from_config( + &hreco, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a conversation transcriber from a speech config and audio config. + /// + /// Speech configuration. + /// Audio configuration. + /// A smart pointer wrapped conversation transcriber pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_conversation_transcriber_from_config( + &hreco, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a conversation transcriber from a speech config, auto detection source language config and audio config + /// + /// Speech configuration. + /// Auto detection source language config. + /// Audio configuration. + /// A smart pointer wrapped conversation trasncriber pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_conversation_transcriber_from_auto_detect_source_lang_config( + &hreco, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(autoDetectSourceLangConfig), + Utils::HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a conversation transcriber from a speech config, source language config and audio config + /// + /// Speech configuration. + /// Source language config. + /// Audio configuration. + /// A smart pointer wrapped conversation transcriber pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr sourceLanguageConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_conversation_transcriber_from_source_lang_config( + &hreco, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(sourceLanguageConfig), + Utils::HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a conversation transcriber from a speech config, source language and audio config + /// + /// Speech configuration. + /// Source language. + /// Audio configuration. + /// A smart pointer wrapped conversation transcriber pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + const SPXSTRING& sourceLanguage, + std::shared_ptr audioInput = nullptr) + { + return FromConfig(speechconfig, SourceLanguageConfig::FromLanguage(sourceLanguage), audioInput); + } + + /// + /// Asynchronously starts a conversation transcribing. + /// + /// An empty future. + std::future StartTranscribingAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStartContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async(m_hreco, &m_hasyncStartContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async_wait_for(m_hasyncStartContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStartContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStartContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + /// + /// Asynchronously stops a conversation transcribing. + /// + /// An empty future. + std::future StopTranscribingAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStopContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async(m_hreco, &m_hasyncStopContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async_wait_for(m_hasyncStopContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStopContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStopContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit ConversationTranscriber(SPXRECOHANDLE hreco) throw() : + Recognizer(hreco), + SessionStarted(GetSessionEventConnectionsChangedCallback()), + SessionStopped(GetSessionEventConnectionsChangedCallback()), + SpeechStartDetected(GetRecognitionEventConnectionsChangedCallback()), + SpeechEndDetected(GetRecognitionEventConnectionsChangedCallback()), + Transcribing(GetRecoEventConnectionsChangedCallback()), + Transcribed(GetRecoEventConnectionsChangedCallback()), + Canceled(GetRecoCanceledEventConnectionsChangedCallback()), + m_hasyncStartContinuous(SPXHANDLE_INVALID), + m_hasyncStopContinuous(SPXHANDLE_INVALID), + m_properties(hreco), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~ConversationTranscriber() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + /// + /// Signal for events indicating the start of a recognition session (operation). + /// + EventSignal SessionStarted; + + /// + /// Signal for events indicating the end of a recognition session (operation). + /// + EventSignal SessionStopped; + + /// + /// Signal for events indicating the start of speech. + /// + EventSignal SpeechStartDetected; + + /// + /// Signal for events indicating the end of speech. + /// + EventSignal SpeechEndDetected; + + /// + /// Signal for events containing intermediate recognition results. + /// + EventSignal Transcribing; + + /// + /// Signal for events containing final recognition results. + /// (indicating a successful recognition attempt). + /// + EventSignal Transcribed; + + /// + /// Signal for events containing canceled recognition results + /// (indicating a recognition attempt that was canceled as a result or a direct cancellation request + /// or, alternatively, a transport or protocol failure). + /// + EventSignal Canceled; + + /// + /// Sets the authorization token that will be used for connecting the server. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + protected: + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + virtual void TermRecognizer() override + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // Disconnect the event signals in reverse construction order + Canceled.DisconnectAll(); + Transcribed.DisconnectAll(); + Transcribing.DisconnectAll(); + SpeechEndDetected.DisconnectAll(); + SpeechStartDetected.DisconnectAll(); + SessionStopped.DisconnectAll(); + SessionStarted.DisconnectAll(); + + // Close the async handles we have open for Recognize, StartContinuous, and StopContinuous + for (auto handle : { &m_hasyncStartContinuous, &m_hasyncStopContinuous }) + { + if (*handle != SPXHANDLE_INVALID && ::recognizer_async_handle_is_valid(*handle)) + { + ::recognizer_async_handle_release(*handle); + *handle = SPXHANDLE_INVALID; + } + } + + // Ask the base to term + Recognizer::TermRecognizer(); + } + + void RecoEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Transcribing) + { + recognizer_recognizing_set_callback(m_hreco, Transcribing.IsConnected() ? FireEvent_Transcribing : nullptr, this); + } + else if (&recoEvent == &Transcribed) + { + recognizer_recognized_set_callback(m_hreco, Transcribed.IsConnected() ? FireEvent_Transcribed : nullptr, this); + } + } + } + + static void FireEvent_Transcribing(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new ConversationTranscriptionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Transcribing.Signal(*recoEvent.get()); + } + + static void FireEvent_Transcribed(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new ConversationTranscriptionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Transcribed.Signal(*recoEvent.get()); + } + + void RecoCanceledEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Canceled) + { + recognizer_canceled_set_callback(m_hreco, Canceled.IsConnected() ? FireEvent_Canceled : nullptr, this); + } + } + } + + static void FireEvent_Canceled(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + + auto ptr = new ConversationTranscriptionCanceledEventArgs(hevent); + std::shared_ptr recoEvent(ptr); + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Canceled.Signal(*ptr); + } + + void SessionEventConnectionsChanged(const EventSignal& sessionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&sessionEvent == &SessionStarted) + { + recognizer_session_started_set_callback(m_hreco, SessionStarted.IsConnected() ? FireEvent_SessionStarted : nullptr, this); + } + else if (&sessionEvent == &SessionStopped) + { + recognizer_session_stopped_set_callback(m_hreco, SessionStopped.IsConnected() ? FireEvent_SessionStopped : nullptr, this); + } + } + } + + static void FireEvent_SessionStarted(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent{ new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStarted.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SessionStopped(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent{ new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStopped.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + void RecognitionEventConnectionsChanged(const EventSignal& recognitionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recognitionEvent == &SpeechStartDetected) + { + recognizer_speech_start_detected_set_callback(m_hreco, SpeechStartDetected.IsConnected() ? FireEvent_SpeechStartDetected : nullptr, this); + } + else if (&recognitionEvent == &SpeechEndDetected) + { + recognizer_speech_end_detected_set_callback(m_hreco, SpeechEndDetected.IsConnected() ? FireEvent_SpeechEndDetected : nullptr, this); + } + } + } + + static void FireEvent_SpeechStartDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechStartDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SpeechEndDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechEndDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + /*! \endcond */ + +private: + + SPXASYNCHANDLE m_hasyncStartContinuous; + SPXASYNCHANDLE m_hasyncStopContinuous; + + DISABLE_DEFAULT_CTORS(ConversationTranscriber); + friend class Microsoft::CognitiveServices::Speech::Session; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRECOHANDLE hreco) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + recognizer_get_property_bag(hreco, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + inline std::function&)> GetSessionEventConnectionsChangedCallback() + { + return [=](const EventSignal& sessionEvent) { this->SessionEventConnectionsChanged(sessionEvent); }; + } + + inline std::function&)> GetRecoEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecoCanceledEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoCanceledEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecognitionEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecognitionEventConnectionsChanged(recoEvent); }; + } + +public: + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_eventargs.h new file mode 100644 index 0000000..dd03343 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_eventargs.h @@ -0,0 +1,165 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation_transcription_eventargs.h: Public API declarations for ConversationTranscriptionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Class for conversation transcriber event arguments. +/// +class ConversationTranscriptionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit ConversationTranscriptionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~ConversationTranscriptionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(recognizer_event_handle_release(m_hevent)); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Conversation transcriber result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Conversation transcriber result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(ConversationTranscriptionEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + + +/// +/// Class for conversation transcriber canceled event arguments. +/// +class ConversationTranscriptionCanceledEventArgs : public ConversationTranscriptionEventArgs +{ +private: + + std::shared_ptr m_cancellation; + CancellationReason m_cancellationReason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit ConversationTranscriptionCanceledEventArgs(SPXEVENTHANDLE hevent) : + ConversationTranscriptionEventArgs(hevent), + m_cancellation(CancellationDetails::FromResult(GetResult())), + m_cancellationReason(m_cancellation->Reason), + m_errorCode(m_cancellation->ErrorCode), + Reason(m_cancellationReason), + ErrorCode(m_errorCode), + ErrorDetails(m_cancellation->ErrorDetails) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + virtual ~ConversationTranscriptionCanceledEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// CancellationDetails. + /// + std::shared_ptr GetCancellationDetails() const { return m_cancellation; } + +private: + + DISABLE_DEFAULT_CTORS(ConversationTranscriptionCanceledEventArgs); +}; +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_result.h new file mode 100644 index 0000000..c655c8f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_transcription_result.h @@ -0,0 +1,72 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation_transcription_result.h: Public API declarations for ConversationTranscription C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Represents the result of a conversation transcriber. +/// +class ConversationTranscriptionResult final : public RecognitionResult +{ +public: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Result handle. + explicit ConversationTranscriptionResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult), + SpeakerId(m_speakerId) + { + PopulateSpeakerFields(hresult, &m_speakerId); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s; reason=0x%x; text=%s, speakerid=%s, utteranceid=%s", __FUNCTION__, (void*)this, (void*)Handle, Utils::ToUTF8(ResultId).c_str(), Reason, Utils::ToUTF8(Text).c_str(), Utils::ToUTF8(SpeakerId).c_str()); + } + + /// + /// Destructor. + /// + ~ConversationTranscriptionResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)Handle); + } + + /// + /// Unique Speaker id. + /// + const SPXSTRING& SpeakerId; + +private: + DISABLE_DEFAULT_CTORS(ConversationTranscriptionResult); + + void PopulateSpeakerFields(SPXRESULTHANDLE hresult, SPXSTRING* pspeakerId) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 1024; + char sz[maxCharCount + 1] = {}; + + if (pspeakerId != nullptr && recognizer_result_handle_is_valid(hresult)) + { + SPX_THROW_ON_FAIL(hr = conversation_transcription_result_get_speaker_id(hresult, sz, maxCharCount)); + *pspeakerId = Utils::ToSPXString(sz); + } + } + + SPXSTRING m_speakerId; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator.h new file mode 100644 index 0000000..d23b53b --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator.h @@ -0,0 +1,448 @@ + +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation_translator.h: Public API declarations for ConversationTranslator C++ class +// + +#pragma once + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +// Forward decl: facilitates friend use of Connection::FromConversationTranslator +class Connection; + +namespace Transcription { + + /// + /// A conversation translator that enables a connected experience where participants can use their + /// own devices to see everyone else's recognitions and IMs in their own languages. Participants + /// can also speak and send IMs to others. + /// Added in 1.9.0 + /// + class ConversationTranslator : public std::enable_shared_from_this + { + private: + /*! \cond PRIVATE */ + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXCONVERSATIONHANDLE hconvtrans) : + PropertyCollection([hconvtrans]() + { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + conversation_translator_get_property_bag(hconvtrans, &hpropbag); + return hpropbag; + }()) + {} + }; + + SPXCONVERSATIONTRANSLATORHANDLE m_handle; + PrivatePropertyCollection m_properties; + /*! \endcond */ + + public: + /// + /// Creates a conversation translator from an audio config + /// + /// Audio configuration. + /// Smart pointer to conversation translator instance. + static std::shared_ptr FromConfig(std::shared_ptr audioConfig = nullptr) + { + SPXCONVERSATIONTRANSLATORHANDLE handle; + SPX_THROW_ON_FAIL(::conversation_translator_create_from_config( + &handle, + Utils::HandleOrInvalid(audioConfig) + )); + return std::shared_ptr(new ConversationTranslator(handle)); + } + + /// + /// Destructor + /// + virtual ~ConversationTranslator() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // disconnect callbacks in reverse order + TextMessageReceived.DisconnectAll(); + Transcribed.DisconnectAll(); + Transcribing.DisconnectAll(); + ConversationExpiration.DisconnectAll(); + ParticipantsChanged.DisconnectAll(); + Canceled.DisconnectAll(); + SessionStopped.DisconnectAll(); + SessionStarted.DisconnectAll(); + + ::conversation_translator_handle_release(m_handle); + m_handle = SPXHANDLE_INVALID; + } + + /// + /// Signal for events indicating the start of a transcription session (operation). + /// + EventSignal SessionStarted; + + /// + /// Signal for events indicating the end of a transcription session (operation). + /// + EventSignal SessionStopped; + + /// + /// Signal for events containing canceled recognition results + /// (indicating a recognition attempt that was canceled as a result or a direct cancellation request + /// or, alternatively, a transport or protocol failure). + /// + EventSignal Canceled; + + /// + /// Signal for events indicating the conversation participants have changed. + /// + EventSignal ParticipantsChanged; + + /// + /// Signal for event indicating how many minutes are left until a conversation expires. + /// + EventSignal ConversationExpiration; + + /// + /// Signal for events containing intermediate translated conversation transcription results. + /// + EventSignal Transcribing; + + /// + /// Signal for events containing final translated conversation transcription results. + /// (indicating a successful recognition attempt). + /// + EventSignal Transcribed; + + /// + /// Raised when a text message is received from the conversation. + /// + EventSignal TextMessageReceived; + + /// + /// Joins a conversation. After you call this, you will start receiving events. + /// + /// The conversation instance to use. This instance can be used by the + /// host to manage the conversation. + /// The display name to use for the current participant in the conversation. + /// An asynchronous operation. + std::future JoinConversationAsync(std::shared_ptr conversation, const SPXSTRING& nickname) + { + return RunAsync([conversation, nickname](auto handle) + { + return ::conversation_translator_join( + handle, + Utils::HandleOrInvalid(conversation), + Utils::ToUTF8(nickname).c_str()); + }); + } + + /// + /// Joins a conversation. After you call this, you will start receiving events. + /// + /// The identifier of the conversation you want to join. + /// The display name of the current participant in the conversation. + /// The language the participant is using. + /// An asynchronous operation. + std::future JoinConversationAsync(const SPXSTRING& conversationId, const SPXSTRING& nickname, const SPXSTRING& language) + { + return RunAsync([conversationId, nickname, language](auto handle) + { + return ::conversation_translator_join_with_id( + handle, + Utils::ToUTF8(conversationId).c_str(), + Utils::ToUTF8(nickname).c_str(), + Utils::ToUTF8(language).c_str()); + }); + } + + /// + /// Starts sending audio to the conversation service for speech recognition. + /// + /// An asynchronous operation. + std::future StartTranscribingAsync() + { + return RunAsync(::conversation_translator_start_transcribing); + } + + /// + /// Stops sending audio to the conversation service. + /// + /// An asynchronous operation. + std::future StopTranscribingAsync() + { + return RunAsync(::conversation_translator_stop_transcribing); + } + + /// + /// Sends an instant message to all participants in the conversation. This instant message + /// will be translated into each participant's text language. + /// + /// The message to send. + /// An asynchronous operation. + std::future SendTextMessageAsync(const SPXSTRING& message) + { + return RunAsync([message](auto handle) + { + return ::conversation_translator_send_text_message( + handle, + Utils::ToUTF8(message).c_str()); + }); + } + + /// + /// Leaves the current conversation. After this is called, you will no longer receive any events. + /// + /// An asynchronous operation. + std::future LeaveConversationAsync() + { + return RunAsync(::conversation_translator_leave); + } + + /// + /// Sets the Cognitive Speech authorization token that will be used for connecting to the server. + /// + /// The authorization token. + /// The Azure region for this token. + void SetAuthorizationToken(const SPXSTRING& authToken, const SPXSTRING& region) + { + SPX_THROW_ON_FAIL(::conversation_translator_set_authorization_token( + m_handle, + Utils::ToUTF8(authToken).c_str(), + Utils::ToUTF8(region).c_str())); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return m_properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token); + } + + /// + /// Gets your participant identifier + /// + /// Participant ID + SPXSTRING GetParticipantId() + { + return m_properties.GetProperty(PropertyId::Conversation_ParticipantId); + } + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + protected: + explicit ConversationTranslator(SPXCONVERSATIONTRANSLATORHANDLE handle) : + m_handle(handle), + m_properties(handle), + SessionStarted(BindHandler(&ConversationTranslator::OnSessionEventChanged)), + SessionStopped(BindHandler(&ConversationTranslator::OnSessionEventChanged)), + Canceled(BindHandler(&ConversationTranslator::OnCanceledEventChanged)), + ParticipantsChanged(BindHandler(&ConversationTranslator::OnParticipantsEventChanged)), + ConversationExpiration(BindHandler(&ConversationTranslator::OnExpirationEventChanged)), + Transcribing(BindHandler(&ConversationTranslator::OnTranscriptionEventChanged)), + Transcribed(BindHandler(&ConversationTranslator::OnTranscriptionEventChanged)), + TextMessageReceived(BindHandler(&ConversationTranslator::OnTextMessageEventChanged)), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + static inline bool ValidateHandle(SPXCONVERSATIONTRANSLATORHANDLE handle, const char* function) + { + UNUSED(function); // not used in release builds + SPX_DBG_TRACE_VERBOSE("%s: handle=0x%8p", function, (void*)handle); + bool valid = ::conversation_translator_handle_is_valid(handle); + SPX_DBG_TRACE_VERBOSE_IF(!valid, "%s: handle is INVALID!!!", function); + return valid; + } + + void OnSessionEventChanged(const EventSignal& evt) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + + if (&evt == &SessionStarted) + { + if (SessionStarted.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::SessionStarted); }; + } + + conversation_translator_session_started_set_callback(m_handle, callback, this); + } + else if (&evt == &SessionStopped) + { + if (SessionStopped.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::SessionStopped); }; + } + + conversation_translator_session_stopped_set_callback(m_handle, callback, this); + } + } + + void OnCanceledEventChanged(const EventSignal&) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + if (Canceled.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::Canceled); }; + } + + conversation_translator_canceled_set_callback(m_handle, callback, this); + } + + void OnParticipantsEventChanged(const EventSignal&) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + if (ParticipantsChanged.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::ParticipantsChanged); }; + } + + conversation_translator_participants_changed_set_callback(m_handle, callback, this); + } + + void OnExpirationEventChanged(const EventSignal&) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + if (ConversationExpiration.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::ConversationExpiration); }; + } + + conversation_translator_conversation_expiration_set_callback(m_handle, callback, this); + } + + void OnTranscriptionEventChanged(const EventSignal& evt) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + if (&evt == &Transcribing) + { + if (Transcribing.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::Transcribing); }; + } + + conversation_translator_transcribing_set_callback(m_handle, callback, this); + } + else + { + if (Transcribed.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::Transcribed); }; + } + + conversation_translator_transcribed_set_callback(m_handle, callback, this); + } + } + + void OnTextMessageEventChanged(const EventSignal&) + { + if (!ValidateHandle(m_handle, __FUNCTION__)) return; + + PCONV_TRANS_CALLBACK callback = nullptr; + if (TextMessageReceived.IsConnected()) + { + callback = [](auto, auto b, auto c) { FireEvent(b, c, &ConversationTranslator::TextMessageReceived); }; + } + + conversation_translator_text_message_recevied_set_callback(m_handle, callback, this); + } + + private: + /*! \cond PRIVATE */ + + friend class Microsoft::CognitiveServices::Speech::Connection; + + DISABLE_DEFAULT_CTORS(ConversationTranslator); + + inline std::future RunAsync(std::function func) + { + auto keepalive = this->shared_from_this(); + return std::async(std::launch::async, [keepalive, this, func]() + { + SPX_THROW_ON_FAIL(func(m_handle)); + }); + } + + template + inline std::function BindHandler(void (ConversationTranslator::*func)(TArg)) + { + return [this, func](TArg arg) + { + (this->*func)(arg); + }; + } + + static inline void FreeEventHandle(SPXEVENTHANDLE hEvt) + { + if (::conversation_translator_event_handle_is_valid(hEvt)) + { + ::conversation_translator_event_handle_release(hEvt); + } + } + + template + static inline void FireEvent(SPXEVENTHANDLE hEvt, void* pCtxt, EventSignal ConversationTranslator::*pEvent) + { + try + { + auto pThis = static_cast(pCtxt); + SPX_DBG_ASSERT(pThis != nullptr); + auto keepAlive = pThis->shared_from_this(); + + T eventArgs(hEvt); + (pThis->*pEvent).Signal(eventArgs); + + // event classes don't properly release the handles so do that here + FreeEventHandle(hEvt); + } + catch (std::exception& ex) + { + UNUSED(ex); + FreeEventHandle(hEvt); + throw; + } + catch (...) + { + FreeEventHandle(hEvt); + throw; + } + } + + /*! \endcond */ + }; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator_events.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator_events.h new file mode 100644 index 0000000..0bc817c --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversation_translator_events.h @@ -0,0 +1,262 @@ + +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_conversation_translator_events.h: Public C++ class API declarations for ConversationTranslator related events +// + +#pragma once + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + + /// + /// Helper class with additional methods + /// Added in 1.9.0 + /// + class EventHelper + { + protected: + template + static TVal GetValue(THandle hevent, SPXHR(SPXAPI_CALLTYPE * func)(THandle hevent, TVal* ptr)) + { + TVal value; + SPX_THROW_ON_FAIL(func(hevent, &value)); + return value; + } + + template + static SPXSTRING GetStringValue(THandle hevent, SPXHR(SPXAPI_CALLTYPE * func)(THandle hevent, char * psz, uint32_t cch)) + { + const uint32_t maxCharCount = 1024; + char sz[maxCharCount + 1]; + SPX_THROW_ON_FAIL(func(hevent, sz, maxCharCount)); + return Utils::ToSPXString(sz); + } + + template + static SPXSTRING GetStringValue(THandle hevent, SPXHR(SPXAPI_CALLTYPE* func)(THandle hevent, char* psz, uint32_t* pcch)) + { + // query the string length + uint32_t length = 0; + SPX_THROW_ON_FAIL(func(hevent, nullptr, &length)); + + // retrieve the string + std::unique_ptr buffer(new char[length]); + SPX_THROW_ON_FAIL(func(hevent, buffer.get(), &length)); + return Utils::ToSPXString(buffer.get()); + } + }; + + /// + /// Represents the result of a conversation translator recognition, or text message. + /// Added in 1.9.0 + /// + class ConversationTranslationResult : public Translation::TranslationRecognitionResult, public EventHelper + { + private: + SPXSTRING m_participantId; + SPXSTRING m_originalLang; + + public: + explicit ConversationTranslationResult(SPXRESULTHANDLE resultHandle) : + Translation::TranslationRecognitionResult(resultHandle), + m_participantId(GetStringValue(resultHandle, conversation_translator_result_get_user_id)), + m_originalLang(GetStringValue(resultHandle, conversation_translator_result_get_original_lang)), + ParticipantId(m_participantId), + OriginalLanguage(m_originalLang) + { + } + + /// + /// The unique participant identifier + /// + const SPXSTRING& ParticipantId; + + /// + /// Gets the language that the original recognition or text message is in + /// + const SPXSTRING& OriginalLanguage; + + private: + DISABLE_COPY_AND_MOVE(ConversationTranslationResult); + }; + + /// + /// Event arguments for the ConversationExpiration event. + /// Added in 1.9.0 + /// + class ConversationExpirationEventArgs : public SessionEventArgs, public EventHelper + { + private: + std::chrono::minutes m_expirationTime; + + public: + /// + /// Creates a new instance. + /// + /// The event handle. + explicit ConversationExpirationEventArgs(SPXEVENTHANDLE hevent) : + SessionEventArgs(hevent), + m_expirationTime(std::chrono::minutes(GetValue(hevent, conversation_translator_event_get_expiration_time))), + ExpirationTime(m_expirationTime) + { + } + + /// + /// How many minutes are left until the conversation expires + /// + const std::chrono::minutes& ExpirationTime; + + private: + DISABLE_COPY_AND_MOVE(ConversationExpirationEventArgs); + }; + + /// + /// Event arguments for the ParticipantsChanged event. + /// Added in 1.9.0 + /// + class ConversationParticipantsChangedEventArgs : public SessionEventArgs, public EventHelper + { + private: + ParticipantChangedReason m_reason; + std::vector> m_participants; + + public: + /// + /// Creates a new instance. + /// + /// The event handle. + explicit ConversationParticipantsChangedEventArgs(SPXEVENTHANDLE hevent) : + SessionEventArgs(hevent), + m_reason(GetValue(hevent, conversation_translator_event_get_participant_changed_reason)), + m_participants(GetParticipants(hevent)), + Reason(m_reason), + Participants(m_participants) + { + } + + /// + /// Why the participant changed event was raised (e.g. a participant joined) + /// + const ParticipantChangedReason& Reason; + + /// + /// The participant(s) that joined, left, or were updated + /// + const std::vector>& Participants; + + protected: + /*! \cond PROTECTED */ + + std::vector> GetParticipants(SPXEVENTHANDLE hevent) + { + std::vector> list; + + SPXPARTICIPANTHANDLE hparticipant = nullptr; + for (int i = 0; hparticipant != SPXHANDLE_INVALID; i++) + { + SPX_THROW_ON_FAIL(conversation_translator_event_get_participant_changed_at_index(hevent, i, &hparticipant)); + if (hparticipant != SPXHANDLE_INVALID) + { + list.push_back(std::make_shared(hparticipant)); + + // the Participant object correctly frees the handle so we don't need to do anything + // special here + } + } + + return list; + } + + /*! \endcond */ + + private: + DISABLE_COPY_AND_MOVE(ConversationParticipantsChangedEventArgs); + }; + + /// + /// Event arguments for the ConversationTranslator , + /// , or + /// events. + /// Added in 1.9.0 + /// + class ConversationTranslationEventArgs : public RecognitionEventArgs, public EventHelper + { + private: + std::shared_ptr m_result; + + public: + /// + /// Creates a new instance. + /// + /// The event handle returned by the C-API. + explicit ConversationTranslationEventArgs(SPXEVENTHANDLE hevent) + : RecognitionEventArgs(hevent), + m_result(std::make_shared(GetValue(hevent, recognizer_recognition_event_get_result))), + Result(m_result) + { + } + +#if defined(BINDING_OBJECTIVE_C) + private: +#endif + /// + /// Contains the conversation translation result. This could be for a canceled event, + /// a speech recognition, or a received text message. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) + public: +#else + protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Contains the conversation translation result. This could be for a canceled event, + /// a speech recognition, or a received text message. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + + private: + DISABLE_COPY_AND_MOVE(ConversationTranslationEventArgs); + }; + + + /// + /// Event arguments for the conversation translator canceled event. + /// Added in 1.9.0 + /// + class ConversationTranslationCanceledEventArgs : public ConversationTranscriptionCanceledEventArgs + { + public: + /// + /// Creates a new instance. + /// + /// The event handle. + explicit ConversationTranslationCanceledEventArgs(SPXEVENTHANDLE hevent) : + ConversationTranscriptionCanceledEventArgs(hevent) + { } + }; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversational_language_understanding_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversational_language_understanding_model.h new file mode 100644 index 0000000..1a2eb54 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_conversational_language_understanding_model.h @@ -0,0 +1,89 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license201809 for the full license information. +// +// speechapi_cxx_conversational_language_understanding_model.h: Public API declarations for PatternMatchingModel C++ class +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + + /// + /// Represents a Conversational Language Understanding used for intent recognition. + /// + class ConversationalLanguageUnderstandingModel : public LanguageUnderstandingModel + { + public: + + /// + /// Creates a Conversational Language Understanding (CLU) model using the specified model ID. + /// + /// The Azure Language resource key. + /// The Azure Language resource endpoint. + /// The Conversational Language Understanding project name. + /// The Conversational Language Understanding deployment name. + /// A shared pointer to the Conversational Language Understanding model. + static std::shared_ptr FromResource(const SPXSTRING& languageResourceKey, const SPXSTRING& endpoint, const SPXSTRING& projectName, const SPXSTRING& deploymentName) + { + return std::shared_ptr { + new ConversationalLanguageUnderstandingModel(languageResourceKey, endpoint, projectName, deploymentName) + }; + } + + /// + /// Returns id for this model. Defaults to projectName-deploymentName. + /// + /// A string representing the id of this model. + SPXSTRING GetModelId() const { return m_modelId; } + + /// + /// Sets the id for this model. Defaults to projectName-deploymentName. + /// + /// A string representing the id of this model. + void SetModelId(SPXSTRING value) { m_modelId = value; } + + /// + /// This is the Azure language resource key to be used with this model. + /// + SPXSTRING languageResourceKey; + + /// + /// Conversational Language Understanding deployment endpoint to contact. + /// + SPXSTRING endpoint; + + /// + /// Conversational Language Understanding project name. + /// + SPXSTRING projectName; + + /// + /// Conversational Language Understanding deployment name. + /// + SPXSTRING deploymentName; + + private: + DISABLE_COPY_AND_MOVE(ConversationalLanguageUnderstandingModel); + + ConversationalLanguageUnderstandingModel(const SPXSTRING& languageResourceKey, const SPXSTRING& endpoint, const SPXSTRING& projectName, const SPXSTRING& deploymentName) : + LanguageUnderstandingModel(LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel), + languageResourceKey(languageResourceKey), + endpoint(endpoint), + projectName(projectName), + deploymentName(deploymentName) + { + m_modelId = projectName + "-" + deploymentName; + } + + SPXSTRING m_modelId; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_config.h new file mode 100644 index 0000000..641daaf --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_config.h @@ -0,0 +1,268 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +#pragma once + +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Dialog { + +/// +/// Class that defines base configurations for the dialog service connector object. +/// +class DialogServiceConfig +{ +protected: + /*! \cond PROTECTED */ + inline explicit DialogServiceConfig(SPXSPEECHCONFIGHANDLE h_config) : m_config{ h_config } + { + } + SpeechConfig m_config; + /*! \endcond */ + +public: + /// + /// Default destructor. + /// + virtual ~DialogServiceConfig() = default; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXSPEECHCONFIGHANDLE() const { return static_cast(m_config); } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + m_config.SetProperty(name, value); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + m_config.SetProperty(id, value); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + return m_config.GetProperty(name); + } + + /// + /// Gets a property value by ID. + /// + /// The parameter id. + /// The property value. + SPXSTRING GetProperty(PropertyId id) const + { + return m_config.GetProperty(id); + } + + /// + /// Sets a property value that will be passed to service using the specified channel. + /// + /// The property name. + /// The property value. + /// The channel used to pass the specified property to service. + void SetServiceProperty(const SPXSTRING& name, const SPXSTRING& value, ServicePropertyChannel channel) + { + m_config.SetServiceProperty(name, value, channel); + } + + + /// + /// Sets proxy configuration + /// + /// Note: Proxy functionality is not available on macOS. This function will have no effect on this platform. + /// + /// The host name of the proxy server, without the protocol scheme (`http://`) + /// The port number of the proxy server + /// The user name of the proxy server + /// The password of the proxy server + void SetProxy(const SPXSTRING& proxyHostName, uint32_t proxyPort, const SPXSTRING& proxyUserName = SPXSTRING(), const SPXSTRING& proxyPassword = SPXSTRING()) + { + m_config.SetProxy(proxyHostName, proxyPort, proxyUserName, proxyPassword); + } + + /// + /// Set the input language to the connector. + /// + /// Specifies the name of spoken language to be recognized in BCP-47 format. + void SetLanguage(const SPXSTRING& lang) + { + SetProperty(PropertyId::SpeechServiceConnection_RecoLanguage, lang); + } + + /// + /// Gets the input language to the connector. + /// The language is specified in BCP-47 format. + /// + /// The connetor language. + SPXSTRING GetLanguage() const + { + return GetProperty(PropertyId::SpeechServiceConnection_RecoLanguage); + } + +}; + +/// +/// Class that defines configurations for the dialog service connector object for using a Bot Framework backend. +/// +class BotFrameworkConfig final : public DialogServiceConfig +{ +public: + /// + /// Creates a bot framework service config instance with the specified subscription key and region. + /// + /// Subscription key associated with the bot + /// The region name (see the region page). + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromSubscription(const SPXSTRING& subscription, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(bot_framework_config_from_subscription(&h_config, Utils::ToUTF8(subscription).c_str(), Utils::ToUTF8(region).c_str(), nullptr)); + return std::shared_ptr{ new BotFrameworkConfig(h_config) }; + } + + /// + /// Creates a bot framework service config instance with the specified subscription key and region. + /// + /// Subscription key associated with the bot + /// The region name (see the region page). + /// Identifier used to select a bot associated with this subscription. + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromSubscription(const SPXSTRING& subscription, const SPXSTRING& region, const SPXSTRING& bot_Id) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(bot_framework_config_from_subscription(&h_config, Utils::ToUTF8(subscription).c_str(), Utils::ToUTF8(region).c_str(), Utils::ToUTF8(bot_Id).c_str())); + return std::shared_ptr{ new BotFrameworkConfig(h_config) }; + } + + /// + /// Creates a bot framework service config instance with the specified authorization token and region. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// As configuration values are copied when creating a new connector, the new token value will not apply to connectors that have already been created. + /// For connectors that have been created before, you need to set authorization token of the corresponding connector + /// to refresh the token. Otherwise, the connectors will encounter errors during operation. + /// + /// The authorization token. + /// The region name (see the region page). + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromAuthorizationToken(const SPXSTRING& authToken, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(bot_framework_config_from_authorization_token(&h_config, Utils::ToUTF8(authToken).c_str(), Utils::ToUTF8(region).c_str(), nullptr)); + return std::shared_ptr{ new BotFrameworkConfig(h_config) }; + } + + /// + /// Creates a bot framework service config instance with the specified authorization token and region. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// As configuration values are copied when creating a new connector, the new token value will not apply to connectors that have already been created. + /// For connectors that have been created before, you need to set authorization token of the corresponding connector + /// to refresh the token. Otherwise, the connectors will encounter errors during operation. + /// + /// The authorization token. + /// The region name (see the region page). + /// Identifier used to select a bot associated with this subscription. + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromAuthorizationToken(const SPXSTRING& authToken, const SPXSTRING& region, const SPXSTRING& bot_Id) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(bot_framework_config_from_authorization_token(&h_config, Utils::ToUTF8(authToken).c_str(), Utils::ToUTF8(region).c_str(), Utils::ToUTF8(bot_Id).c_str())); + return std::shared_ptr{ new BotFrameworkConfig(h_config) }; + } +private: + inline explicit BotFrameworkConfig(SPXSPEECHCONFIGHANDLE h_config): DialogServiceConfig{ h_config } + { + } +}; + +/// +/// Class that defines configurations for the dialog service connector object for using a CustomCommands backend. +/// +class CustomCommandsConfig: public DialogServiceConfig +{ +public: + /// + /// Creates a Custom Commands config instance with the specified application id, subscription key and region. + /// + /// Custom Commands application id. + /// Subscription key associated with the bot + /// The region name (see the region page). + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromSubscription(const SPXSTRING& appId, const SPXSTRING& subscription, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(custom_commands_config_from_subscription(&h_config, Utils::ToUTF8(appId).c_str(), Utils::ToUTF8(subscription).c_str(), Utils::ToUTF8(region).c_str())); + return std::shared_ptr{ new CustomCommandsConfig(h_config) }; + } + + /// + /// Creates a Custom Commands config instance with the specified application id authorization token and region. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// As configuration values are copied when creating a new connector, the new token value will not apply to connectors that have already been created. + /// For connectors that have been created before, you need to set authorization token of the corresponding connector + /// to refresh the token. Otherwise, the connectors will encounter errors during operation. + /// + /// Custom Commands application id. + /// The authorization token. + /// The region name (see the region page). + /// A shared pointer to the new bot framework config. + inline static std::shared_ptr FromAuthorizationToken(const SPXSTRING& appId, const SPXSTRING& authToken, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE h_config = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(custom_commands_config_from_authorization_token(&h_config, Utils::ToUTF8(appId).c_str(), Utils::ToUTF8(authToken).c_str(), Utils::ToUTF8(region).c_str())); + return std::shared_ptr{ new CustomCommandsConfig(h_config) }; + } + + /// + /// Sets the corresponding backend application identifier. + /// + /// Application identifier. + inline void SetApplicationId(const SPXSTRING& applicationId) + { + SetProperty(PropertyId::Conversation_ApplicationId, applicationId); + } + + /// + /// Gets the application identifier. + /// + /// Speech Channel Secret Key. + inline SPXSTRING GetApplicationId() const + { + return GetProperty(PropertyId::Conversation_ApplicationId); + } + +private: + inline explicit CustomCommandsConfig(SPXSPEECHCONFIGHANDLE h_config): DialogServiceConfig{ h_config } + { + } +}; + +} } } } diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector.h new file mode 100644 index 0000000..ebb505a --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector.h @@ -0,0 +1,547 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_dialog_service_connector.h: Public API declarations for DialogServiceConnector C++ base class +// + +#pragma once +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +// Forward decl: facilities friend use use of Connection::FromDialogServiceConnector +class Connection; + +namespace Dialog { + +/// +/// Object used to connect DirectLineSpeech or CustomCommands. +/// +/// +/// Objects of this type are created via the factory method. +/// +class DialogServiceConnector : public std::enable_shared_from_this, public Utils::NonCopyable, public Utils::NonMovable +{ +public: + /// + /// Destroys the instance. + /// + virtual ~DialogServiceConnector() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // Disconnect the event signals in reverse construction order + TurnStatusReceived.DisconnectAll(); + ActivityReceived.DisconnectAll(); + Canceled.DisconnectAll(); + SpeechEndDetected.DisconnectAll(); + SpeechStartDetected.DisconnectAll(); + SessionStopped.DisconnectAll(); + SessionStarted.DisconnectAll(); + Recognizing.DisconnectAll(); + Recognized.DisconnectAll(); + + if (m_handle != SPXHANDLE_INVALID) + { + ::dialog_service_connector_handle_release(m_handle); + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + m_handle = SPXHANDLE_INVALID; + } + } + + /// + /// Creates a dialog service connector from a and an . + /// Users should use this function to create a dialog service connector. + /// + /// Dialog service config. + /// Audio config. + /// The shared smart pointer of the created dialog service connector. + /// + /// + /// auto audioConfig = Audio::AudioConfig::FromDefaultMicrophoneInput(); + /// auto config = CustomCommandsConfig::FromAuthorizationToken("my_app_id","my_auth_token", "my_region"); + /// auto connector = DialogServiceConnector::FromConfig(config, audioConfig); + /// + /// + /// + /// When speaking of we are referring to one of the classes that inherit from it. + /// The specific class to be used depends on the dialog backend being used: + ///
    + ///
  • for DirectLineSpeech
  • + ///
  • for CustomCommands
  • + ///
+ ///
+ static std::shared_ptr FromConfig(std::shared_ptr connectorConfig, std::shared_ptr audioConfig = nullptr) + { + SPXRECOHANDLE h_connector; + SPX_THROW_ON_FAIL(::dialog_service_connector_create_dialog_service_connector_from_config( + &h_connector, + Utils::HandleOrInvalid(connectorConfig), + Utils::HandleOrInvalid(audioConfig) + )); + return std::shared_ptr { new DialogServiceConnector(h_connector) }; + } + + /// + /// Connects with the back end. + /// + /// An asynchronous operation that starts the connection. + std::future ConnectAsync() + { + auto keep_alive = this->shared_from_this(); + return std::async(std::launch::async, [keep_alive, this]() + { + SPX_THROW_ON_FAIL(::dialog_service_connector_connect(m_handle)); + }); + } + + /// + /// Disconnects from the back end. + /// + /// An asynchronous operation that starts the disconnection. + std::future DisconnectAsync() + { + auto keep_alive = this->shared_from_this(); + return std::async(std::launch::async, [keep_alive, this]() + { + SPX_THROW_ON_FAIL(::dialog_service_connector_disconnect(m_handle)); + }); + } + + /// + /// Sends an activity to the backing dialog. + /// + /// Activity to send + /// An asynchronous operation that starts the operation. + std::future SendActivityAsync(const std::string& activity) + { + auto keep_alive = this->shared_from_this(); + return std::async(std::launch::async, [keep_alive, activity, this]() + { + std::array buffer; + SPX_THROW_ON_FAIL(::dialog_service_connector_send_activity(m_handle, activity.c_str(), buffer.data())); + return std::string{ buffer.data() }; + }); + } + + /// + /// Initiates keyword recognition. + /// + /// Specifies the keyword model to be used. + /// An asynchronous operation that starts the operation. + std::future StartKeywordRecognitionAsync(std::shared_ptr model) + { + auto keep_alive = this->shared_from_this(); + auto h_model = Utils::HandleOrInvalid(model); + return std::async(std::launch::async, [keep_alive, h_model, this]() + { + SPX_THROW_ON_FAIL(dialog_service_connector_start_keyword_recognition(m_handle, h_model)); + }); + } + + /// + /// Stop keyword recognition. + /// + /// An asynchronous operation that starts the operation. + std::future StopKeywordRecognitionAsync() + { + auto keep_alive = this->shared_from_this(); + return std::async(std::launch::async, [keep_alive, this]() + { + SPX_THROW_ON_FAIL(dialog_service_connector_stop_keyword_recognition(m_handle)); + }); + } + + /// + /// Starts a listening session that will terminate after the first utterance. + /// + /// An asynchronous operation that starts the operation. + std::future> ListenOnceAsync() + { + auto keep_alive = this->shared_from_this(); + return std::async(std::launch::async, [keep_alive, this]() + { + SPX_INIT_HR(hr); + + SPXRECOHANDLE h_result = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(dialog_service_connector_listen_once(m_handle, &h_result)); + + return std::make_shared(h_result); + }); + } + + /// + /// Requests that an active listening operation immediately finish, interrupting any ongoing + /// speaking, and provide a result reflecting whatever audio data has been captured so far. + /// + /// A task representing the asynchronous operation that stops an active listening session. + std::future StopListeningAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + // close any unfinished previous attempt + SPX_THROW_ON_FAIL(hr = speechapi_async_handle_release(m_hasyncStopContinuous)); + SPX_EXITFN_ON_FAIL(hr = dialog_service_connector_stop_listening_async(m_handle, &m_hasyncStopContinuous)); + SPX_EXITFN_ON_FAIL(hr = speechapi_async_wait_for(m_hasyncStopContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = speechapi_async_handle_release(m_hasyncStopContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStopContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the connector will encounter errors during its operation. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Sets a JSON template that will be provided to the speech service for the next conversation. The service will + /// attempt to merge this template into all activities sent to the dialog backend, whether originated by the + /// client with SendActivityAsync or generated by the service, as is the case with speech-to-text results. + /// + /// + /// The activity payload, as a JSON string, to be merged into all applicable activity messages. + /// + void SetSpeechActivityTemplate(const SPXSTRING& activityTemplate) + { + Properties.SetProperty(PropertyId::Conversation_Speech_Activity_Template, activityTemplate); + } + + /// + /// Gets the JSON template that will be provided to the speech service for the next conversation. The service will + /// attempt to merge this template into all activities sent to the dialog backend, whether originated by the + /// client with SendActivityAsync or generated by the service, as is the case with speech-to-text results. + /// + /// The JSON activity template currently set that will be used on subsequent requests. + SPXSTRING GetSpeechActivityTemplate() + { + return Properties.GetProperty(PropertyId::Conversation_Speech_Activity_Template, SPXSTRING()); + } + + /// + /// Signal for events containing speech recognition results. + /// + EventSignal Recognized; + + /// + /// Signal for events containing intermediate recognition results. + /// + EventSignal Recognizing; + + /// + /// Signals that indicates the start of a listening session. + /// + EventSignal SessionStarted; + + /// + /// Signal that indicates the end of a listening session. + /// + EventSignal SessionStopped; + + /// + /// Signal that indicates the first detection of speech data in the current phrase. + /// + EventSignal SpeechStartDetected; + + /// + /// Signal that indicates the detected end of the current phrase's speech data. + /// + EventSignal SpeechEndDetected; + + /// + /// Signal for events relating to the cancellation of an interaction. The event indicates if the reason is a direct cancellation or an error. + /// + EventSignal Canceled; + + /// + /// Signals that an activity was received from the backend + /// + EventSignal ActivityReceived; + + /// + /// Signals that a turn status update was received from the backend + /// + EventSignal TurnStatusReceived; + +private: + /*! \cond PROTECTED */ + template + std::function&)> Callback(F f) + { + return [=](const EventSignal& evt) + { + (this->*f)(evt); + }; + } + + static void FireEvent_Recognized(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SpeechRecognitionEventArgs event{ h_event }; + keep_alive->Recognized.Signal(event); + /* Not releasing the handle as SpeechRecognitionEventArgs manages it */ + } + + static void FireEvent_Recognizing(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SpeechRecognitionEventArgs event{ h_event }; + keep_alive->Recognizing.Signal(event); + /* Not releasing the handle as SpeechRecognitionEventArgs manages it */ + } + + void RecognizerEventConnectionChanged(const EventSignal& reco_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&reco_event == &Recognizing) + { + ::dialog_service_connector_recognizing_set_callback(m_handle, Recognizing.IsConnected() ? DialogServiceConnector::FireEvent_Recognizing : nullptr, this); + } + else if (&reco_event == &Recognized) + { + ::dialog_service_connector_recognized_set_callback(m_handle, Recognized.IsConnected() ? DialogServiceConnector::FireEvent_Recognized : nullptr, this); + } + } + } + + static void FireEvent_SessionStarted(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SessionEventArgs event{ h_event }; + keep_alive->SessionStarted.Signal(event); + + SPX_DBG_ASSERT(::recognizer_event_handle_is_valid(h_event)); + /* Releasing the event handle as SessionEventArgs doesn't keep the handle */ + ::recognizer_event_handle_release(h_event); + } + + static void FireEvent_SessionStopped(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SessionEventArgs event{ h_event }; + keep_alive->SessionStopped.Signal(event); + + SPX_DBG_ASSERT(::recognizer_event_handle_is_valid(h_event)); + /* Releasing the event handle as SessionEventArgs doesn't keep the handle */ + ::recognizer_event_handle_release(h_event); + } + + void SessionEventConnectionChanged(const EventSignal& session_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&session_event == &SessionStarted) + { + ::dialog_service_connector_session_started_set_callback(m_handle, SessionStarted.IsConnected() ? DialogServiceConnector::FireEvent_SessionStarted : nullptr, this); + } + else if (&session_event == &SessionStopped) + { + ::dialog_service_connector_session_stopped_set_callback(m_handle, SessionStopped.IsConnected() ? DialogServiceConnector::FireEvent_SessionStopped : nullptr, this); + } + } + } + + static void FireEvent_SpeechStartDetected(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + RecognitionEventArgs event{ h_event }; + keep_alive->SpeechStartDetected.Signal(event); + + SPX_DBG_ASSERT(::recognizer_event_handle_is_valid(h_event)); + /* Releasing the event handle as RecognitionEventArgs doesn't manage handle lifetime */ + ::recognizer_event_handle_release(h_event); + } + + static void FireEvent_SpeechEndDetected(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + RecognitionEventArgs event{ h_event }; + keep_alive->SpeechEndDetected.Signal(event); + + SPX_DBG_ASSERT(::recognizer_event_handle_is_valid(h_event)); + /* Releasing the event handle as RecognitionEventArgs doesn't manage handle lifetime */ + ::recognizer_event_handle_release(h_event); + } + + void SpeechDetectionEventConnectionChanged(const EventSignal& speech_detection_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&speech_detection_event == &SpeechStartDetected) + { + ::dialog_service_connector_speech_start_detected_set_callback(m_handle, SpeechStartDetected.IsConnected() ? DialogServiceConnector::FireEvent_SpeechStartDetected : nullptr, this); + } + else if (&speech_detection_event == &SpeechEndDetected) + { + ::dialog_service_connector_speech_end_detected_set_callback(m_handle, SpeechEndDetected.IsConnected() ? DialogServiceConnector::FireEvent_SpeechEndDetected : nullptr, this); + } + } + } + + static void FireEvent_Canceled(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SpeechRecognitionCanceledEventArgs event{ h_event }; + keep_alive->Canceled.Signal(event); + /* Not releasing the handle as SpeechRecognitionCanceledEventArgs manages it */ + } + + void CanceledEventConnectionChanged(const EventSignal& canceled_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&canceled_event == &Canceled) + { + ::dialog_service_connector_canceled_set_callback(m_handle, Canceled.IsConnected() ? DialogServiceConnector::FireEvent_Canceled : nullptr, this); + } + } + } + + static void FireEvent_ActivityReceived(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + ActivityReceivedEventArgs event{ h_event }; + keep_alive->ActivityReceived.Signal(event); + /* Not releasing the handle as ActivityReceivedEventArgs manages it */ + } + + void ActivityReceivedConnectionChanged(const EventSignal& activity_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&activity_event == &ActivityReceived) + { + ::dialog_service_connector_activity_received_set_callback(m_handle, ActivityReceived.IsConnected() ? DialogServiceConnector::FireEvent_ActivityReceived : nullptr, this); + } + } + } + + static void FireEvent_TurnStatusReceived(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + TurnStatusReceivedEventArgs event{ h_event }; + keep_alive->TurnStatusReceived.Signal(event); + /* Not releasing the handle as TurnStatusReceivedEventArgs manages it */ + } + + void TurnStatusReceivedConnectionChanged(const EventSignal& turn_status_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::dialog_service_connector_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&turn_status_event == &TurnStatusReceived) + { + ::dialog_service_connector_turn_status_received_set_callback(m_handle, TurnStatusReceived.IsConnected() ? DialogServiceConnector::FireEvent_TurnStatusReceived : nullptr, this); + } + } + } + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRECOHANDLE h_connector) : + PropertyCollection( + [=](){ + SPXPROPERTYBAGHANDLE h_prop_bag = SPXHANDLE_INVALID; + dialog_service_connector_get_property_bag(h_connector, &h_prop_bag); + return h_prop_bag; + }()) + { + } + }; + + inline explicit DialogServiceConnector(SPXRECOHANDLE handle) : + Recognized{ Callback(&DialogServiceConnector::RecognizerEventConnectionChanged) }, + Recognizing{ Callback(&DialogServiceConnector::RecognizerEventConnectionChanged) }, + SessionStarted{ Callback(&DialogServiceConnector::SessionEventConnectionChanged) }, + SessionStopped{ Callback(&DialogServiceConnector::SessionEventConnectionChanged) }, + SpeechStartDetected{ Callback(&DialogServiceConnector::SpeechDetectionEventConnectionChanged) }, + SpeechEndDetected{ Callback(&DialogServiceConnector::SpeechDetectionEventConnectionChanged) }, + Canceled{ Callback(&DialogServiceConnector::CanceledEventConnectionChanged) }, + ActivityReceived{ Callback(&DialogServiceConnector::ActivityReceivedConnectionChanged) }, + TurnStatusReceived{ Callback(&DialogServiceConnector::TurnStatusReceivedConnectionChanged) }, + m_handle{ handle }, + m_properties{ handle }, + Properties{ m_properties } + { + } + +private: + friend class Microsoft::CognitiveServices::Speech::Connection; + SPXRECOHANDLE m_handle; + SPXASYNCHANDLE m_hasyncStopContinuous; + + PrivatePropertyCollection m_properties; + /*! \endcond */ +public: + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; +}; + +} } } } diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector_eventargs.h new file mode 100644 index 0000000..f55f611 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_dialog_service_connector_eventargs.h @@ -0,0 +1,148 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include +#include + +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Dialog { + +// Forward declarations +class DialogServiceConnector; + +/// +/// Class for activity received event arguments. +/// +class ActivityReceivedEventArgs: public std::enable_shared_from_this +{ +public: + friend DialogServiceConnector; + /// + /// Releases the event. + /// + inline ~ActivityReceivedEventArgs() + { + SPX_THROW_ON_FAIL(::dialog_service_connector_activity_received_event_release(m_handle)); + } + + /// + /// Gets the activity associated with the event. + /// + /// The serialized activity activity. + inline std::string GetActivity() const + { + size_t size; + SPX_THROW_ON_FAIL(::dialog_service_connector_activity_received_event_get_activity_size(m_handle, &size)); + auto ptr = std::make_unique(size + 1); + SPX_THROW_ON_FAIL(::dialog_service_connector_activity_received_event_get_activity(m_handle, ptr.get(), size + 1)); + return std::string{ ptr.get() }; + } + + /// + /// Gets the audio associated with the event. + /// + /// The audio. + inline std::shared_ptr GetAudio() const + { + SPXAUDIOSTREAMHANDLE h_audio{ SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::dialog_service_connector_activity_received_event_get_audio(m_handle, &h_audio)); + if (h_audio == SPXHANDLE_INVALID) + { + return nullptr; + } + return std::shared_ptr(new Audio::PullAudioOutputStream(h_audio) ); + } + + /// + /// Checks if the event contains audio. + /// + /// True if the event contains audio, false otherwise. + inline bool HasAudio() const + { + return ::dialog_service_connector_activity_received_event_has_audio(m_handle); + } +private: + /*! \cond PROTECTED */ + inline ActivityReceivedEventArgs(SPXEVENTHANDLE h_event) : m_handle{ h_event } + { + } + + SPXEVENTHANDLE m_handle; + /*! \endcond */ +}; + +/// +/// Class for turn status event arguments. +/// +class TurnStatusReceivedEventArgs : public std::enable_shared_from_this +{ +public: + friend DialogServiceConnector; + /// + /// Releases the event. + /// + inline ~TurnStatusReceivedEventArgs() + { + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_release(m_handle)); + } + + /// + /// Retrieves the interaction ID associated with this turn status event. Interaction generally correspond + /// to a single input signal (e.g. voice utterance) or data/activity transaction and will correlate to + /// 'replyToId' fields in Bot Framework activities. + /// + /// The interaction ID associated with the turn status. + inline std::string GetInteractionId() const + { + size_t size = 0; + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_get_interaction_id_size(m_handle, &size)); + auto ptr = std::make_unique(size + 1); + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_get_interaction_id(m_handle, ptr.get(), size + 1)); + return std::string{ ptr.get() }; + } + + /// + /// Retrieves the conversation ID associated with this turn status event. Conversations may span multiple + /// interactions and are the unit which a client may request resume/retry upon. + /// + /// The conversation ID associated with the turn status. + inline std::string GetConversationId() const + { + size_t size = 0; + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_get_conversation_id_size(m_handle, &size)); + auto ptr = std::make_unique(size + 1); + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_get_conversation_id(m_handle, ptr.get(), size + 1)); + return std::string{ ptr.get() }; + } + + /// + /// Retrieves the numeric status code associated with this turn status event. These generally correspond to + /// standard HTTP status codes such as 200 (OK), 400 (Failure/Bad Request), and 429 (Timeout/Throttled). + /// + /// The status code associated with this event, analolgous to standard HTTP codes. + inline int GetStatusCode() const + { + int cApiStatus = 404; + SPX_THROW_ON_FAIL(::dialog_service_connector_turn_status_received_get_status(m_handle, &cApiStatus)); + return cApiStatus; + } + +private: + /*! \cond PROTECTED */ + inline TurnStatusReceivedEventArgs(SPXEVENTHANDLE h_event) : m_handle{ h_event } + { + } + + SPXEVENTHANDLE m_handle; + /*! \endcond */ +}; + +} } } } diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_embedded_speech_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_embedded_speech_config.h new file mode 100644 index 0000000..61454a2 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_embedded_speech_config.h @@ -0,0 +1,324 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_embedded_speech_config.h: Public API declarations for EmbeddedSpeechConfig C++ class +// + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines embedded (offline) speech configuration. +/// +class EmbeddedSpeechConfig +{ +protected: + /*! \cond PROTECTED */ + + SpeechConfig m_config; + + /*! \endcond */ + +public: + /// + /// Internal operator used to get the underlying handle value. + /// + /// A handle. + explicit operator SPXSPEECHCONFIGHANDLE() const + { + return static_cast(m_config); + } + + /// + /// Creates an instance of the embedded speech config with a specified offline model path. + /// + /// The folder path to search for offline models. + /// This can be a root path under which several models are located in subfolders, + /// or a direct path to a specific model folder. + /// + /// A shared pointer to the new embedded speech config instance. + static std::shared_ptr FromPath(const SPXSTRING& path) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, path.empty()); + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(embedded_speech_config_create(&hconfig)); + SPX_THROW_ON_FAIL(embedded_speech_config_add_path(hconfig, Utils::ToUTF8(path).c_str())); + + auto ptr = new EmbeddedSpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the embedded speech config with specified offline model paths. + /// + /// The folder paths to search for offline models. + /// These can be root paths under which several models are located in subfolders, + /// or direct paths to specific model folders. + /// + /// A shared pointer to the new embedded speech config instance. + static std::shared_ptr FromPaths(const std::vector& paths) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, paths.empty()); + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(embedded_speech_config_create(&hconfig)); + for (const SPXSTRING& path : paths) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, path.empty()); + SPX_THROW_ON_FAIL(embedded_speech_config_add_path(hconfig, Utils::ToUTF8(path).c_str())); + } + + auto ptr = new EmbeddedSpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Gets a list of available speech recognition models. + /// + /// Speech recognition model info. + std::vector> GetSpeechRecognitionModels() + { + std::vector> models; + + uint32_t numModels = 0; + SPX_THROW_ON_FAIL(embedded_speech_config_get_num_speech_reco_models(static_cast(m_config), &numModels)); + + for (uint32_t i = 0; i < numModels; i++) + { + SPXSPEECHRECOMODELHANDLE hmodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(embedded_speech_config_get_speech_reco_model(static_cast(m_config), i, &hmodel)); + + auto model = std::make_shared(hmodel); + models.push_back(model); + } + + return models; + } + + /// + /// Sets the model for speech recognition. + /// + /// The model name. + /// The license text. + void SetSpeechRecognitionModel(const SPXSTRING& name, const SPXSTRING& license) + { + SPX_THROW_ON_FAIL(embedded_speech_config_set_speech_recognition_model( + static_cast(m_config), Utils::ToUTF8(name).c_str(), Utils::ToUTF8(license).c_str())); + } + + /// + /// Gets the model name for speech recognition. + /// + /// The speech recognition model name. + SPXSTRING GetSpeechRecognitionModelName() const + { + return GetProperty(PropertyId::SpeechServiceConnection_RecoModelName); + } + + /// + /// Sets the speech recognition output format. + /// + /// Speech recognition output format (simple or detailed). + void SetSpeechRecognitionOutputFormat(OutputFormat format) + { + m_config.SetOutputFormat(format); + } + + /// + /// Gets the speech recognition output format. + /// + /// Speech recognition output format (simple or detailed). + OutputFormat GetSpeechRecognitionOutputFormat() const + { + return m_config.GetOutputFormat(); + } + + /// + /// Sets the profanity option. This can be used to remove profane words or mask them. + /// + /// Profanity option value. + void SetProfanity(ProfanityOption profanity) + { + m_config.SetProfanity(profanity); + } + + /// + /// Sets the voice for embedded speech synthesis. + /// + /// The voice name of the embedded speech synthesis. + /// The license text. + void SetSpeechSynthesisVoice(const SPXSTRING& name, const SPXSTRING& license) + { + SPX_THROW_ON_FAIL(embedded_speech_config_set_speech_synthesis_voice( + static_cast(m_config), Utils::ToUTF8(name).c_str(), Utils::ToUTF8(license).c_str())); + } + + /// + /// Gets the voice name for embedded speech synthesis. + /// + /// The speech synthesis model name, i.e. the voice name. + SPXSTRING GetSpeechSynthesisVoiceName() const + { + return GetProperty(PropertyId::SpeechServiceConnection_SynthOfflineVoice); + } + + /// + /// Sets the speech synthesis output format (e.g. Riff16Khz16BitMonoPcm). + /// + /// Specifies the output format ID + void SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat formatId) + { + m_config.SetSpeechSynthesisOutputFormat(formatId); + } + + /// + /// Gets the speech synthesis output format. + /// + /// The speech synthesis output format. + SPXSTRING GetSpeechSynthesisOutputFormat() const + { + return m_config.GetSpeechSynthesisOutputFormat(); + } + + /// + /// Gets a list of available speech translation models. + /// + /// Speech translation model info. + std::vector> GetSpeechTranslationModels() + { + std::vector> models; + + uint32_t numModels = 0; + SPX_THROW_ON_FAIL(embedded_speech_config_get_num_speech_translation_models(static_cast(m_config), &numModels)); + + for (uint32_t i = 0; i < numModels; i++) + { + SPXSPEECHRECOMODELHANDLE hmodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(embedded_speech_config_get_speech_translation_model(static_cast(m_config), i, &hmodel)); + + auto model = std::make_shared(hmodel); + models.push_back(model); + } + + return models; + } + + /// + /// Sets the model for speech translation. + /// + /// Model name. + /// License text. + void SetSpeechTranslationModel(const SPXSTRING& name, const SPXSTRING& license) + { + SPX_THROW_ON_FAIL(embedded_speech_config_set_speech_translation_model( + static_cast(m_config), Utils::ToUTF8(name).c_str(), Utils::ToUTF8(license).c_str())); + } + + /// + /// Gets the model name for speech translation. + /// + /// The speech translation model name. + SPXSTRING GetSpeechTranslationModelName() const + { + return GetProperty(PropertyId::SpeechTranslation_ModelName); + } + + /// + /// Sets the model for keyword recognition. + /// This is for customer specific models that are tailored for detecting + /// wake words and direct commands. + /// + /// Model name. + /// License text. + void SetKeywordRecognitionModel(const SPXSTRING& name, const SPXSTRING& license) + { + SPX_THROW_ON_FAIL(embedded_speech_config_set_keyword_recognition_model( + static_cast(m_config), Utils::ToUTF8(name).c_str(), Utils::ToUTF8(license).c_str())); + } + + /// + /// Gets the model name for keyword recognition. + /// + /// The keyword recognition model name. + SPXSTRING GetKeywordRecognitionModelName() const + { + return GetProperty(PropertyId::KeywordRecognition_ModelName); + } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + m_config.SetProperty(name, value); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + m_config.SetProperty(id, value); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + return m_config.GetProperty(name); + } + + /// + /// Gets a property value by ID. + /// + /// The parameter id. + /// The property value. + SPXSTRING GetProperty(PropertyId id) const + { + return m_config.GetProperty(id); + } + + /// + /// Destructs the object. + /// + virtual ~EmbeddedSpeechConfig() = default; + +protected: + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + inline explicit EmbeddedSpeechConfig(SPXSPEECHCONFIGHANDLE hconfig) : m_config(hconfig) + { + } + + /*! \endcond */ + +private: + DISABLE_COPY_AND_MOVE(EmbeddedSpeechConfig); + + }; + +}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_enums.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_enums.h new file mode 100644 index 0000000..e55c5a6 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_enums.h @@ -0,0 +1,1757 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_enums.h: Public API declarations for C++ enumerations +// + +#pragma once + +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +constexpr const char* TrueString = "true"; +constexpr const char* FalseString = "false"; +constexpr const char CommaDelim = ','; + +/// +/// Defines speech property ids. +/// Changed in version 1.4.0. +/// +enum class PropertyId +{ + /// + /// The Cognitive Services Speech Service subscription key. If you are using an intent recognizer, you need + /// to specify the LUIS endpoint key for your particular LUIS app. Under normal circumstances, you shouldn't + /// have to use this property directly. + /// Instead, use . + /// + SpeechServiceConnection_Key = 1000, + + /// + /// The Cognitive Services Speech Service endpoint (url). Under normal circumstances, you shouldn't + /// have to use this property directly. + /// Instead, use . + /// NOTE: This endpoint is not the same as the endpoint used to obtain an access token. + /// + SpeechServiceConnection_Endpoint = 1001, + + /// + /// The Cognitive Services Speech Service region. Under normal circumstances, you shouldn't have to + /// use this property directly. + /// Instead, use , , + /// , . + /// + SpeechServiceConnection_Region = 1002, + + /// + /// The Cognitive Services Speech Service authorization token (aka access token). Under normal circumstances, + /// you shouldn't have to use this property directly. + /// Instead, use , + /// , , + /// . + /// + SpeechServiceAuthorization_Token = 1003, + + /// + /// The Cognitive Services Speech Service authorization type. Currently unused. + /// + SpeechServiceAuthorization_Type = 1004, + + /// + /// The Cognitive Services Custom Speech or Custom Voice Service endpoint id. Under normal circumstances, you shouldn't + /// have to use this property directly. + /// Instead use . + /// NOTE: The endpoint id is available in the Custom Speech Portal, listed under Endpoint Details. + /// + SpeechServiceConnection_EndpointId = 1005, + + /// + /// The Cognitive Services Speech Service host (url). Under normal circumstances, you shouldn't + /// have to use this property directly. + /// Instead, use . + /// + SpeechServiceConnection_Host = 1006, + + /// + /// The host name of the proxy server used to connect to the Cognitive Services Speech Service. Under normal circumstances, + /// you shouldn't have to use this property directly. + /// Instead, use . + /// NOTE: This property id was added in version 1.1.0. + /// + SpeechServiceConnection_ProxyHostName = 1100, + + /// + /// The port of the proxy server used to connect to the Cognitive Services Speech Service. Under normal circumstances, + /// you shouldn't have to use this property directly. + /// Instead, use . + /// NOTE: This property id was added in version 1.1.0. + /// + SpeechServiceConnection_ProxyPort = 1101, + + /// + /// The user name of the proxy server used to connect to the Cognitive Services Speech Service. Under normal circumstances, + /// you shouldn't have to use this property directly. + /// Instead, use . + /// NOTE: This property id was added in version 1.1.0. + /// + SpeechServiceConnection_ProxyUserName = 1102, + + /// + /// The password of the proxy server used to connect to the Cognitive Services Speech Service. Under normal circumstances, + /// you shouldn't have to use this property directly. + /// Instead, use . + /// NOTE: This property id was added in version 1.1.0. + /// + SpeechServiceConnection_ProxyPassword = 1103, + + /// + /// The URL string built from speech configuration. + /// This property is intended to be read-only. The SDK is using it internally. + /// NOTE: Added in version 1.5.0. + /// + SpeechServiceConnection_Url = 1104, + + /// + /// Specifies the list of hosts for which proxies should not be used. This setting overrides all other configurations. + /// Hostnames are separated by commas and are matched in a case-insensitive manner. Wildcards are not supported. + /// + SpeechServiceConnection_ProxyHostBypass = 1105, + + /// + /// The list of comma separated languages used as target translation languages. Under normal circumstances, + /// you shouldn't have to use this property directly. Instead use + /// and . + /// + SpeechServiceConnection_TranslationToLanguages = 2000, + + /// + /// The name of the Cognitive Service Text to Speech Service voice. Under normal circumstances, you shouldn't have to use this + /// property directly. Instead use . + /// NOTE: Valid voice names can be found here. + /// + SpeechServiceConnection_TranslationVoice = 2001, + + /// + /// Translation features. For internal use. + /// + SpeechServiceConnection_TranslationFeatures = 2002, + + /// + /// The Language Understanding Service region. Under normal circumstances, you shouldn't have to use this property directly. + /// Instead use . + /// + SpeechServiceConnection_IntentRegion = 2003, + + /// + /// The Cognitive Services Speech Service recognition mode. Can be "INTERACTIVE", "CONVERSATION", "DICTATION". + /// This property is intended to be read-only. The SDK is using it internally. + /// + SpeechServiceConnection_RecoMode = 3000, + + /// + /// The spoken language to be recognized (in BCP-47 format). Under normal circumstances, you shouldn't have to use this property + /// directly. + /// Instead, use . + /// + SpeechServiceConnection_RecoLanguage = 3001, + + /// + /// The session id. This id is a universally unique identifier (aka UUID) representing a specific binding of an audio input stream + /// and the underlying speech recognition instance to which it is bound. Under normal circumstances, you shouldn't have to use this + /// property directly. + /// Instead use . + /// + Speech_SessionId = 3002, + + /// + /// The query parameters provided by users. They will be passed to service as URL query parameters. + /// Added in version 1.5.0 + /// + SpeechServiceConnection_UserDefinedQueryParameters = 3003, + + /// + /// The string to specify the backend to be used for speech recognition; + /// allowed options are online and offline. + /// Under normal circumstances, you shouldn't use this property directly. + /// Currently the offline option is only valid when EmbeddedSpeechConfig is used. + /// Added in version 1.19.0 + /// + SpeechServiceConnection_RecoBackend = 3004, + + /// + /// The name of the model to be used for speech recognition. + /// Under normal circumstances, you shouldn't use this property directly. + /// Currently this is only valid when EmbeddedSpeechConfig is used. + /// Added in version 1.19.0 + /// + SpeechServiceConnection_RecoModelName = 3005, + + /// + /// This property is deprecated. + /// + SpeechServiceConnection_RecoModelKey = 3006, + + /// + /// The path to the ini file of the model to be used for speech recognition. + /// Under normal circumstances, you shouldn't use this property directly. + /// Currently this is only valid when EmbeddedSpeechConfig is used. + /// Added in version 1.19.0 + /// + SpeechServiceConnection_RecoModelIniFile = 3007, + + /// + /// The spoken language to be synthesized (e.g. en-US) + /// Added in version 1.4.0 + /// + SpeechServiceConnection_SynthLanguage = 3100, + + /// + /// The name of the TTS voice to be used for speech synthesis + /// Added in version 1.4.0 + /// + SpeechServiceConnection_SynthVoice = 3101, + + /// + /// The string to specify TTS output audio format + /// Added in version 1.4.0 + /// + SpeechServiceConnection_SynthOutputFormat = 3102, + + /// + /// Indicates if use compressed audio format for speech synthesis audio transmission. + /// This property only affects when SpeechServiceConnection_SynthOutputFormat is set to a pcm format. + /// If this property is not set and GStreamer is available, SDK will use compressed format for synthesized audio transmission, + /// and decode it. You can set this property to "false" to use raw pcm format for transmission on wire. + /// Added in version 1.16.0 + /// + SpeechServiceConnection_SynthEnableCompressedAudioTransmission = 3103, + + /// + /// The string to specify TTS backend; valid options are online and offline. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use or + /// to set the synthesis backend to offline. + /// Added in version 1.19.0 + /// + SpeechServiceConnection_SynthBackend = 3110, + + /// + /// The data file path(s) for offline synthesis engine; only valid when synthesis backend is offline. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use or . + /// Added in version 1.19.0 + /// + SpeechServiceConnection_SynthOfflineDataPath = 3112, + + /// + /// The name of the offline TTS voice to be used for speech synthesis + /// Under normal circumstances, you shouldn't use this property directly. + /// Instead, use and . + /// Added in version 1.19.0 + /// + SpeechServiceConnection_SynthOfflineVoice = 3113, + + /// + /// This property is deprecated. + /// + SpeechServiceConnection_SynthModelKey = 3114, + + /// + /// The Cognitive Services Speech Service voices list api endpoint (url). Under normal circumstances, + /// you don't need to specify this property, SDK will construct it based on the region/host/endpoint of . + /// Added in version 1.16.0 + /// + SpeechServiceConnection_VoicesListEndpoint = 3130, + + /// + /// The initial silence timeout value (in milliseconds) used by the service. + /// Added in version 1.5.0 + /// + SpeechServiceConnection_InitialSilenceTimeoutMs = 3200, + + /// + /// The end silence timeout value (in milliseconds) used by the service. + /// Added in version 1.5.0 + /// + SpeechServiceConnection_EndSilenceTimeoutMs = 3201, + + /// + /// A boolean value specifying whether audio logging is enabled in the service or not. + /// Audio and content logs are stored either in Microsoft-owned storage, or in your own storage account linked + /// to your Cognitive Services subscription (Bring Your Own Storage (BYOS) enabled Speech resource). + /// Added in version 1.5.0. + /// + SpeechServiceConnection_EnableAudioLogging = 3202, + + /// + /// The speech service connection language identifier mode. + /// Can be "AtStart" (the default), or "Continuous". See [Language + /// Identification](https://aka.ms/speech/lid?pivots=programming-language-cpp) document. + /// Added in 1.25.0 + /// + SpeechServiceConnection_LanguageIdMode = 3205, + + /// + /// The speech service connection translation categoryId. + /// + SpeechServiceConnection_TranslationCategoryId = 3206, + + /// + /// The auto detect source languages + /// Added in version 1.8.0 + /// + SpeechServiceConnection_AutoDetectSourceLanguages = 3300, + + /// + /// The auto detect source language result + /// Added in version 1.8.0 + /// + SpeechServiceConnection_AutoDetectSourceLanguageResult = 3301, + + /// + /// The requested Cognitive Services Speech Service response output format (simple or detailed). Under normal circumstances, you shouldn't have + /// to use this property directly. + /// Instead use . + /// + SpeechServiceResponse_RequestDetailedResultTrueFalse = 4000, + + /// + /// The requested Cognitive Services Speech Service response output profanity level. Currently unused. + /// + SpeechServiceResponse_RequestProfanityFilterTrueFalse = 4001, + + /// + /// The requested Cognitive Services Speech Service response output profanity setting. + /// Allowed values are "masked", "removed", and "raw". + /// Added in version 1.5.0. + /// + SpeechServiceResponse_ProfanityOption = 4002, + + /// + /// A string value specifying which post processing option should be used by service. + /// Allowed values are "TrueText". + /// Added in version 1.5.0 + /// + SpeechServiceResponse_PostProcessingOption = 4003, + + /// + /// A boolean value specifying whether to include word-level timestamps in the response result. + /// Added in version 1.5.0 + /// + SpeechServiceResponse_RequestWordLevelTimestamps = 4004, + + /// + /// The number of times a word has to be in partial results to be returned. + /// Added in version 1.5.0 + /// + SpeechServiceResponse_StablePartialResultThreshold = 4005, + + /// + /// A string value specifying the output format option in the response result. Internal use only. + /// Added in version 1.5.0. + /// + SpeechServiceResponse_OutputFormatOption = 4006, + + /// + /// A boolean value specifying whether to include SNR (signal to noise ratio) in the response result. + /// Added in version 1.18.0 + /// + SpeechServiceResponse_RequestSnr = 4007, + + /// + /// A boolean value to request for stabilizing translation partial results by omitting words in the end. + /// Added in version 1.5.0. + /// + SpeechServiceResponse_TranslationRequestStablePartialResult = 4100, + + /// + /// A boolean value specifying whether to request WordBoundary events. + /// Added in version 1.21.0. + /// + SpeechServiceResponse_RequestWordBoundary = 4200, + + /// + /// A boolean value specifying whether to request punctuation boundary in WordBoundary Events. Default is true. + /// Added in version 1.21.0. + /// + SpeechServiceResponse_RequestPunctuationBoundary = 4201, + + /// + /// A boolean value specifying whether to request sentence boundary in WordBoundary Events. Default is false. + /// Added in version 1.21.0. + /// + SpeechServiceResponse_RequestSentenceBoundary = 4202, + + /// + /// A boolean value specifying whether the SDK should synchronize synthesis metadata events, + /// (e.g. word boundary, viseme, etc.) to the audio playback. This only takes effect when the audio is played through the SDK. + /// Default is true. + /// If set to false, the SDK will fire the events as they come from the service, which may be out of sync with the audio playback. + /// Added in version 1.31.0. + /// + SpeechServiceResponse_SynthesisEventsSyncToAudio = 4210, + + /// + /// The Cognitive Services Speech Service response output (in JSON format). This property is available on recognition result objects only. + /// + SpeechServiceResponse_JsonResult = 5000, + + /// + /// The Cognitive Services Speech Service error details (in JSON format). Under normal circumstances, you shouldn't have to + /// use this property directly. + /// Instead, use . + /// + SpeechServiceResponse_JsonErrorDetails = 5001, + + /// + /// The recognition latency in milliseconds. Read-only, available on final speech/translation/intent results. + /// This measures the latency between when an audio input is received by the SDK, and the moment the final result is received from the service. + /// The SDK computes the time difference between the last audio fragment from the audio input that is contributing to the final result, and the time the final result is received from the speech service. + /// Added in version 1.3.0. + /// + SpeechServiceResponse_RecognitionLatencyMs = 5002, + + /// + /// The recognition backend. Read-only, available on speech recognition results. + /// This indicates whether cloud (online) or embedded (offline) recognition was used to produce the result. + /// + SpeechServiceResponse_RecognitionBackend = 5003, + + /// + /// The speech synthesis first byte latency in milliseconds. Read-only, available on final speech synthesis results. + /// This measures the latency between when the synthesis is started to be processed, and the moment the first byte audio is available. + /// Added in version 1.17.0. + /// + SpeechServiceResponse_SynthesisFirstByteLatencyMs = 5010, + + /// + /// The speech synthesis all bytes latency in milliseconds. Read-only, available on final speech synthesis results. + /// This measures the latency between when the synthesis is started to be processed, and the moment the whole audio is synthesized. + /// Added in version 1.17.0. + /// + SpeechServiceResponse_SynthesisFinishLatencyMs = 5011, + + /// + /// The underrun time for speech synthesis in milliseconds. Read-only, available on results in SynthesisCompleted events. + /// This measures the total underrun time from is filled to synthesis completed. + /// Added in version 1.17.0. + /// + SpeechServiceResponse_SynthesisUnderrunTimeMs = 5012, + + /// + /// The speech synthesis connection latency in milliseconds. Read-only, available on final speech synthesis results. + /// This measures the latency between when the synthesis is started to be processed, and the moment the HTTP/WebSocket connection is established. + /// Added in version 1.26.0. + /// + SpeechServiceResponse_SynthesisConnectionLatencyMs = 5013, + + /// + /// The speech synthesis network latency in milliseconds. Read-only, available on final speech synthesis results. + /// This measures the network round trip time. + /// Added in version 1.26.0. + /// + SpeechServiceResponse_SynthesisNetworkLatencyMs = 5014, + + /// + /// The speech synthesis service latency in milliseconds. Read-only, available on final speech synthesis results. + /// This measures the service processing time to synthesize the first byte of audio. + /// Added in version 1.26.0. + /// + SpeechServiceResponse_SynthesisServiceLatencyMs = 5015, + + /// + /// Indicates which backend the synthesis is finished by. Read-only, available on speech synthesis results, except for the result in SynthesisStarted event + /// Added in version 1.17.0. + /// + SpeechServiceResponse_SynthesisBackend = 5020, + + /// + /// Determines if intermediate results contain speaker identification. + /// + /// + /// + /// Allowed values are "true" or "false". If set to "true", the intermediate results will contain speaker identification. + /// The default value if unset or set to an invalid value is "false". + /// + /// + /// This is currently only supported for scenarios using the + /// + /// + /// Adding in version 1.40. + /// + /// + SpeechServiceResponse_DiarizeIntermediateResults = 5025, + + /// + /// The cancellation reason. Currently unused. + /// + CancellationDetails_Reason = 6000, + + /// + /// The cancellation text. Currently unused. + /// + CancellationDetails_ReasonText = 6001, + + /// + /// The cancellation detailed text. Currently unused. + /// + CancellationDetails_ReasonDetailedText = 6002, + + /// + /// The Language Understanding Service response output (in JSON format). Available via . + /// + LanguageUnderstandingServiceResponse_JsonResult = 7000, + + /// + /// The device name for audio capture. Under normal circumstances, you shouldn't have to + /// use this property directly. + /// Instead, use . + /// NOTE: This property id was added in version 1.3.0. + /// + AudioConfig_DeviceNameForCapture = 8000, + + /// + /// The number of channels for audio capture. Internal use only. + /// NOTE: This property id was added in version 1.3.0. + /// + AudioConfig_NumberOfChannelsForCapture = 8001, + + /// + /// The sample rate (in Hz) for audio capture. Internal use only. + /// NOTE: This property id was added in version 1.3.0. + /// + AudioConfig_SampleRateForCapture = 8002, + + /// + /// The number of bits of each sample for audio capture. Internal use only. + /// NOTE: This property id was added in version 1.3.0. + /// + AudioConfig_BitsPerSampleForCapture = 8003, + + /// + /// The audio source. Allowed values are "Microphones", "File", and "Stream". + /// Added in version 1.3.0. + /// + AudioConfig_AudioSource = 8004, + + /// + /// The device name for audio render. Under normal circumstances, you shouldn't have to + /// use this property directly. + /// Instead, use . + /// Added in version 1.14.0 + /// + AudioConfig_DeviceNameForRender = 8005, + + /// + /// Playback buffer length in milliseconds, default is 50 milliseconds. + /// + AudioConfig_PlaybackBufferLengthInMs = 8006, + + /// + /// Audio processing options in JSON format. + /// + AudioConfig_AudioProcessingOptions = 8007, + + /// + /// The file name to write logs. + /// Added in version 1.4.0. + /// + Speech_LogFilename = 9001, + + /// + /// A duration of detected silence, measured in milliseconds, after which speech-to-text will determine a spoken + /// phrase has ended and generate a final Recognized result. Configuring this timeout may be helpful in situations + /// where spoken input is significantly faster or slower than usual and default segmentation behavior consistently + /// yields results that are too long or too short. Segmentation timeout values that are inappropriately high or low + /// can negatively affect speech-to-text accuracy; this property should be carefully configured and the resulting + /// behavior should be thoroughly validated as intended. + /// The value must be in the range **[100, 5000]** milliseconds. + /// + /// For more information about timeout configuration that includes discussion of default behaviors, please visit + /// https://aka.ms/csspeech/timeouts. + /// + Speech_SegmentationSilenceTimeoutMs = 9002, + + /// + /// The maximum length of a spoken phrase when using the "Time" segmentation strategy. + /// As the length of a spoken phrase approaches this value, the will begin being reduced until either the phrase silence timeout is hit or the phrase reaches the maximum length. + /// The value must be in the range **[20000, 70000]** milliseconds. + /// + Speech_SegmentationMaximumTimeMs = 9003, + + /// + /// The strategy used to determine when a spoken phrase has ended and a final Recognized result should be generated. + /// Allowed values are "Default", "Time", and "Semantic". + /// + /// + /// Valid values are: + /// + /// + /// Default + /// Use the default strategy and settings as determined by the Speech Service. Use in most situations. + /// + /// + /// Time + /// Uses a time based strategy where the amount of silence between speech is used to determine when to generate a final result. + /// + /// + /// Semantic + /// Uses an AI model to deterine the end of a spoken phrase based on the content of the phrase. + /// + /// + /// + /// When using the time strategy, the property can be used to adjust the amount of silence needed to determine the end of a spoken phrase, + /// and the property can be used to adjust the maximum length of a spoken phrase. + /// + /// + /// The semantic strategy has no control properties available. + /// + /// + Speech_SegmentationStrategy = 9004, + + /// + /// Identifier used to connect to the backend service. + /// Added in version 1.5.0. + /// + Conversation_ApplicationId = 10000, + + /// + /// Type of dialog backend to connect to. + /// Added in version 1.7.0. + /// + Conversation_DialogType = 10001, + + /// + /// Silence timeout for listening + /// Added in version 1.5.0. + /// + Conversation_Initial_Silence_Timeout = 10002, + + /// + /// From id to be used on speech recognition activities + /// Added in version 1.5.0. + /// + Conversation_From_Id = 10003, + + /// + /// ConversationId for the session. + /// Added in version 1.8.0. + /// + Conversation_Conversation_Id = 10004, + + /// + /// Comma separated list of custom voice deployment ids. + /// Added in version 1.8.0. + /// + Conversation_Custom_Voice_Deployment_Ids = 10005, + + /// + /// Speech activity template, stamp properties in the template on the activity generated by the service for speech. + /// Added in version 1.10.0. + /// + Conversation_Speech_Activity_Template = 10006, + + /// + /// Your participant identifier in the current conversation. + /// Added in version 1.13.0 + /// + Conversation_ParticipantId = 10007, + + // If specified as true, request that the service send MessageStatus payloads via the ActivityReceived event + // handler. These messages communicate the outcome of ITurnContext resolution from the dialog system. + // Added in version 1.14.0. + Conversation_Request_Bot_Status_Messages = 10008, + + // Additional identifying information, such as a Direct Line token, used to authenticate with the backend service. + // Added in version 1.16.0. + Conversation_Connection_Id = 10009, + + /// + /// The time stamp associated to data buffer written by client when using Pull/Push audio input streams. + /// The time stamp is a 64-bit value with a resolution of 90 kHz. It is the same as the presentation timestamp in an MPEG transport stream. See https://en.wikipedia.org/wiki/Presentation_timestamp + /// Added in version 1.5.0. + /// + DataBuffer_TimeStamp = 11001, + + /// + /// The user id associated to data buffer written by client when using Pull/Push audio input streams. + /// Added in version 1.5.0. + /// + DataBuffer_UserId = 11002, + + /// + /// The reference text of the audio for pronunciation evaluation. + /// For this and the following pronunciation assessment parameters, see the table + /// [Pronunciation assessment parameters](/azure/cognitive-services/speech-service/rest-speech-to-text-short#pronunciation-assessment-parameters). + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use or . + /// Added in version 1.14.0 + /// + PronunciationAssessment_ReferenceText = 12001, + + /// + /// The point system for pronunciation score calibration (FivePoint or HundredMark). + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.14.0 + /// + PronunciationAssessment_GradingSystem = 12002, + + /// + /// The pronunciation evaluation granularity (Phoneme, Word, or FullText). + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.14.0 + /// + PronunciationAssessment_Granularity = 12003, + + /// + /// Defines if enable miscue calculation. + /// With this enabled, the pronounced words will be compared to the reference text, + /// and will be marked with omission/insertion based on the comparison. The default setting is False. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.14.0 + /// + PronunciationAssessment_EnableMiscue = 12005, + + /// + /// The pronunciation evaluation phoneme alphabet. The valid values are "SAPI" (default) and "IPA" + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.20.0 + /// + PronunciationAssessment_PhonemeAlphabet = 12006, + + /// + /// The pronunciation evaluation nbest phoneme count. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.20.0 + /// + PronunciationAssessment_NBestPhonemeCount = 12007, + + /// + /// Whether to enable prosody assessment. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.33.0 + /// + PronunciationAssessment_EnableProsodyAssessment = 12008, + + /// + /// The json string of pronunciation assessment parameters + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.14.0 + /// + PronunciationAssessment_Json = 12009, + + /// + /// Pronunciation assessment parameters. + /// This property is intended to be read-only. The SDK is using it internally. + /// Added in version 1.14.0 + /// + PronunciationAssessment_Params = 12010, + + /// + /// The content topic of the pronunciation assessment. + /// Under normal circumstances, you shouldn't have to use this property directly. + /// Instead, use . + /// Added in version 1.33.0 + /// + PronunciationAssessment_ContentTopic = 12020, + + /// + /// Speaker Recognition backend API version. + /// This property is added to allow testing and use of previous versions of Speaker Recognition APIs, where applicable. + /// Added in version 1.18.0 + /// + SpeakerRecognition_Api_Version = 13001, + + /// + /// The name of a model to be used for speech translation. + /// Do not use this property directly. + /// Currently this is only valid when EmbeddedSpeechConfig is used. + /// + SpeechTranslation_ModelName = 13100, + + /// + /// This property is deprecated. + /// + SpeechTranslation_ModelKey = 13101, + + /// + /// The name of a model to be used for keyword recognition. + /// Do not use this property directly. + /// Currently this is only valid when EmbeddedSpeechConfig is used. + /// + KeywordRecognition_ModelName = 13200, + + /// + /// This property is deprecated. + /// + KeywordRecognition_ModelKey = 13201, + + /// + /// Enable the collection of embedded speech performance metrics which can + /// be used to evaluate the capability of a device to use embedded speech. + /// The collected data is included in results from specific scenarios like + /// speech recognition. + /// The default setting is "false". Note that metrics may not be available + /// from all embedded speech scenarios. + /// + EmbeddedSpeech_EnablePerformanceMetrics = 13300, + + /// + /// The pitch of the synthesized speech. + /// + SpeechSynthesisRequest_Pitch = 14001, + + /// + /// The rate of the synthesized speech. + /// + SpeechSynthesisRequest_Rate = 14002, + + /// + /// The volume of the synthesized speech. + /// + SpeechSynthesisRequest_Volume = 14003, + + /// + /// The style of the synthesized speech. + /// + SpeechSynthesisRequest_Style = 14004, + + /// + /// The temperature of the synthesized speech. + /// The temperature parameter only takes effect when the voice is a HD voice. + /// + SpeechSynthesisRequest_Temperature = 14005, + + /// + /// The custom lexicon URL for the synthesized speech. + /// This provides a URL to a custom pronunciation lexicon to be used during synthesis. + /// + SpeechSynthesisRequest_CustomLexiconUrl = 14006, + + /// + /// The preferred locales for the synthesized speech. + /// Comma-separated list of locale names in order of preference. + /// + SpeechSynthesisRequest_PreferLocales = 14007, + + /// + /// The timeout interval in milliseconds between synthesized speech audio frames. + /// The greater of this and 10 seconds is used as a hard frame timeout. + /// A speech synthesis timeout occurs if + /// a) the time passed since the latest frame exceeds this timeout interval and the Real-Time Factor (RTF) exceeds its maximum value, or + /// b) the time passed since the latest frame exceeds the hard frame timeout. + /// + SpeechSynthesis_FrameTimeoutInterval = 14101, + + /// + /// The maximum Real-Time Factor (RTF) for speech synthesis. The RTF is calculated as + /// RTF = f(d)/d + /// where f(d) is the time taken to synthesize speech audio of duration d. + /// + SpeechSynthesis_RtfTimeoutThreshold = 14102, +}; + +/// +/// Output format. +/// +enum class OutputFormat +{ + Simple = 0, + Detailed = 1 +}; + +/// +/// Removes profanity (swearing), or replaces letters of profane words with stars. +/// Added in version 1.5.0. +/// +enum class ProfanityOption +{ + /// + /// Replaces letters in profane words with star characters. + /// + Masked = 0, + /// + /// Removes profane words. + /// + Removed = 1, + /// + /// Does nothing to profane words. + /// + Raw = 2 +}; + +/// +/// Specifies the possible reasons a recognition result might be generated. +/// +enum class ResultReason +{ + /// + /// Indicates speech could not be recognized. More details can be found in the NoMatchDetails object. + /// + NoMatch = 0, + + /// + /// Indicates that the recognition was canceled. More details can be found using the CancellationDetails object. + /// + Canceled = 1, + + /// + /// Indicates the speech result contains hypothesis text. + /// + RecognizingSpeech = 2, + + /// + /// Indicates the speech result contains final text that has been recognized. + /// Speech Recognition is now complete for this phrase. + /// + RecognizedSpeech = 3, + + /// + /// Indicates the intent result contains hypothesis text and intent. + /// + RecognizingIntent = 4, + + /// + /// Indicates the intent result contains final text and intent. + /// Speech Recognition and Intent determination are now complete for this phrase. + /// + RecognizedIntent = 5, + + /// + /// Indicates the translation result contains hypothesis text and its translation(s). + /// + TranslatingSpeech = 6, + + /// + /// Indicates the translation result contains final text and corresponding translation(s). + /// Speech Recognition and Translation are now complete for this phrase. + /// + TranslatedSpeech = 7, + + /// + /// Indicates the synthesized audio result contains a non-zero amount of audio data + /// + SynthesizingAudio = 8, + + /// + /// Indicates the synthesized audio is now complete for this phrase. + /// + SynthesizingAudioCompleted = 9, + + /// + /// Indicates the speech result contains (unverified) keyword text. + /// Added in version 1.3.0 + /// + RecognizingKeyword = 10, + + /// + /// Indicates that keyword recognition completed recognizing the given keyword. + /// Added in version 1.3.0 + /// + RecognizedKeyword = 11, + + /// + /// Indicates the speech synthesis is now started + /// Added in version 1.4.0 + /// + SynthesizingAudioStarted = 12, + + /// + /// Indicates the transcription result contains hypothesis text and its translation(s) for + /// other participants in the conversation. + /// Added in version 1.8.0 + /// + TranslatingParticipantSpeech = 13, + + /// + /// Indicates the transcription result contains final text and corresponding translation(s) + /// for other participants in the conversation. Speech Recognition and Translation are now + /// complete for this phrase. + /// Added in version 1.8.0 + /// + TranslatedParticipantSpeech = 14, + + /// + /// Indicates the transcription result contains the instant message and corresponding + /// translation(s). + /// Added in version 1.8.0 + /// + TranslatedInstantMessage = 15, + + /// + /// Indicates the transcription result contains the instant message for other participants + /// in the conversation and corresponding translation(s). + /// Added in version 1.8.0 + /// + TranslatedParticipantInstantMessage = 16, + + /// + /// Indicates the voice profile is being enrolling and customers need to send more audio to create a voice profile. + /// Added in version 1.12.0 + /// + EnrollingVoiceProfile = 17, + + /// + /// The voice profile has been enrolled. + /// Added in version 1.12.0 + /// + EnrolledVoiceProfile = 18, + + /// + /// Indicates successful identification of some speakers. + /// Added in version 1.12.0 + /// + RecognizedSpeakers = 19, + + /// + /// Indicates successfully verified one speaker. + /// Added in version 1.12.0 + /// + RecognizedSpeaker = 20, + + /// + /// Indicates a voice profile has been reset successfully. + /// Added in version 1.12.0 + /// + ResetVoiceProfile = 21, + + /// + /// Indicates a voice profile has been deleted successfully. + /// Added in version 1.12.0 + /// + DeletedVoiceProfile = 22, + + /// + /// Indicates the voices list has been retrieved successfully. + /// Added in version 1.16.0 + /// + VoicesListRetrieved = 23 +}; + +/// +/// Defines the possible reasons a recognition result might be canceled. +/// +enum class CancellationReason +{ + /// + /// Indicates that an error occurred during speech recognition. + /// + Error = 1, + + /// + /// Indicates that the end of the audio stream was reached. + /// + EndOfStream = 2, + + /// + /// Indicates that request was cancelled by the user. + /// Added in version 1.14.0 + /// + CancelledByUser = 3, +}; + +/// +/// Defines error code in case that CancellationReason is Error. +/// Added in version 1.1.0. +/// +enum class CancellationErrorCode +{ + /// + /// No error. + /// If CancellationReason is EndOfStream, CancellationErrorCode + /// is set to NoError. + /// + NoError = 0, + + /// + /// Indicates an authentication error. + /// An authentication error occurs if subscription key or authorization token is invalid, expired, + /// or does not match the region being used. + /// + AuthenticationFailure = 1, + + /// + /// Indicates that one or more recognition parameters are invalid or the audio format is not supported. + /// + BadRequest = 2, + + /// + /// Indicates that the number of parallel requests exceeded the number of allowed concurrent transcriptions for the subscription. + /// + TooManyRequests = 3, + + /// + /// Indicates that the free subscription used by the request ran out of quota. + /// + Forbidden = 4, + + /// + /// Indicates a connection error. + /// + ConnectionFailure = 5, + + /// + /// Indicates a time-out error when waiting for response from service. + /// + ServiceTimeout = 6, + + /// + /// Indicates that an error is returned by the service. + /// + ServiceError = 7, + + /// + /// Indicates that the service is currently unavailable. + /// + ServiceUnavailable = 8, + + /// + /// Indicates an unexpected runtime error. + /// + RuntimeError = 9, + + /// + /// Indicates the Speech Service is temporarily requesting a reconnect to a different endpoint. + /// + /// Used internally + ServiceRedirectTemporary = 10, + + /// + /// Indicates the Speech Service is permanently requesting a reconnect to a different endpoint. + /// + /// Used internally + ServiceRedirectPermanent = 11, + + /// + /// Indicates the embedded speech (SR or TTS) model is not available or corrupted. + /// + EmbeddedModelError = 12, +}; + +/// +/// Defines the possible reasons a recognition result might not be recognized. +/// +enum class NoMatchReason +{ + /// + /// Indicates that speech was detected, but not recognized. + /// + NotRecognized = 1, + + /// + /// Indicates that the start of the audio stream contained only silence, and the service timed out waiting for speech. + /// + InitialSilenceTimeout = 2, + + /// + /// Indicates that the start of the audio stream contained only noise, and the service timed out waiting for speech. + /// + InitialBabbleTimeout = 3, + + /// + /// Indicates that the spotted keyword has been rejected by the keyword verification service. + /// Added in version 1.5.0. + /// + KeywordNotRecognized = 4, + + /// + /// Indicates that the audio stream contained only silence after the last recognized phrase. + /// + EndSilenceTimeout = 5 +}; + +/// +/// Defines the possible types for an activity json value. +/// Added in version 1.5.0 +/// +enum class ActivityJSONType : int +{ + Null = 0, + Object = 1, + Array = 2, + String = 3, + Double = 4, + UInt = 5, + Int = 6, + Boolean = 7 +}; + + +/// +/// Defines the possible speech synthesis output audio formats. +/// Updated in version 1.19.0 +/// +enum class SpeechSynthesisOutputFormat +{ + /// + /// raw-8khz-8bit-mono-mulaw + /// + Raw8Khz8BitMonoMULaw = 1, + + /// + /// riff-16khz-16kbps-mono-siren + /// Unsupported by the service. Do not use this value. + /// + Riff16Khz16KbpsMonoSiren = 2, + + /// + /// audio-16khz-16kbps-mono-siren + /// Unsupported by the service. Do not use this value. + /// + Audio16Khz16KbpsMonoSiren = 3, + + /// + /// audio-16khz-32kbitrate-mono-mp3 + /// + Audio16Khz32KBitRateMonoMp3 = 4, + + /// + /// audio-16khz-128kbitrate-mono-mp3 + /// + Audio16Khz128KBitRateMonoMp3 = 5, + + /// + /// audio-16khz-64kbitrate-mono-mp3 + /// + Audio16Khz64KBitRateMonoMp3 = 6, + + /// + /// audio-24khz-48kbitrate-mono-mp3 + /// + Audio24Khz48KBitRateMonoMp3 =7, + + /// + /// audio-24khz-96kbitrate-mono-mp3 + /// + Audio24Khz96KBitRateMonoMp3 = 8, + + /// + /// audio-24khz-160kbitrate-mono-mp3 + /// + Audio24Khz160KBitRateMonoMp3 = 9, + + /// + /// raw-16khz-16bit-mono-truesilk + /// + Raw16Khz16BitMonoTrueSilk = 10, + + /// + /// riff-16khz-16bit-mono-pcm + /// + Riff16Khz16BitMonoPcm = 11, + + /// + /// riff-8khz-16bit-mono-pcm + /// + Riff8Khz16BitMonoPcm = 12, + + /// + /// riff-24khz-16bit-mono-pcm + /// + Riff24Khz16BitMonoPcm = 13, + + /// + /// riff-8khz-8bit-mono-mulaw + /// + Riff8Khz8BitMonoMULaw = 14, + + /// + /// raw-16khz-16bit-mono-pcm + /// + Raw16Khz16BitMonoPcm = 15, + + /// + /// raw-24khz-16bit-mono-pcm + /// + Raw24Khz16BitMonoPcm = 16, + + /// + /// raw-8khz-16bit-mono-pcm + /// + Raw8Khz16BitMonoPcm = 17, + + /// + /// ogg-16khz-16bit-mono-opus + /// + Ogg16Khz16BitMonoOpus = 18, + + /// + /// ogg-24khz-16bit-mono-opus + /// + Ogg24Khz16BitMonoOpus = 19, + + /// + /// raw-48khz-16bit-mono-pcm + /// + Raw48Khz16BitMonoPcm = 20, + + /// + /// riff-48khz-16bit-mono-pcm + /// + Riff48Khz16BitMonoPcm = 21, + + /// + /// audio-48khz-96kbitrate-mono-mp3 + /// + Audio48Khz96KBitRateMonoMp3 = 22, + + /// + /// audio-48khz-192kbitrate-mono-mp3 + /// + Audio48Khz192KBitRateMonoMp3 = 23, + + /// + /// ogg-48khz-16bit-mono-opus + /// Added in version 1.16.0 + /// + Ogg48Khz16BitMonoOpus = 24, + + /// + /// webm-16khz-16bit-mono-opus + /// Added in version 1.16.0 + /// + Webm16Khz16BitMonoOpus = 25, + + /// + /// webm-24khz-16bit-mono-opus + /// Added in version 1.16.0 + /// + Webm24Khz16BitMonoOpus = 26, + + /// + /// raw-24khz-16bit-mono-truesilk + /// Added in version 1.17.0 + /// + Raw24Khz16BitMonoTrueSilk = 27, + + /// + /// raw-8khz-8bit-mono-alaw + /// Added in version 1.17.0 + /// + Raw8Khz8BitMonoALaw = 28, + + /// + /// riff-8khz-8bit-mono-alaw + /// Added in version 1.17.0 + /// + Riff8Khz8BitMonoALaw = 29, + + /// + /// webm-24khz-16bit-24kbps-mono-opus + /// Audio compressed by OPUS codec in a WebM container, with bitrate of 24kbps, optimized for IoT scenario. + /// (Added in 1.19.0) + /// + Webm24Khz16Bit24KbpsMonoOpus = 30, + + /// + /// audio-16khz-16bit-32kbps-mono-opus + /// Audio compressed by OPUS codec without container, with bitrate of 32kbps. + /// (Added in 1.20.0) + /// + Audio16Khz16Bit32KbpsMonoOpus = 31, + + /// + /// audio-24khz-16bit-48kbps-mono-opus + /// Audio compressed by OPUS codec without container, with bitrate of 48kbps. + /// (Added in 1.20.0) + /// + Audio24Khz16Bit48KbpsMonoOpus = 32, + + /// + /// audio-24khz-16bit-24kbps-mono-opus + /// Audio compressed by OPUS codec without container, with bitrate of 24kbps. + /// (Added in 1.20.0) + /// + Audio24Khz16Bit24KbpsMonoOpus = 33, + + /// + /// raw-22050hz-16bit-mono-pcm + /// Raw PCM audio at 22050Hz sampling rate and 16-bit depth. + /// (Added in 1.22.0) + /// + Raw22050Hz16BitMonoPcm = 34, + + /// + /// riff-22050hz-16bit-mono-pcm + /// PCM audio at 22050Hz sampling rate and 16-bit depth, with RIFF header. + /// (Added in 1.22.0) + /// + Riff22050Hz16BitMonoPcm = 35, + + /// + /// raw-44100hz-16bit-mono-pcm + /// Raw PCM audio at 44100Hz sampling rate and 16-bit depth. + /// (Added in 1.22.0) + /// + Raw44100Hz16BitMonoPcm = 36, + + /// + /// riff-44100hz-16bit-mono-pcm + /// PCM audio at 44100Hz sampling rate and 16-bit depth, with RIFF header. + /// (Added in 1.22.0) + /// + Riff44100Hz16BitMonoPcm = 37, + + /// + /// amr-wb-16000hz + /// AMR-WB audio at 16kHz sampling rate. + /// (Added in 1.24.0) + /// + AmrWb16000Hz = 38, + + /// + /// g722-16khz-64kbps + /// G.722 audio at 16kHz sampling rate and 64kbps bitrate. + /// (Added in 1.38.0) + /// + G72216Khz64Kbps = 39 +}; + +/// +/// Defines the possible status of audio data stream. +/// Added in version 1.4.0 +/// +enum class StreamStatus +{ + /// + /// The audio data stream status is unknown + /// + Unknown = 0, + + /// + /// The audio data stream contains no data + /// + NoData = 1, + + /// + /// The audio data stream contains partial data of a speak request + /// + PartialData = 2, + + /// + /// The audio data stream contains all data of a speak request + /// + AllData = 3, + + /// + /// The audio data stream was canceled + /// + Canceled = 4 +}; + +/// +/// Defines channels used to pass property settings to service. +/// Added in version 1.5.0. +/// +enum class ServicePropertyChannel +{ + /// + /// Uses URI query parameter to pass property settings to service. + /// + UriQueryParameter = 0, + + /// + /// Uses HttpHeader to set a key/value in a HTTP header. + /// + HttpHeader = 1 +}; + +namespace Transcription +{ + /// + /// Why the participant changed event was raised + /// Added in version 1.8.0 + /// + enum class ParticipantChangedReason + { + /// + /// Participant has joined the conversation + /// + JoinedConversation = 0, + + /// + /// Participant has left the conversation. This could be voluntary, or involuntary + /// (e.g. they are experiencing networking issues) + /// + LeftConversation = 1, + + /// + /// The participants' state has changed (e.g. they became muted, changed their nickname) + /// + Updated = 2 + }; +} + +namespace Intent +{ + /// + /// Used to define the type of entity used for intent recognition. + /// + enum class EntityType + { + /// + /// This will match any text that fills the slot. + /// + Any = 0, + /// + /// This will match text that is contained within the list or any text if the mode is set to "fuzzy". + /// + List = 1, + /// + /// This will match cardinal and ordinal integers. + /// + PrebuiltInteger = 2 + }; + + /// + /// Used to define the type of entity used for intent recognition. + /// + enum class EntityMatchMode + { + /// + /// This is the basic or default mode of matching based on the EntityType + /// + Basic = 0, + /// + /// This will match only exact matches within the entities phrases. + /// + Strict = 1, + /// + /// This will match text within the slot the entity is in, but not require anything from that text. + /// + Fuzzy = 2 + }; + + /// + /// Used to define the greediness of the entity. + /// + enum class EntityGreed + { + /// + /// Lazy will match as little as possible. + /// + Lazy = 0, + /// + /// Greedy will match as much as possible. + /// + Greedy = 1, + }; +} +/// +/// Defines voice profile types +/// +enum class VoiceProfileType +{ + /// + /// Text independent speaker identification. + /// + TextIndependentIdentification = 1, + + /// + /// Text dependent speaker verification. + /// + TextDependentVerification = 2, + + /// + /// Text independent verification. + /// + TextIndependentVerification = 3 +}; + +/// +/// Defines the scope that a Recognition Factor is applied to. +/// +enum class RecognitionFactorScope +{ + /// + /// A Recognition Factor will apply to grammars that can be referenced as individual partial phrases. + /// + /// + /// Currently only applies to PhraseListGrammars + /// + PartialPhrase = 1, +}; + +/// +/// Defines the point system for pronunciation score calibration; default value is FivePoint. +/// Added in version 1.14.0 +/// +enum class PronunciationAssessmentGradingSystem +{ + /// + /// Five point calibration + /// + FivePoint = 1, + + /// + /// Hundred mark + /// + HundredMark = 2 +}; + +/// +/// Defines the pronunciation evaluation granularity; default value is Phoneme. +/// Added in version 1.14.0 +/// +enum class PronunciationAssessmentGranularity +{ + /// + /// Shows the score on the full text, word and phoneme level + /// + Phoneme = 1, + + /// + /// Shows the score on the full text and word level + /// + Word = 2, + + /// + /// Shows the score on the full text level only + /// + FullText = 3 +}; + +/// +/// Defines the type of synthesis voices +/// Added in version 1.16.0 +/// +enum class SynthesisVoiceType +{ + /// + /// Online neural voice + /// + OnlineNeural = 1, + + /// + /// Online standard voice + /// + OnlineStandard = 2, + + /// + /// Offline neural voice + /// + OfflineNeural = 3, + + /// + /// Offline standard voice + /// + OfflineStandard = 4 +}; + +/// +/// Defines the gender of synthesis voices +/// Added in version 1.17.0 +/// +enum class SynthesisVoiceGender +{ + /// + /// Gender unknown. + /// + Unknown = 0, + + /// + /// Female voice + /// + Female = 1, + + /// + /// Male voice + /// + Male = 2, + + /// + /// Neutral voice + /// + Neutral = 3 +}; + +/// +/// Defines the status of synthesis voices +/// +enum class SynthesisVoiceStatus +{ + /// + /// Voice status unknown. + /// + Unknown = 0, + + /// + /// Voice is generally available. + /// + GeneralAvailability = 1, + + /// + /// Voice is in preview. + /// + Preview = 2, + + /// + /// Voice is deprecated, do not use. + /// + Deprecated = 3, +}; + +/// +/// Defines the boundary type of speech synthesis boundary event +/// Added in version 1.21.0 +/// +enum class SpeechSynthesisBoundaryType +{ + /// + /// Word boundary + /// + Word = 0, + + /// + /// Punctuation boundary + /// + Punctuation = 1, + + /// + /// Sentence boundary + /// + Sentence = 2 +}; + +/// +/// The strategy used to determine when a spoken phrase has ended and a final Recognized result should be generated. +/// Allowed values are "Default", "Time", and "Semantic". +/// +enum class SegmentationStrategy +{ + /// + /// Use the default strategy and settings as determined by the Speech Service. Use in most situations. + /// + Default = 0, + + /// + /// Uses a time based strategy where the amount of silence between speech is used to determine when to generate a final result. + /// + /// + /// When using the time strategy, the property can be used to adjust the amount of silence needed to determine the end of a spoken phrase, + /// and the property can be used to adjust the maximum length of a spoken phrase. + /// + Time = 1, + + /// + /// Uses an AI model to deterine the end of a spoken phrase based on the content of the phrase. + /// + /// + /// The semantic strategy has no control properties available. + /// + Semantic = 2 +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_event_logger.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_event_logger.h new file mode 100644 index 0000000..4e67cb1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_event_logger.h @@ -0,0 +1,108 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Diagnostics { +namespace Logging { + +/// +/// Class with static methods to control callback-based SDK logging. +/// Turning on logging while running your Speech SDK scenario provides +/// detailed information from the SDK's core native components. If you +/// report an issue to Microsoft, you may be asked to provide logs to help +/// Microsoft diagnose the issue. Your application should not take dependency +/// on particular log strings, as they may change from one SDK release to another +/// without notice. +/// Use EventLogger when you want to get access to new log strings as soon +/// as they are available, and you need to further process them. For example, +/// integrating Speech SDK logs with your existing logging collection system. +/// Added in version 1.20.0 +/// +/// Event logging is a process wide construct. That means that if (for example) +/// you have multiple speech recognizer objects running in parallel, you can only register +/// one callback function to receive interleaved logs from all recognizers. You cannot register +/// a separate callback for each recognizer. +class EventLogger +{ +public: + using CallbackFunction_Type = ::std::function; + + /// + /// Register a callback function that will be invoked for each new log messages. + /// + /// callback function to call. Set a nullptr value + /// to stop the Event Logger. + /// You can only register one callback function. This call will happen on a working thread of the SDK, + /// so the log string should be copied somewhere for further processing by another thread, and the function should return immediately. + /// No heavy processing or network calls should be done in this callback function. + static void SetCallback(CallbackFunction_Type callback = nullptr) + { + AZAC_THROW_ON_FAIL(diagnostics_logmessage_set_callback(nullptr == callback ? nullptr : LineLogged)); + + SetOrGet(true, callback); + } + + /// + /// Sets or clears filters for callbacks. + /// Once filters are set, the callback will be invoked only if the log string + /// contains at least one of the strings specified by the filters. The match is case sensitive. + /// + /// Optional. Filters to use, or an empty list to clear previously set filters + static void SetFilters(std::initializer_list filters = {}) + { + std::string str = ""; + + if (filters.size() > 0) + { + std::ostringstream filtersCollapsed; + std::copy(filters.begin(), filters.end(), std::ostream_iterator(filtersCollapsed, ";")); + str = filtersCollapsed.str(); + } + + AZAC_THROW_ON_FAIL(diagnostics_logmessage_set_filters(str.c_str())); + } + + /// + /// Sets the level of the messages to be captured by the logger + /// + /// Maximum level of detail to be captured by the logger. + static void SetLevel(Level level) + { + const auto levelStr = Details::LevelToString(level); + diagnostics_set_log_level("event", levelStr); + } + +private: + static CallbackFunction_Type SetOrGet(bool set, CallbackFunction_Type callback) + { + static CallbackFunction_Type staticCallback = nullptr; + if (set) + { + staticCallback = callback; + } + return staticCallback; + } + + static void LineLogged(const char* line) + { + auto callback = SetOrGet(false, nullptr); + if (nullptr != callback) + { + callback(line); + } + } +}; +}}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventargs.h new file mode 100644 index 0000000..8142268 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventargs.h @@ -0,0 +1,47 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_eventargs.h: Public API declarations for EventArgs C++ base class +// + +#pragma once +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Base class for event arguments. +/// +class EventArgs +{ +public: + + /// + /// Destructor. + /// + virtual ~EventArgs() {} + +protected: + + /*! \cond PROTECTED */ + + /// + /// Constructor. + /// + EventArgs() {}; + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(EventArgs); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignal.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignal.h new file mode 100644 index 0000000..a1e10c0 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignal.h @@ -0,0 +1,200 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_eventsignal.h: Public API declarations for the EventSignal class. This derives from +// EventSignalBase and uses runtime type information (RTTI) to facilitate management and disconnection of handlers +// without explicit callback token management. +// + +#pragma once +#include +#include +#include +#include + +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Clients can connect to the event signal to receive events, or disconnect from the event signal to stop receiving events. +/// +/// +/// At construction time, connect and disconnect callbacks can be provided that are called when +/// the number of connected clients changes from zero to one or one to zero, respectively. +/// +// +template +class EventSignal : public EventSignalBase +{ +public: + /// + /// Callback type that is used for signalling the event to connected clients. + /// + using CallbackFunction = std::function; + + /// + /// A monotonically increasing token used for registration, tracking, and unregistration of callbacks. + /// + using CallbackToken = uint32_t; + + /// + /// Type for callbacks used when any client connects to the signal (the number of connected clients changes from zero to one) or + /// the last client disconnects from the signal (the number of connected clients changes from one to zero). + /// + using NotifyCallback_Type = std::function&)>; + + /// + /// Constructs an event signal with empty register and disconnect callbacks. + /// + EventSignal() : EventSignal(nullptr) + { + } + + /// + /// Constructor. + /// + /// Callback to invoke if the number of connected clients changes from zero to one, or one to zero + EventSignal(NotifyCallback_Type connectedAndDisconnected) + : EventSignal(connectedAndDisconnected, connectedAndDisconnected) + { + } + + /// + /// Constructor. + /// + /// Callback to invoke if the number of connected clients changes from zero to one. + /// Callback to invoke if the number of connected clients changes from one to zero. + EventSignal(NotifyCallback_Type connected, NotifyCallback_Type disconnected) + : EventSignalBase() + , m_firstConnectedCallback(connected) + , m_lastDisconnectedCallback(disconnected) + { + } + + /// + /// Addition assignment operator overload. + /// Connects the provided callback to the event signal, see also . + /// + /// Callback to connect. + /// Event signal reference. + EventSignal& operator+=(CallbackFunction callback) + { + Connect(callback); + return *this; + } + + /// + /// Subtraction assignment operator overload. + /// Disconnects the provided callback from the event signal, see also . + /// + /// Callback to disconnect. + /// Event signal reference. + EventSignal& operator-=(CallbackFunction callback) + { + Disconnect(callback); + return *this; + } + + /// + /// Connects given callback function to the event signal, to be invoked when the event is signalled. + /// + /// + /// When the number of connected clients changes from zero to one, the connect callback will be called, if provided. + /// + /// Callback to connect. + void Connect(CallbackFunction callback) + { + std::unique_lock lock(m_mutex); + + auto shouldFireFirstConnected = m_callbacks.empty() && m_firstConnectedCallback != nullptr; + + (void)EventSignalBase::RegisterCallback(callback); + + lock.unlock(); + + if (shouldFireFirstConnected) + { + m_firstConnectedCallback(*this); + } + } + +#ifndef AZAC_CONFIG_CXX_NO_RTTI + /// + /// Disconnects given callback. + /// + /// + /// When the number of connected clients changes from one to zero, the disconnect callback will be called, if provided. + /// + /// Callback function. + void Disconnect(CallbackFunction callback) + { + std::unique_lock lock(m_mutex); + + auto itMatchingCallback = std::find_if( + m_callbacks.begin(), + m_callbacks.end(), + [&](const std::pair& item) + { + return callback.target_type() == item.second.target_type(); + }); + + auto removeHappened = EventSignal::UnregisterCallback(itMatchingCallback->first); + lock.unlock(); + if (removeHappened && m_callbacks.empty() && m_lastDisconnectedCallback != nullptr) + { + m_lastDisconnectedCallback(*this); + } + } +#else + void Disconnect(CallbackFunction) + { + // Callback disconnection without a stored token requires runtime type information. + // To remove callbacks with RTTI disabled, use UnregisterCallback(token). + SPX_THROW_HR(SPXERR_NOT_IMPL); + } +#endif + + /// + /// Disconnects all registered callbacks. + /// + void DisconnectAll() + { + std::unique_lock lock(m_mutex); + auto shouldFireLastDisconnected = !m_callbacks.empty() && m_lastDisconnectedCallback != nullptr; + + EventSignal::UnregisterAllCallbacks(); + + lock.unlock(); + + if (shouldFireLastDisconnected) + { + m_lastDisconnectedCallback(*this); + } + } + + /// + /// Signals the event with given arguments to all connected callbacks. + /// + /// Event arguments to signal. + void Signal(T t) + { + EventSignalBase::Signal(t); + } + +private: + using EventSignalBase::m_mutex; + using EventSignalBase::m_callbacks; + + NotifyCallback_Type m_firstConnectedCallback; + NotifyCallback_Type m_lastDisconnectedCallback; + + EventSignal(const EventSignal&) = delete; + EventSignal(const EventSignal&&) = delete; + EventSignal& operator=(const EventSignal&) = delete; +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignalbase.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignalbase.h new file mode 100644 index 0000000..4450283 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_eventsignalbase.h @@ -0,0 +1,164 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_eventsignalbase.h: Public API declarations for EventSignalBase C++ template class +// + +#pragma once +#include +#include +#include +#include +#include + +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Clients can connect to the event signal to receive events, or disconnect from the event signal to stop receiving events. +/// +/// +/// At construction time, connect and disconnect callbacks can be provided that are called when +/// the number of connected clients changes from zero to one or one to zero, respectively. +/// +// +template +class EventSignalBase +{ +public: + /// + /// Constructs an event signal with empty connect and disconnect actions. + /// + EventSignalBase() : + m_nextCallbackToken(0) + { + } + + /// + /// Destructor. + /// + virtual ~EventSignalBase() + { + UnregisterAllCallbacks(); + } + + /// + /// Callback type that is used for signalling the event to connected clients. + /// + using CallbackFunction = std::function; + + /// + /// The argument type for the callback event + /// + using CallbackArgument = T; + + /// + /// A monotonically increasing token used for registration, tracking, and unregistration of callbacks. + /// + using CallbackToken = uint32_t; + + /// + /// Registers a callback to this EventSignalBase and assigns it a unique token. + /// + /// The callback to register. + /// + /// The new token associated with this registration that can be used for subsequent unregistration. + /// + CallbackToken RegisterCallback(CallbackFunction callback) + { + std::unique_lock lock(m_mutex); + + auto token = m_nextCallbackToken; + m_nextCallbackToken++; + + m_callbacks.emplace(token, callback); + + return token; + } + + /// + /// If present, unregisters a callback from this EventSource associated with the provided token. Tokens are + /// returned from RegisterCallback at the time of registration. + /// + /// + /// The token associated with the callback to be removed. This token is provided by the return value of + /// RegisterCallback at the time of registration. + /// + /// A value indicating whether any callback was unregistered in response to this request. + bool UnregisterCallback(CallbackToken token) + { + std::unique_lock lock(m_mutex); + return (bool)m_callbacks.erase(token); + } + + /// + /// Function call operator. + /// Signals the event with given arguments to connected clients, see also . + /// + /// Event arguments to signal. + void operator()(T t) + { + Signal(t); + } + + /// + /// Unregisters all registered callbacks. + /// + void UnregisterAllCallbacks() + { + std::unique_lock lock(m_mutex); + m_callbacks.clear(); + } + + /// + /// Signals the event with given arguments to all connected callbacks. + /// + /// Event arguments to signal. + void Signal(T t) + { + std::unique_lock lock(m_mutex); + + auto callbacksSnapshot = m_callbacks; + for (auto callbackCopyPair : callbacksSnapshot) + { + // now, while a callback is in progress, it can disconnect itself and any other connected + // callback. Check to see if the next one stored in the copy container is still connected. + bool stillConnected = (std::find_if(m_callbacks.begin(), m_callbacks.end(), + [&](const std::pair item) { + return callbackCopyPair.first == item.first; + }) != m_callbacks.end()); + + if (stillConnected) + { + callbackCopyPair.second(t); + } + } + } + + /// + /// Checks if a callback is connected. + /// + /// true if a callback is connected + bool IsConnected() const + { + std::unique_lock lock(m_mutex); + return !m_callbacks.empty(); + } + +protected: + std::map m_callbacks; + CallbackToken m_nextCallbackToken; + mutable std::recursive_mutex m_mutex; + +private: + EventSignalBase(const EventSignalBase&) = delete; + EventSignalBase(const EventSignalBase&&) = delete; + EventSignalBase& operator=(const EventSignalBase&) = delete; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_file_logger.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_file_logger.h new file mode 100644 index 0000000..7638d09 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_file_logger.h @@ -0,0 +1,115 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Diagnostics { +namespace Logging { + +/// +/// Class with static methods to control file-based SDK logging. +/// Turning on logging while running your Speech SDK scenario provides +/// detailed information from the SDK's core native components. If you +/// report an issue to Microsoft, you may be asked to provide logs to help +/// Microsoft diagnose the issue. Your application should not take dependency +/// on particular log strings, as they may change from one SDK release to another +/// without notice. +/// FileLogger is the simplest logging solution and suitable for diagnosing +/// most on-device issues when running Speech SDK. +/// Added in version 1.20.0 +/// +/// File logging is a process wide construct. That means that if (for example) +/// you have multiple speech recognizer objects running in parallel, there will be one +/// log file containing interleaved logs lines from all recognizers. You cannot get a +/// separate log file for each recognizer. +class FileLogger +{ +public: + /// + /// Starts logging to a file. + /// + /// Path to a log file on local disk + /// Optional. If true, appends to existing log file. If false, creates a new log file + /// Note that each write operation to the file is immediately followed by a flush to disk. + /// For typical usage (e.g. one Speech Recognizer and a Solid State Drive (SSD)) this should not + /// cause performace issues. You may however want to avoid file logging when running many Speech + /// SDK recognizers or other SDK objects simultaneously. Use MemoryLogger or EventLogger instead. + static void Start(const SPXSTRING& filePath, bool append = false) + { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, filePath.empty()); + + SPX_THROW_ON_FAIL(property_bag_create(&hpropbag)); + SPX_THROW_ON_FAIL(property_bag_set_string(hpropbag, -1, "SPEECH-LogFilename", Utils::ToUTF8(filePath).c_str())); + SPX_THROW_ON_FAIL(property_bag_set_string(hpropbag, -1, "SPEECH-AppendToLogFile", append ? "1" : "0")); + SPX_THROW_ON_FAIL(diagnostics_log_start_logging(hpropbag, nullptr)); + SPX_THROW_ON_FAIL(property_bag_release(hpropbag)); + } + + /// + /// Stops logging to a file. + /// + /// This call is optional. If logging as been started, + /// the log file will be written when the process exists normally. + static void Stop() + { + SPX_THROW_ON_FAIL(diagnostics_log_stop_logging()); + } + + /// + /// Sets or clears the filters that apply to file logging. + /// Once filters are set, the callback will be invoked only if the log string + /// contains at least one of the strings specified by the filters. The match is case sensitive. + /// + /// Optional. Filters to use, or an empty list to remove previously set filters. + static void SetFilters(std::initializer_list filters = {}) + { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(property_bag_create(&hpropbag)); + + PropBagSetFilter(hpropbag, filters); + + SPX_THROW_ON_FAIL(diagnostics_log_apply_properties(hpropbag, nullptr)); + SPX_THROW_ON_FAIL(property_bag_release(hpropbag)); + } + + /// + /// Sets the level of the messages to be captured by the logger + /// + /// Maximum level of detail to be captured by the logger. + static void SetLevel(Level level) + { + const auto levelStr = Details::LevelToString(level); + diagnostics_set_log_level("memory", levelStr); + } + +private: + static void PropBagSetFilter(AZAC_HANDLE hpropbag, std::initializer_list filters) + { + std::string str = ""; + + if (filters.size() > 0) + { + std::ostringstream filtersCollapsed; + std::copy(filters.begin(), filters.end(), std::ostream_iterator(filtersCollapsed, ";")); + str = filtersCollapsed.str(); + } + + SPX_THROW_ON_FAIL(property_bag_set_string(hpropbag, -1, "SPEECH-LogFileFilters", str.c_str())); + } +}; + +}}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar.h new file mode 100644 index 0000000..056e0a1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar.h @@ -0,0 +1,70 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_grammar.h: Public API declarations for Grammar C++ class +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Represents base class grammar for customizing speech recognition. +/// Added in version 1.5.0. +/// +class Grammar +{ +public: + + /// + /// Creates a grammar from a storage ID. + /// Added in version 1.7.0. + /// + /// The persisted storage ID of the language model. + /// The grammar. + /// + /// Creating a grammar from a storage ID is only usable in specific scenarios and is not generally possible. + /// + static std::shared_ptr FromStorageId(const SPXSTRING& storageId) + { + SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(grammar_create_from_storage_id(&hgrammar, Utils::ToUTF8(storageId.c_str()))); + + return std::make_shared(hgrammar); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Grammar handle. + explicit Grammar(SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID) : m_hgrammar(hgrammar) { } + + /// + /// Destructor, does nothing. + /// + virtual ~Grammar() { } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXGRAMMARHANDLE() { return m_hgrammar; } + +protected: + /*! \cond PROTECTED */ + DISABLE_COPY_AND_MOVE(Grammar); + + SmartHandle m_hgrammar; + /*! \endcond */ +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_list.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_list.h new file mode 100644 index 0000000..1118bca --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_list.h @@ -0,0 +1,90 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_grammar_list.h: Public API declarations for GrammarList C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Represents a list of grammars for dynamic grammar scenarios. +/// Added in version 1.7.0. +/// +/// +/// GrammarLists are only usable in specific scenarios and are not generally available. +/// +class GrammarList : public Grammar +{ +public: + + /// + /// Creates a grammar lsit for the specified recognizer. + /// + /// The recognizer from which to obtain the grammar list. + /// The grammar list associated with the recognizer. + /// + /// Creating a grammar list from a recognizer is only usable in specific scenarios and is not generally available. + /// + template + static std::shared_ptr FromRecognizer(std::shared_ptr recognizer) + { + SPXRECOHANDLE hreco = recognizer != nullptr + ? (SPXRECOHANDLE)(*recognizer.get()) + : SPXHANDLE_INVALID; + + SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(grammar_list_from_recognizer(&hgrammar, hreco)); + + return std::make_shared(hgrammar); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// GrammarList handle. + explicit GrammarList(SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID) : Grammar(hgrammar) { } + + /// + /// Adds a single grammar to the current grammar list + /// + /// The grammar to add + /// + /// Currently Class Language Models are the only support grammars to add. + /// + template + void Add(std::shared_ptr grammar) + { + SPX_THROW_ON_FAIL(grammar_list_add_grammar(m_hgrammar.get(), (SPXGRAMMARHANDLE)(*grammar.get()))); + } + + /// + /// Sets the Recognition Factor applied to all grammars in a recognizer's GrammarList + /// + /// The RecognitionFactor to apply + /// The scope for the Recognition Factor being set + /// + /// The Recognition Factor is a numerical value greater than 0 modifies the default weight applied to supplied grammars. + /// Setting the Recognition Factor to 0 will disable the supplied grammars. + /// The default Recognition Factor is 1. + /// + void SetRecognitionFactor(double factor, RecognitionFactorScope scope) + { + SPX_THROW_ON_FAIL(grammar_list_set_recognition_factor(m_hgrammar.get(), factor, (GrammarList_RecognitionFactorScope)scope)); + } + +private: + DISABLE_COPY_AND_MOVE(GrammarList); +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_phrase.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_phrase.h new file mode 100644 index 0000000..2c35b9d --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_grammar_phrase.h @@ -0,0 +1,64 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_phrase_grammar.h: Public API declarations for GrammarPhrase C++ class +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Represents a phrase that may be spoken by the user. +/// Added in version 1.5.0. +/// +class GrammarPhrase +{ +public: + + /// + /// Creates a grammar phrase using the specified phrase text. + /// + /// The text representing a phrase that may be spoken by the user. + /// A shared pointer to a grammar phrase. + static std::shared_ptr From(const SPXSTRING& text) + { + SPXPHRASEHANDLE hphrase = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(grammar_phrase_create_from_text(&hphrase, Utils::ToUTF8(text).c_str())); + return std::make_shared(hphrase); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Grammar phrase handle. + explicit GrammarPhrase(SPXPHRASEHANDLE hphrase) : m_hphrase(hphrase) { }; + + /// + /// Virtual destructor + /// + virtual ~GrammarPhrase() { } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXPHRASEHANDLE() { return m_hphrase; } + +private: + + DISABLE_DEFAULT_CTORS(GrammarPhrase); + + SmartHandle m_hphrase; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_hybrid_speech_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_hybrid_speech_config.h new file mode 100644 index 0000000..39ca52e --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_hybrid_speech_config.h @@ -0,0 +1,161 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_hybrid_speech_config.h: Public API declarations for HybridSpeechConfig C++ class +// +#pragma once + +#include + +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines hybrid (cloud and embedded) configurations for speech recognition or speech synthesis. +/// +class HybridSpeechConfig +{ +protected: + /*! \cond PROTECTED */ + + SpeechConfig m_config; + + /*! \endcond */ + +public: + /// + /// Internal operator used to get the underlying handle value. + /// + /// A handle. + explicit operator SPXSPEECHCONFIGHANDLE() const + { + return static_cast(m_config); + } + + /// + /// Creates an instance of the hybrid speech config with specified cloud and embedded speech configs. + /// + /// A shared smart pointer of a cloud speech config. + /// A shared smart pointer of an embedded speech config. + /// A shared pointer to the new hybrid speech config instance. + static std::shared_ptr FromConfigs( + std::shared_ptr cloudSpeechConfig, + std::shared_ptr embeddedSpeechConfig) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hybrid_speech_config_create( + &hconfig, + Utils::HandleOrInvalid(cloudSpeechConfig), + Utils::HandleOrInvalid(embeddedSpeechConfig))); + + auto ptr = new HybridSpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Sets the speech recognition output format. + /// + /// Speech recognition output format (simple or detailed). + void SetSpeechRecognitionOutputFormat(OutputFormat format) + { + m_config.SetOutputFormat(format); + } + + /// + /// Gets the speech recognition output format. + /// + /// Speech recognition output format (simple or detailed). + OutputFormat GetSpeechRecognitionOutputFormat() const + { + return m_config.GetOutputFormat(); + } + + /// + /// Sets the speech synthesis output format (e.g. Riff16Khz16BitMonoPcm). + /// + /// Specifies the output format ID + void SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat formatId) + { + m_config.SetSpeechSynthesisOutputFormat(formatId); + } + + /// + /// Gets the speech synthesis output format. + /// + /// The speech synthesis output format. + SPXSTRING GetSpeechSynthesisOutputFormat() const + { + return m_config.GetSpeechSynthesisOutputFormat(); + } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + m_config.SetProperty(name, value); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + m_config.SetProperty(id, value); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + return m_config.GetProperty(name); + } + + /// + /// Gets a property value by ID. + /// + /// The parameter id. + /// The property value. + SPXSTRING GetProperty(PropertyId id) const + { + return m_config.GetProperty(id); + } + + /// + /// Destructs the object. + /// + virtual ~HybridSpeechConfig() = default; + +protected: + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + inline explicit HybridSpeechConfig(SPXSPEECHCONFIGHANDLE hconfig) : m_config(hconfig) + { + } + + /*! \endcond */ + +private: + DISABLE_COPY_AND_MOVE(HybridSpeechConfig); + + }; + +}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_eventargs.h new file mode 100644 index 0000000..dda06e8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_eventargs.h @@ -0,0 +1,169 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_intent_recognition_eventargs.h: Public API declarations for IntentRecognitionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + + +/// +/// Class for intent recognition event arguments. +/// +class IntentRecognitionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit IntentRecognitionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(IntentResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~IntentRecognitionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(recognizer_event_handle_release(m_hevent)); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Intent recognition event result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Intent recognition event result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(IntentRecognitionEventArgs); + + SPXRESULTHANDLE IntentResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + + +/// +/// Class for intent recognition canceled event arguments. +/// +class IntentRecognitionCanceledEventArgs final : public IntentRecognitionEventArgs +{ +private: + + std::shared_ptr m_cancellation; + CancellationReason m_cancellationReason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit IntentRecognitionCanceledEventArgs(SPXEVENTHANDLE hevent) : + IntentRecognitionEventArgs(hevent), + m_cancellation(CancellationDetails::FromResult(GetResult())), + m_cancellationReason(m_cancellation->Reason), + m_errorCode(m_cancellation->ErrorCode), + Reason(m_cancellationReason), + ErrorCode(m_errorCode), + ErrorDetails(m_cancellation->ErrorDetails) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + virtual ~IntentRecognitionCanceledEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// Added in version 1.1.0. + /// + const CancellationErrorCode& ErrorCode; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// CancellationDetails. + /// + std::shared_ptr GetCancellationDetails() const { return m_cancellation; } + +private: + + DISABLE_DEFAULT_CTORS(IntentRecognitionCanceledEventArgs); +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_result.h new file mode 100644 index 0000000..360e846 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognition_result.h @@ -0,0 +1,119 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_intent_recognition_result.h: Public API declarations for IntentRecognitionResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +#include "speechapi_c_json.h" + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// Represents the result of an intent recognition. +/// +class IntentRecognitionResult final : public RecognitionResult +{ +public: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Result handle. + explicit IntentRecognitionResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult), + IntentId(m_intentId) + { + PopulateIntentFields(hresult, &m_intentId); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s; reason=0x%x; text=%s", __FUNCTION__, (void*)this, (void*)Handle, Utils::ToUTF8(ResultId).c_str(), Reason, Utils::ToUTF8(Text).c_str()); + } + + /// + /// A call to return a map of the entities found in the utterance. + /// + /// + /// A map with the entity name as a key and containing the value of the entity found in the utterance. + /// + /// + /// This currently does not report LUIS entities. + /// + const std::map& GetEntities() const + { + return m_entities; + } + + /// + /// Destructor. + /// + ~IntentRecognitionResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)Handle); + } + + /// + /// Unique intent id. + /// + const SPXSTRING& IntentId; + +private: + DISABLE_DEFAULT_CTORS(IntentRecognitionResult); + + void PopulateIntentFields(SPXRESULTHANDLE hresult, SPXSTRING* pintentId) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 1024; + char sz[maxCharCount+1] = {}; + + if (pintentId != nullptr && recognizer_result_handle_is_valid(hresult)) + { + SPX_THROW_ON_FAIL(hr = intent_result_get_intent_id(hresult, sz, maxCharCount)); + *pintentId = Utils::ToSPXString(sz); + } + + auto jsonSLE = Properties.GetProperty("LanguageUnderstandingSLE_JsonResult"); + SPXHANDLE parserHandle = SPXHANDLE_INVALID; + auto scopeGuard = Utils::MakeScopeGuard([&parserHandle]() + { + if (parserHandle != SPXHANDLE_INVALID) + { + ai_core_json_parser_handle_release(parserHandle); + } + }); + + auto root = ai_core_json_parser_create(&parserHandle, jsonSLE.c_str(), jsonSLE.size()); + int count = ai_core_json_item_count(parserHandle, root); + for (int i = 0; i < count; i++) + { + auto itemInt = ai_core_json_item_at(parserHandle, root, i, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, itemInt); + + // Need to use string copy here to force the ajv json parser to convert back to utf8. + auto name = ai_core_json_value_as_string_copy(parserHandle, nameInt, ""); + auto value = ai_core_json_value_as_string_copy(parserHandle, itemInt, ""); + if (value != nullptr && name != nullptr) + { + m_entities[name] = value; + } + } + + } + + SPXSTRING m_intentId; + std::map m_entities; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Recognition::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognizer.h new file mode 100644 index 0000000..473053d --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_recognizer.h @@ -0,0 +1,513 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_intent_recognizer.h: Public API declarations for IntentRecognizer C++ class +// + +#pragma once +#include +#include +#include +#include "speechapi_c_json.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// In addition to performing speech-to-text recognition, the IntentRecognizer extracts structured information +/// about the intent of the speaker, which can be used to drive further actions using dedicated intent triggers +/// (see ). +/// + class IntentRecognizer : public AsyncRecognizer + { + public: + + using BaseType = AsyncRecognizer; + + /// + /// Creates an intent recognizer from a speech config and an audio config. + /// Users should use this function to create a new instance of an intent recognizer. + /// + /// Speech configuration. + /// Audio configuration. + /// Instance of intent recognizer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_intent_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Creates an intent recognizer from an embedded speech config and an audio config. + /// Users should use this function to create a new instance of an intent recognizer. + /// Added in version 1.19.0 + /// + /// Embedded speech configuration. + /// Audio configuration. + /// Instance of intent recognizer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_intent_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit IntentRecognizer(SPXRECOHANDLE hreco) : BaseType(hreco), Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// destructor + /// + ~IntentRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + /// + /// Starts intent recognition, and returns after a single utterance is recognized. The end of a + /// single utterance is determined by listening for silence at the end or until a maximum of about 30 + /// seconds of audio is processed. The task returns the recognition text as result. + /// Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + /// shot recognition like command or query. + /// For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead.. + /// + /// Future containing result value (a shared pointer to IntentRecognitionResult) + /// of the asynchronous intent recognition. + /// + std::future> RecognizeOnceAsync() override + { + return BaseType::RecognizeOnceAsyncInternal(); + } + + /// + /// Starts intent recognition, and generates a result from the text passed in. This is useful for testing and other times when the speech input + /// is not tied to the IntentRecognizer. + /// Note: The Intent Service does not currently support this so it is only valid for offline pattern matching or exact matching intents. + /// + /// The text to be evaluated. + /// Future containing result value (a shared pointer to IntentRecognitionResult) + /// of the asynchronous intent recognition. + /// + std::future> RecognizeOnceAsync(SPXSTRING text) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, text]() -> std::shared_ptr { + SPX_INIT_HR(hr); + + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(hr = intent_recognizer_recognize_text_once(m_hreco, Utils::ToUTF8(text).c_str(), &hresult)); + + return std::make_shared(hresult); + }); + return future; + } + + /// + /// Asynchronously initiates continuous intent recognition operation. + /// + /// An empty future. + std::future StartContinuousRecognitionAsync() override + { + return BaseType::StartContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously terminates ongoing continuous intent recognition operation. + /// + /// An empty future. + std::future StopContinuousRecognitionAsync() override + { + return BaseType::StopContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously initiates keyword recognition operation. + /// + /// Specifies the keyword model to be used. + /// An empty future. + std::future StartKeywordRecognitionAsync(std::shared_ptr model) override + { + return BaseType::StartKeywordRecognitionAsyncInternal(model); + } + + /// + /// Asynchronously terminates keyword recognition operation. + /// + /// An empty future. + std::future StopKeywordRecognitionAsync() override + { + return BaseType::StopKeywordRecognitionAsyncInternal(); + } + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Adds a simple phrase that may be spoken by the user, indicating a specific user intent. + /// This simple phrase can be a pattern including and enitity surrounded by braces. Such as "click the {checkboxName} checkbox". + /// + /// + /// The phrase corresponding to the intent. + /// Once recognized, the IntentRecognitionResult's IntentId property will match the simplePhrase specified here. + /// If any entities are specified and matched, they will be available in the IntentResult->GetEntities() call. + /// + void AddIntent(const SPXSTRING& simplePhrase) + { + auto trigger = IntentTrigger::From(simplePhrase); + return AddIntent(trigger, simplePhrase); + } + + /// + /// Adds a simple phrase that may be spoken by the user, indicating a specific user intent. + /// This simple phrase can be a pattern including and enitity surrounded by braces. Such as "click the {checkboxName} checkbox". + /// + /// The phrase corresponding to the intent. + /// A custom id string to be returned in the IntentRecognitionResult's IntentId property. + /// Once recognized, the result's intent id will match the id supplied here. + /// If any entities are specified and matched, they will be available in the IntentResult->GetEntities() call. + /// + void AddIntent(const SPXSTRING& simplePhrase, const SPXSTRING& intentId) + { + auto trigger = IntentTrigger::From(simplePhrase); + return AddIntent(trigger, intentId); + } + + /// + /// Adds a single intent by name from the specified Language Understanding Model. + /// For PatternMatchingModel and ConversationalLanguageUnderstandingModel types, this will clear + /// any existing models before enabling it. For these types, the intentName is ignored. + /// + /// The language understanding model containing the intent. + /// The name of the single intent to be included from the language understanding model. + /// Once recognized, the IntentRecognitionResult's IntentId property will contain the intentName specified here. + void AddIntent(std::shared_ptr model, const SPXSTRING& intentName) + { + switch (model->GetModelType()) + { + case LanguageUnderstandingModel::LanguageUnderstandingModelType::LanguageUnderstandingModel: + { + auto trigger = IntentTrigger::From(model, intentName); + AddIntent(trigger, intentName); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::PatternMatchingModel: + { + intent_recognizer_clear_language_models(m_hreco); + AddPatternMatchingModel(model); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel: + { + intent_recognizer_clear_language_models(m_hreco); + auto cluModel = static_cast(model.get()); + intent_recognizer_add_conversational_language_understanding_model( + m_hreco, + cluModel->languageResourceKey.c_str(), + cluModel->endpoint.c_str(), + cluModel->projectName.c_str(), + cluModel->deploymentName.c_str()); + break; + } + default: + break; + } + } + + /// + /// Adds a single intent by name from the specified Language Understanding Model. + /// For PatternMatchingModel and ConversationalLanguageUnderstandingModel types, this will clear + /// any existing models before enabling it. For these types, the intentName and intentId are ignored. + /// + /// The language understanding model containing the intent. + /// The name of the single intent to be included from the language understanding model. + /// A custom id string to be returned in the IntentRecognitionResult's IntentId property. + void AddIntent(std::shared_ptr model, const SPXSTRING& intentName, const SPXSTRING& intentId) + { + switch (model->GetModelType()) + { + case LanguageUnderstandingModel::LanguageUnderstandingModelType::LanguageUnderstandingModel: + { + auto trigger = IntentTrigger::From(model, intentName); + AddIntent(trigger, intentId); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::PatternMatchingModel: + { + intent_recognizer_clear_language_models(m_hreco); + AddPatternMatchingModel(model); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel: + { + intent_recognizer_clear_language_models(m_hreco); + auto cluModel = static_cast(model.get()); + intent_recognizer_add_conversational_language_understanding_model( + m_hreco, + cluModel->languageResourceKey.c_str(), + cluModel->endpoint.c_str(), + cluModel->projectName.c_str(), + cluModel->deploymentName.c_str()); + break; + } + default: + break; + } + } + + /// + /// Adds all intents from the specified Language Understanding Model. + /// For PatternMatchingModel and ConversationalLanguageUnderstandingModel types, this will clear + /// any existing models before enabling it. + /// + /// The language understanding model containing the intents. + /// Once recognized, the IntentRecognitionResult's IntentId property will contain the name of the intent recognized. + void AddAllIntents(std::shared_ptr model) + { + switch (model->GetModelType()) + { + case LanguageUnderstandingModel::LanguageUnderstandingModelType::LanguageUnderstandingModel: + { + auto trigger = IntentTrigger::From(model); + AddIntent(trigger, SPXSTRING_EMPTY); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::PatternMatchingModel: + { + intent_recognizer_clear_language_models(m_hreco); + AddPatternMatchingModel(model); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel: + { + intent_recognizer_clear_language_models(m_hreco); + auto cluModel = static_cast(model.get()); + intent_recognizer_add_conversational_language_understanding_model( + m_hreco, + cluModel->languageResourceKey.c_str(), + cluModel->endpoint.c_str(), + cluModel->projectName.c_str(), + cluModel->deploymentName.c_str()); + break; + } + default: + break; + } + } + + /// + /// Adds all intents from the specified Language Understanding Model. + /// For PatternMatchingModel and ConversationalLanguageUnderstandingModel types, this will clear + /// any existing models before enabling it. + /// + /// The language understanding model containing the intents. + /// A custom string id to be returned in the IntentRecognitionResult's IntentId property. + void AddAllIntents(std::shared_ptr model, const SPXSTRING& intentId) + { + switch (model->GetModelType()) + { + case LanguageUnderstandingModel::LanguageUnderstandingModelType::LanguageUnderstandingModel: + { + auto trigger = IntentTrigger::From(model); + AddIntent(trigger, intentId); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::PatternMatchingModel: + { + intent_recognizer_clear_language_models(m_hreco); + AddPatternMatchingModel(model); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel: + { + intent_recognizer_clear_language_models(m_hreco); + auto cluModel = static_cast(model.get()); + intent_recognizer_add_conversational_language_understanding_model( + m_hreco, + cluModel->languageResourceKey.c_str(), + cluModel->endpoint.c_str(), + cluModel->projectName.c_str(), + cluModel->deploymentName.c_str()); + break; + } + default: + break; + } + } + + /// + /// Adds the IntentTrigger specified. + /// + /// The IntentTrigger corresponding to the intent. + /// A custom string id to be returned in the IntentRecognitionResult's IntentId property. + void AddIntent(std::shared_ptr trigger, const SPXSTRING& intentId) + { + SPX_THROW_ON_FAIL(intent_recognizer_add_intent(m_hreco, Utils::ToUTF8(intentId).c_str(), (SPXTRIGGERHANDLE)(*trigger.get()))); + } + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the recognizer will encounter errors during recognition. + /// + /// A string that represents the authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Takes a collection of language understanding models, makes a copy of them, and applies them to the recognizer. This application + /// happens at different times depending on the language understanding model type. + /// Simple Language Models will become active almost immediately whereas + /// language understanding models utilizing LUIS will become active on the next Speech turn. + /// This replaces any previously applied models. + /// + /// A vector of shared pointers to LanguageUnderstandingModels. + /// True if the application of the models takes effect immediately. Otherwise false. + bool ApplyLanguageModels(const std::vector>& collection) + { + bool result = true; + SPXTRIGGERHANDLE htrigger = SPXHANDLE_INVALID; + + // Clear existing language models. + SPX_THROW_ON_FAIL(intent_recognizer_clear_language_models(m_hreco)); + + // Add the new ones. + for (auto model : collection) + { + switch (model->GetModelType()) + { + case LanguageUnderstandingModel::LanguageUnderstandingModelType::LanguageUnderstandingModel: + SPX_THROW_ON_FAIL(intent_trigger_create_from_language_understanding_model(&htrigger, static_cast(*model), nullptr)); + intent_recognizer_add_intent(m_hreco, nullptr, htrigger); + result = false; + break; + case LanguageUnderstandingModel::LanguageUnderstandingModelType::PatternMatchingModel: + { + AddPatternMatchingModel(model); + break; + } + case LanguageUnderstandingModel::LanguageUnderstandingModelType::ConversationalLanguageUnderstandingModel: + { + auto cluModel = static_cast(model.get()); + intent_recognizer_add_conversational_language_understanding_model( + m_hreco, + cluModel->languageResourceKey.c_str(), + cluModel->endpoint.c_str(), + cluModel->projectName.c_str(), + cluModel->deploymentName.c_str()); + break; + } + default: + break; + } + + } + return result; + } + +private: + void AddPatternMatchingModel(const std::shared_ptr& luModel) const + { + auto model = static_cast(luModel.get()); + std::string modelId = model->GetModelId(); + + Utils::AbiHandle hModel(language_understanding_model__handle_release); + SPX_THROW_ON_FAIL(pattern_matching_model_create(&hModel, m_hreco, modelId.c_str())); + + PATTERN_MATCHING_MODEL_GET_STR_FROM_INDEX vectorGetter = [](void* context, size_t index, const char** phrase, size_t* phraseLen) -> AZACHR + { + try + { + SPX_RETURN_HR_IF(SPXERR_INVALID_ARG, context == nullptr || phrase == nullptr || phraseLen == nullptr); + + auto phrases = static_cast*>(context); + SPX_RETURN_HR_IF(SPXERR_OUT_OF_RANGE, index >= phrases->size()); + + *phrase = phrases->at(index).c_str(); + *phraseLen = phrases->at(index).length(); + return SPX_NOERROR; + } + catch (...) + { + return SPXERR_UNHANDLED_EXCEPTION; + } + }; + + for (const auto& entity : model->Entities) + { + SPX_THROW_ON_FAIL(pattern_matching_model_add_entity( + hModel, + entity.Id.c_str(), + (int)entity.Type, + (int)entity.Mode, + entity.Phrases.size(), + (void*)&entity.Phrases, + vectorGetter)); + } + + for (const auto& intent : model->Intents) + { + SPX_THROW_ON_FAIL(pattern_matching_model_add_intent( + hModel, + intent.Id.c_str(), + 0, // no priority at the moment so set to 0 + intent.Phrases.size(), + (void*)&intent.Phrases, + vectorGetter)); + } + + Utils::AbiHandle hTrigger(intent_trigger_handle_release); + SPX_THROW_ON_FAIL(intent_trigger_create_from_language_understanding_model(&hTrigger, hModel, "")); + + SPX_THROW_ON_FAIL(intent_recognizer_add_intent_with_model_id(m_hreco, hTrigger, modelId.c_str())); + } + + DISABLE_COPY_AND_MOVE(IntentRecognizer); + + friend class Microsoft::CognitiveServices::Speech::Session; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_trigger.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_trigger.h new file mode 100644 index 0000000..b67babd --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_intent_trigger.h @@ -0,0 +1,87 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_intent_trigger.h: Public API declarations for IntentTrigger C++ class +// + +#pragma once +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// Represents an intent trigger. +/// +class IntentTrigger +{ +public: + + /// + /// Creates an intent trigger using the specified phrase. + /// + /// The simple phrase to create an intent trigger for. + /// A shared pointer to an intent trigger. + static std::shared_ptr From(const SPXSTRING& simplePhrase) + { + SPXTRIGGERHANDLE htrigger = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(intent_trigger_create_from_phrase(&htrigger, Utils::ToUTF8(simplePhrase).c_str())); + return std::make_shared(htrigger); + } + + /// + /// Creates an intent trigger using the specified LanguageUnderstandingModel. + /// + /// The LanguageUnderstandingModel to create an intent trigger for. + /// A shared pointer to an intent trigger. + static std::shared_ptr From(std::shared_ptr model) + { + SPXTRIGGERHANDLE htrigger = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(intent_trigger_create_from_language_understanding_model(&htrigger, (SPXLUMODELHANDLE)(*model.get()), nullptr)); + return std::make_shared(htrigger); + } + + /// + /// Creates an intent trigger using the specified LanguageUnderstandingModel and an intent name. + /// + /// The LanguageUnderstandingModel to create an intent trigger for. + /// The intent name to create an intent trigger for. + /// A shared pointer to an intent trigger. + static std::shared_ptr From(std::shared_ptr model, const SPXSTRING& intentName) + { + SPXTRIGGERHANDLE htrigger = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(intent_trigger_create_from_language_understanding_model(&htrigger, (SPXLUMODELHANDLE)(*model.get()), Utils::ToUTF8(intentName).c_str())); + return std::make_shared(htrigger); + } + + /// + /// Virtual destructor + /// + virtual ~IntentTrigger() { intent_trigger_handle_release(m_htrigger); m_htrigger = SPXHANDLE_INVALID; } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Trigger handle. + explicit IntentTrigger(SPXTRIGGERHANDLE htrigger) : m_htrigger(htrigger) { }; + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXTRIGGERHANDLE() { return m_htrigger; } + +private: + DISABLE_DEFAULT_CTORS(IntentTrigger); + + SPXTRIGGERHANDLE m_htrigger; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_eventargs.h new file mode 100644 index 0000000..24411d5 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_eventargs.h @@ -0,0 +1,86 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_keyword_recognition_eventargs.h: Public API declarations for KeywordRecognitionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class for the events emmited by the . +/// +class KeywordRecognitionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit KeywordRecognitionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~KeywordRecognitionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(recognizer_event_handle_release(m_hevent)); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Keyword recognition event result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Speech recognition event result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(KeywordRecognitionEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_model.h new file mode 100644 index 0000000..afa56cd --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_model.h @@ -0,0 +1,101 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_keyword_recognition_model.h: Public API declarations for KeywordRecognitionModel C++ class +// + +#pragma once +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Represents keyword recognition model used with StartKeywordRecognitionAsync methods. +/// +class KeywordRecognitionModel +{ +public: + + /// + /// Creates a keyword recognition model using the specified file. + /// + /// The file name of the keyword recognition model. + /// A shared pointer to keyword recognition model. + static std::shared_ptr FromFile(const SPXSTRING& fileName) + { + SPXKEYWORDHANDLE hkeyword = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(keyword_recognition_model_create_from_file(Utils::ToUTF8(fileName).c_str(), &hkeyword)); + return std::make_shared(hkeyword); + } + + /// + /// Creates a keyword recognition model using the specified embedded speech config. + /// + /// Embedded speech config. + /// A shared pointer to keyword recognition model. + static std::shared_ptr FromConfig(std::shared_ptr embeddedSpeechConfig) + { + SPXKEYWORDHANDLE hkeyword = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(keyword_recognition_model_create_from_config( + Utils::HandleOrInvalid(embeddedSpeechConfig), &hkeyword)); + + return std::make_shared(hkeyword); + } + + /// + /// Creates a keyword recognition model using the specified embedded speech config + /// and user-defined wake words. + /// + /// Embedded speech config. + /// User-defined wake words. + /// A shared pointer to keyword recognition model. + static std::shared_ptr FromConfig( + std::shared_ptr embeddedSpeechConfig, const std::vector& userDefinedWakeWords) + { + SPXKEYWORDHANDLE hkeyword = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(keyword_recognition_model_create_from_config( + Utils::HandleOrInvalid(embeddedSpeechConfig), &hkeyword)); + + for (const SPXSTRING& wakeWord : userDefinedWakeWords) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, wakeWord.empty()); + SPX_THROW_ON_FAIL(keyword_recognition_model_add_user_defined_wake_word( + static_cast(hkeyword), Utils::ToUTF8(wakeWord).c_str())); + } + + return std::make_shared(hkeyword); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Keyword handle. + explicit KeywordRecognitionModel(SPXKEYWORDHANDLE hkeyword = SPXHANDLE_INVALID) : m_hkwmodel(hkeyword) { } + + /// + /// Virtual destructor. + /// + virtual ~KeywordRecognitionModel() { keyword_recognition_model_handle_release(m_hkwmodel); } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXKEYWORDHANDLE() { return m_hkwmodel; } + +private: + + DISABLE_COPY_AND_MOVE(KeywordRecognitionModel); + + SPXKEYWORDHANDLE m_hkwmodel; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_result.h new file mode 100644 index 0000000..ddaa7ee --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognition_result.h @@ -0,0 +1,44 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_keyword_recognition_result.h: Public API declarations for the KeywordRecognitionResult C++ class +// + +#pragma once + +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines the results emitted by the . +/// +class KeywordRecognitionResult : public RecognitionResult +{ +public: + + explicit KeywordRecognitionResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s; reason=0x%x; text=%s", __FUNCTION__, (void*)this, (void*)Handle, Utils::ToUTF8(ResultId).c_str(), Reason, Utils::ToUTF8(Text).c_str()); + } + + virtual ~KeywordRecognitionResult() = default; + +private: + DISABLE_DEFAULT_CTORS(KeywordRecognitionResult); +}; + +inline std::shared_ptr AudioDataStream::FromResult(std::shared_ptr result) +{ + auto resultHandle = result != nullptr ? static_cast(*result) : SPXHANDLE_INVALID; + auto streamHandle = Utils::CallFactoryMethodLeft(audio_data_stream_create_from_keyword_result, resultHandle); + return std::shared_ptr{ new AudioDataStream(streamHandle) }; +} + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognizer.h new file mode 100644 index 0000000..3807868 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_keyword_recognizer.h @@ -0,0 +1,213 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_keyword_recognizer.h: Public API declarations for KeywordRecognizer C++ class +// +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +namespace Utils { + template + std::function&)> Callback(U* callee, F f) + { + return [=](const EventSignal& evt) + { + (callee->*f)(evt); + }; + } +} + +/// +/// Recognizer type that is specialized to only handle keyword activation. +/// +/// +/// First, the object needs to be instantiated: +/// +/// auto audioConfig = AudioConfig::FromMicrophoneInput(); // Or an alternative input +/// auto recognizer = KeywordRecognizer::FromConfig(audioConfig); +/// +/// (optional) Then, the events need to be wired in order to receive notifications: +/// +/// recognizer->Recognized += [](const KeywordRecognitionEventArgs& event) +/// { +/// // Your logic here... +/// }; +/// +/// And finally, recognition needs to be started. +/// +/// auto keywordModel = KeywordRecognitionModel::FromFile(modelPath); +/// auto resultFuture = recognizer->RecognizeKeywordOnceAsync(keywordModel); +/// resultFuture.wait(); +/// auto result = resultFuture.get(); +/// +///
    +///
  • +///
  • +///
  • +///
  • +///
+///
+class KeywordRecognizer: public std::enable_shared_from_this +{ +public: + /// + /// Creates a KeywordRecognizer from an . The config is intended + /// to define the audio input to be used by the recognizer object. + /// + /// Defines the audio input to be used by the recognizer. + /// A new KeywordRecognizer that will consume audio from the specified input. + /// + /// If no audio config is provided, it will be equivalent to calling with a config constructed with + /// + /// + inline static std::shared_ptr FromConfig(std::shared_ptr audioConfig = nullptr) + { + auto hreco = Utils::CallFactoryMethodLeft( + ::recognizer_create_keyword_recognizer_from_audio_config, + Utils::HandleOrInvalid(audioConfig)); + return std::shared_ptr(new KeywordRecognizer(hreco)); + } + + /// + /// Destructor. + /// + ~KeywordRecognizer() + { + Canceled.DisconnectAll(); + Recognized.DisconnectAll(); + recognizer_handle_release(m_handle); + } + + /// + /// Starts a keyword recognition session. This session will last until the first keyword is recognized. When this happens, + /// a event will be raised and the session will end. To rearm the keyword, the method needs to be called + /// again after the event is emitted. + /// + /// The that describes the keyword we want to detect. + /// A future that resolves to a that resolves once a keyword is detected. + /// + /// Note that if no keyword is detected in the input, the task will never resolve (unless is called. + /// + inline std::future> RecognizeOnceAsync(std::shared_ptr model) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, model, this]() + { + auto modelHandle = static_cast(*model); + + SPXRESULTHANDLE result = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognize_keyword_once(m_handle, modelHandle, &result)); + + return std::make_shared(result); + }); + return future; + } + + /// + /// Stops a currently active keyword recognition session. + /// + /// A future that resolves when the active session (if any) is stopped. + inline std::future StopRecognitionAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() + { + SPX_THROW_ON_FAIL(recognizer_stop_keyword_recognition(m_handle)); + }); + return future; + } + + /// + /// Signal for events related to the recognition of keywords. + /// + EventSignal Recognized; + + /// + /// Signal for events relating to the cancellation of an interaction. The event indicates if the reason is a direct cancellation or an error. + /// + EventSignal Canceled; + +private: + /*! \cond PROTECTED */ + + static void FireEvent_Recognized(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + KeywordRecognitionEventArgs event{ h_event }; + keep_alive->Recognized.Signal(event); + } + + static void FireEvent_Canceled(SPXRECOHANDLE, SPXEVENTHANDLE h_event, void* pv_context) + { + auto keep_alive = static_cast(pv_context)->shared_from_this(); + SpeechRecognitionCanceledEventArgs event{ h_event }; + keep_alive->Canceled.Signal(event); + } + + void RecognizerEventConnectionChanged(const EventSignal& reco_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&reco_event== &Recognized) + { + ::recognizer_recognized_set_callback(m_handle, Recognized.IsConnected() ? KeywordRecognizer::FireEvent_Recognized : nullptr, this); + } + } + } + + void CanceledEventConnectionChanged(const EventSignal& canceled_event) + { + if (m_handle != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_handle=0x%8p", __FUNCTION__, (void*)m_handle); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_handle), "%s: m_handle is INVALID!!!", __FUNCTION__); + + if (&canceled_event == &Canceled) + { + ::recognizer_canceled_set_callback(m_handle, Canceled.IsConnected() ? KeywordRecognizer::FireEvent_Canceled : nullptr, this); + } + } + } + + inline explicit KeywordRecognizer(SPXRECOHANDLE handle): + Recognized{ Utils::Callback(this, &KeywordRecognizer::RecognizerEventConnectionChanged) }, + Canceled{ Utils::Callback(this, &KeywordRecognizer::CanceledEventConnectionChanged) }, + m_properties{ Utils::CallFactoryMethodRight(recognizer_get_property_bag, handle) }, + m_handle{ handle }, + Properties { m_properties } + { + } + + PropertyCollection m_properties; + SPXRECOHANDLE m_handle; + /*! \endcond */ + +public: + /// + /// A collection of properties and their values defined for this . + /// + const PropertyCollection& Properties; +}; + + +} } } diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_language_understanding_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_language_understanding_model.h new file mode 100644 index 0000000..343a6b6 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_language_understanding_model.h @@ -0,0 +1,113 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_language_understanding_model.h: Public API declarations for LanguageUnderstandingModel C++ class +// + +#pragma once +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// Represents language understanding model used for intent recognition. +/// +class LanguageUnderstandingModel +{ +public: + + enum class LanguageUnderstandingModelType + { + PatternMatchingModel, + LanguageUnderstandingModel, + ConversationalLanguageUnderstandingModel + }; + + /// + /// Creates a language understanding (LUIS) model using the specified endpoint url. + /// + /// The endpoint url of a language understanding model. + /// A shared pointer to language understanding model. + static std::shared_ptr FromEndpoint(const SPXSTRING& uri) + { + SPXLUMODELHANDLE hlumodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(language_understanding_model_create_from_uri(&hlumodel, Utils::ToUTF8(uri).c_str())); + return std::make_shared(hlumodel); + } + + /// + /// Creates a language understanding model using the specified app id. + /// + /// A string that represents the application id of Language Understanding service. + /// A shared pointer to language understanding model. + static std::shared_ptr FromAppId(const SPXSTRING& appId) + { + SPXLUMODELHANDLE hlumodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(language_understanding_model_create_from_app_id(&hlumodel, Utils::ToUTF8(appId).c_str())); + return std::make_shared(hlumodel); + } + + /// + /// Creates a language understanding model using the specified hostname, subscription key and application id. + /// + /// A string that represents the subscription key of Language Understanding service. + /// A string that represents the application id of Language Understanding service. + /// A String that represents the region of the Language Understanding service (see the region page). + /// A shared pointer to language understanding model. + static std::shared_ptr FromSubscription(const SPXSTRING& subscriptionKey, const SPXSTRING& appId, const SPXSTRING& region) + { + SPXLUMODELHANDLE hlumodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(language_understanding_model_create_from_subscription(&hlumodel, Utils::ToUTF8(subscriptionKey).c_str(), Utils::ToUTF8(appId).c_str(), Utils::ToUTF8(region).c_str())); + return std::make_shared(hlumodel); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Language understanding model handle. + explicit LanguageUnderstandingModel(SPXLUMODELHANDLE hlumodel = SPXHANDLE_INVALID) : m_type(LanguageUnderstandingModelType::LanguageUnderstandingModel), m_hlumodel(hlumodel) { } + + /// + /// Virtual destructor. + /// + virtual ~LanguageUnderstandingModel() { language_understanding_model__handle_release(m_hlumodel); } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXLUMODELHANDLE() const { return m_hlumodel; } + + /// + /// Returns id for this model. + /// + /// An string representing the id of this model. + virtual SPXSTRING GetModelId() const { return Utils::ToSPXString(language_understanding_model_get_model_id(m_hlumodel)); } + + /// + /// Gets the model type. + /// + /// An enum representing the type of the model. + LanguageUnderstandingModelType GetModelType() const { return m_type; } +protected: + /// + /// Protected constructor for base classes to set type. + /// + /// Language understanding model type. + LanguageUnderstandingModel(LanguageUnderstandingModelType type) : m_type(type), m_hlumodel(SPXHANDLE_INVALID){} + + LanguageUnderstandingModelType m_type; +private: + DISABLE_COPY_AND_MOVE(LanguageUnderstandingModel); + + SPXLUMODELHANDLE m_hlumodel; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_log_level.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_log_level.h new file mode 100644 index 0000000..7da838b --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_log_level.h @@ -0,0 +1,66 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Diagnostics { +namespace Logging { + +/// +/// Defines the different available log levels. +/// +/// +/// This is used by different loggers to set the maximum level of detail they will output. +/// +/// +/// +/// +/// +/// +/// +enum class Level +{ + /// + /// Error logging level. Only errors will be logged. + /// + Error, + + /// + /// Warning logging level. Only errors and warnings will be logged. + /// + Warning, + + /// + /// Informational logging level. Only errors, warnings and informational log messages will be logged. + /// + Info, + + /// + /// Verbose logging level. All log messages will be logged. + /// + Verbose +}; + +/*! \cond INTERNAL */ +namespace Details +{ + inline const char * LevelToString(Level level) + { + switch (level) + { + case Level::Error: return "error"; + case Level::Warning: return "warning"; + case Level::Info: return "info"; + default: + case Level::Verbose: return "verbose"; + } + } +} +/*! \endcond */ + +}}}}} \ No newline at end of file diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting.h new file mode 100644 index 0000000..1111e26 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting.h @@ -0,0 +1,340 @@ + +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_meeting.h: Public API declarations for Meeting C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Class for meeting. +/// +class Meeting : public std::enable_shared_from_this +{ +public: + + static constexpr size_t MAX_MEETING_ID_LEN = 1024; + + /// + /// Create a meeting using a speech config and a meeting id. + /// + /// A shared smart pointer of a speech config object. + /// meeting Id. + /// A shared smart pointer of the created meeting object. + static std::future> CreateMeetingAsync(std::shared_ptr speechConfig, const SPXSTRING& meetingId) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, meetingId.empty()); + auto future = std::async(std::launch::async, [meetingId, speechConfig]() -> std::shared_ptr { + SPXMEETINGHANDLE hmeeting; + SPX_THROW_ON_FAIL(meeting_create_from_config(&hmeeting, (SPXSPEECHCONFIGHANDLE)(*speechConfig), Utils::ToUTF8(meetingId).c_str())); + return std::make_shared(hmeeting); + }); + return future; + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit Meeting(SPXMEETINGHANDLE hmeeting) : + m_hmeeting(hmeeting), + m_properties(hmeeting), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~Meeting() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + ::meeting_release_handle(m_hmeeting); + m_hmeeting = SPXHANDLE_INVALID; + } + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXMEETINGHANDLE () const { return m_hmeeting; } + + /// + /// Get the meeting id. + /// + /// Meeting id. + SPXSTRING GetMeetingId() + { + char id[MAX_MEETING_ID_LEN + 1]; + std::memset(id, 0, MAX_MEETING_ID_LEN); + SPX_THROW_ON_FAIL(meeting_get_meeting_id(m_hmeeting, id, MAX_MEETING_ID_LEN)); + return id; + } + + /// + /// Add a participant to a meeting using the user's id. + /// + /// Note: The returned participant can be used to remove. If the client changes the participant's attributes, + /// the changed attributes are passed on to the service only when the participant is added again. + /// + /// A user id. + /// a shared smart pointer of the participant. + std::future> AddParticipantAsync(const SPXSTRING& userId) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, userId]() -> std::shared_ptr { + const auto participant = Participant::From(userId); + SPX_THROW_ON_FAIL(meeting_update_participant(m_hmeeting, true, (SPXPARTICIPANTHANDLE)(*participant))); + return participant; + }); + return future; + } + + /// + /// Add a participant to a meeting using the User object. + /// + /// A shared smart pointer to a User object. + /// The passed in User object. + std::future> AddParticipantAsync(const std::shared_ptr& user) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, user]() -> std::shared_ptr { + SPX_THROW_ON_FAIL(meeting_update_participant_by_user(m_hmeeting, true, (SPXUSERHANDLE)(*user))); + return user; + }); + return future; + } + + /// + /// Add a participant to a meeting using the participant object + /// + /// A shared smart pointer to a participant object. + /// The passed in participant object. + std::future> AddParticipantAsync(const std::shared_ptr& participant) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, participant]() -> std::shared_ptr { + SPX_THROW_ON_FAIL(meeting_update_participant(m_hmeeting, true, (SPXPARTICIPANTHANDLE)(*participant))); + return participant; + }); + return future; + } + + /// + /// Remove a participant from a meeting using the participant object + /// + /// A shared smart pointer of a participant object. + /// An empty future. + std::future RemoveParticipantAsync(const std::shared_ptr& participant) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, participant]() -> void { + SPX_THROW_ON_FAIL(meeting_update_participant(m_hmeeting, false, (SPXPARTICIPANTHANDLE)(*participant))); + }); + return future; + } + + /// + /// Remove a participant from a meeting using the User object + /// + /// A smart pointer of a User. + /// An empty future. + std::future RemoveParticipantAsync(const std::shared_ptr& user) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, user]() -> void { + SPX_THROW_ON_FAIL(meeting_update_participant_by_user(m_hmeeting, false, SPXUSERHANDLE(*user))); + }); + return future; + } + + /// + /// Remove a participant from a meeting using a user id string. + /// + /// A user id. + /// An empty future. + std::future RemoveParticipantAsync(const SPXSTRING& userId) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, userId]() -> void { + SPX_THROW_ON_FAIL(meeting_update_participant_by_user_id(m_hmeeting, false, Utils::ToUTF8(userId.c_str()))); + }); + return future; + } + + /// + /// Ends the current meeting. + /// + /// An empty future. + std::future EndMeetingAsync() + { + return RunAsync(::meeting_end_meeting); + } + + /// + /// Sets the authorization token that will be used for connecting the server. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Start the meeting. + /// + /// An empty future. + std::future StartMeetingAsync() + { + return RunAsync(::meeting_start_meeting); + } + + /// + /// Deletes the meeting. Any participants that are still part of the meeting + /// will be ejected after this call. + /// + /// An empty future. + std::future DeleteMeetingAsync() + { + return RunAsync(::meeting_delete_meeting); + } + + /// + /// Locks the meeting. After this no new participants will be able to join. + /// + /// An empty future. + std::future LockMeetingAsync() + { + return RunAsync(::meeting_lock_meeting); + } + + /// + /// Unlocks the meeting. + /// + /// An empty future. + std::future UnlockMeetingAsync() + { + return RunAsync(::meeting_unlock_meeting); + } + + /// + /// Mutes all participants except for the host. This prevents others from generating + /// transcriptions, or sending text messages. + /// + /// An empty future. + std::future MuteAllParticipantsAsync() + { + return RunAsync(::meeting_mute_all_participants); + } + + /// + /// Allows other participants to generate transcriptions, or send text messages. + /// + /// An empty future. + std::future UnmuteAllParticipantsAsync() + { + return RunAsync(::meeting_unmute_all_participants); + } + + /// + /// Mutes a particular participant. This will prevent them generating new transcriptions, + /// or sending text messages. + /// + /// The identifier for the participant. + /// An empty future. + std::future MuteParticipantAsync(const SPXSTRING& participantId) + { + return RunAsync([participantId = Utils::ToUTF8(participantId)](auto handle) + { + return ::meeting_mute_participant(handle, participantId.c_str()); + }); + } + + /// + /// Unmutes a particular participant. + /// + /// The identifier for the participant. + /// An empty future. + std::future UnmuteParticipantAsync(const SPXSTRING& participantId) + { + return RunAsync([participantId = Utils::ToUTF8(participantId)](auto handle) + { + return ::meeting_unmute_participant(handle, participantId.c_str()); + }); + } + +private: + + /*! \cond PRIVATE */ + + SPXMEETINGHANDLE m_hmeeting; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXMEETINGHANDLE hmeeting) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + meeting_get_property_bag(hmeeting, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + inline std::future RunAsync(std::function func) + { + auto keepalive = this->shared_from_this(); + return std::async(std::launch::async, [keepalive, this, func]() + { + SPX_THROW_ON_FAIL(func(m_hmeeting)); + }); + } + + /*! \endcond */ + +public: + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + +}; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcriber.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcriber.h new file mode 100644 index 0000000..9eb2612 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcriber.h @@ -0,0 +1,467 @@ + +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_meeting_transcriber.h: Public API declarations for MeetingTranscriber C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +class Session; + +/// +/// Class for meeting transcriber. +/// +class MeetingTranscriber : public Recognizer +{ +public: + + /// + /// Create a meeting transcriber from an audio config. + /// + /// Audio configuration. + /// A smart pointer wrapped meeting transcriber pointer. + static std::shared_ptr FromConfig(std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::recognizer_create_meeting_transcriber_from_config( &hreco, + Utils::HandleOrInvalid(audioInput))); + + return std::make_shared(hreco); + } + + /// + /// Join a meeting. + /// + /// A smart pointer of the meeting to be joined. + /// An empty future. + std::future JoinMeetingAsync(std::shared_ptr meeting) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this, meeting]() -> void { + SPX_THROW_ON_FAIL(::recognizer_join_meeting(Utils::HandleOrInvalid(meeting), m_hreco)); + }); + + return future; + } + + /// + /// Leave a meeting. + /// + /// Note: After leaving a meeting, no transcribing or transcribed events will be sent to end users. End users need to join a meeting to get the events again. + /// + /// An empty future. + std::future LeaveMeetingAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_THROW_ON_FAIL(::recognizer_leave_meeting(m_hreco)); + }); + + return future; + } + + /// + /// Asynchronously starts a meeting transcribing. + /// + /// An empty future. + std::future StartTranscribingAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStartContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async(m_hreco, &m_hasyncStartContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async_wait_for(m_hasyncStartContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStartContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStartContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + /// + /// Asynchronously stops a meeting transcribing. + /// + /// An empty future. + std::future StopTranscribingAsync() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + + SPX_THROW_ON_FAIL(::recognizer_leave_meeting(m_hreco)); + + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStopContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async(m_hreco, &m_hasyncStopContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async_wait_for(m_hasyncStopContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStopContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStopContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit MeetingTranscriber(SPXRECOHANDLE hreco) throw() : + Recognizer(hreco), + SessionStarted(GetSessionEventConnectionsChangedCallback()), + SessionStopped(GetSessionEventConnectionsChangedCallback()), + SpeechStartDetected(GetRecognitionEventConnectionsChangedCallback()), + SpeechEndDetected(GetRecognitionEventConnectionsChangedCallback()), + Transcribing(GetRecoEventConnectionsChangedCallback()), + Transcribed(GetRecoEventConnectionsChangedCallback()), + Canceled(GetRecoCanceledEventConnectionsChangedCallback()), + m_hasyncStartContinuous(SPXHANDLE_INVALID), + m_hasyncStopContinuous(SPXHANDLE_INVALID), + m_properties(hreco), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~MeetingTranscriber() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + /// + /// Signal for events indicating the start of a recognition session (operation). + /// + EventSignal SessionStarted; + + /// + /// Signal for events indicating the end of a recognition session (operation). + /// + EventSignal SessionStopped; + + /// + /// Signal for events indicating the start of speech. + /// + EventSignal SpeechStartDetected; + + /// + /// Signal for events indicating the end of speech. + /// + EventSignal SpeechEndDetected; + + /// + /// Signal for events containing intermediate recognition results. + /// + EventSignal Transcribing; + + /// + /// Signal for events containing final recognition results. + /// (indicating a successful recognition attempt). + /// + EventSignal Transcribed; + + /// + /// Signal for events containing canceled recognition results + /// (indicating a recognition attempt that was canceled as a result or a direct cancellation request + /// or, alternatively, a transport or protocol failure). + /// + EventSignal Canceled; + + /// + /// Sets the authorization token that will be used for connecting the server. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + virtual void TermRecognizer() override + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // Disconnect the event signals in reverse construction order + Canceled.DisconnectAll(); + Transcribed.DisconnectAll(); + Transcribing.DisconnectAll(); + SpeechEndDetected.DisconnectAll(); + SpeechStartDetected.DisconnectAll(); + SessionStopped.DisconnectAll(); + SessionStarted.DisconnectAll(); + + // Close the async handles we have open for Recognize, StartContinuous, and StopContinuous + for (auto handle : { &m_hasyncStartContinuous, &m_hasyncStopContinuous }) + { + if (*handle != SPXHANDLE_INVALID && ::recognizer_async_handle_is_valid(*handle)) + { + ::recognizer_async_handle_release(*handle); + *handle = SPXHANDLE_INVALID; + } + } + + // Ask the base to term + Recognizer::TermRecognizer(); + } + + void RecoEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Transcribing) + { + recognizer_recognizing_set_callback(m_hreco, Transcribing.IsConnected() ? FireEvent_Transcribing : nullptr, this); + } + else if (&recoEvent == &Transcribed) + { + recognizer_recognized_set_callback(m_hreco, Transcribed.IsConnected() ? FireEvent_Transcribed : nullptr, this); + } + } + } + + static void FireEvent_Transcribing(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new MeetingTranscriptionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Transcribing.Signal(*recoEvent.get()); + } + + static void FireEvent_Transcribed(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new MeetingTranscriptionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Transcribed.Signal(*recoEvent.get()); + } + + void RecoCanceledEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Canceled) + { + recognizer_canceled_set_callback(m_hreco, Canceled.IsConnected() ? FireEvent_Canceled : nullptr, this); + } + } + } + + static void FireEvent_Canceled(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + + auto ptr = new MeetingTranscriptionCanceledEventArgs(hevent); + std::shared_ptr recoEvent(ptr); + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Canceled.Signal(*ptr); + } + + void SessionEventConnectionsChanged(const EventSignal& sessionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&sessionEvent == &SessionStarted) + { + recognizer_session_started_set_callback(m_hreco, SessionStarted.IsConnected() ? FireEvent_SessionStarted : nullptr, this); + } + else if (&sessionEvent == &SessionStopped) + { + recognizer_session_stopped_set_callback(m_hreco, SessionStopped.IsConnected() ? FireEvent_SessionStopped : nullptr, this); + } + } + } + + static void FireEvent_SessionStarted(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent{ new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStarted.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SessionStopped(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent{ new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStopped.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + void RecognitionEventConnectionsChanged(const EventSignal& recognitionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recognitionEvent == &SpeechStartDetected) + { + recognizer_speech_start_detected_set_callback(m_hreco, SpeechStartDetected.IsConnected() ? FireEvent_SpeechStartDetected : nullptr, this); + } + else if (&recognitionEvent == &SpeechEndDetected) + { + recognizer_speech_end_detected_set_callback(m_hreco, SpeechEndDetected.IsConnected() ? FireEvent_SpeechEndDetected : nullptr, this); + } + } + } + + static void FireEvent_SpeechStartDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechStartDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SpeechEndDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechEndDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + /*! \endcond */ + +private: + + SPXASYNCHANDLE m_hasyncStartContinuous; + SPXASYNCHANDLE m_hasyncStopContinuous; + + DISABLE_DEFAULT_CTORS(MeetingTranscriber); + friend class Microsoft::CognitiveServices::Speech::Session; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRECOHANDLE hreco) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + recognizer_get_property_bag(hreco, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + inline std::function&)> GetSessionEventConnectionsChangedCallback() + { + return [=](const EventSignal& sessionEvent) { this->SessionEventConnectionsChanged(sessionEvent); }; + } + + inline std::function&)> GetRecoEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecoCanceledEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoCanceledEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecognitionEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecognitionEventConnectionsChanged(recoEvent); }; + } + +public: + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_eventargs.h new file mode 100644 index 0000000..4ff1db1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_eventargs.h @@ -0,0 +1,168 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_meeting_transcription_eventargs.h: Public API declarations for MeetingTranscriptionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Class for meeting transcriber event arguments. +/// +class MeetingTranscriptionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit MeetingTranscriptionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~MeetingTranscriptionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(recognizer_event_handle_release(m_hevent)); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Meeting transcriber result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Meeting transcriber result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(MeetingTranscriptionEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + + +/// +/// Class for meeting transcriber canceled event arguments. +/// Added in version 1.5.0. +/// +class MeetingTranscriptionCanceledEventArgs : public MeetingTranscriptionEventArgs +{ +private: + + std::shared_ptr m_cancellation; + CancellationReason m_cancellationReason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit MeetingTranscriptionCanceledEventArgs(SPXEVENTHANDLE hevent) : + MeetingTranscriptionEventArgs(hevent), + m_cancellation(CancellationDetails::FromResult(GetResult())), + m_cancellationReason(m_cancellation->Reason), + m_errorCode(m_cancellation->ErrorCode), + Reason(m_cancellationReason), + ErrorCode(m_errorCode), + ErrorDetails(m_cancellation->ErrorDetails) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + virtual ~MeetingTranscriptionCanceledEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// CancellationDetails. + /// + std::shared_ptr GetCancellationDetails() const { return m_cancellation; } + +private: + + DISABLE_DEFAULT_CTORS(MeetingTranscriptionCanceledEventArgs); +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_result.h new file mode 100644 index 0000000..9b54fb8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_meeting_transcription_result.h @@ -0,0 +1,96 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_meeting_transcriber_result.h: Public API declarations for MeetingTranscription C++ class +// + +#pragma once +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Represents the result of a meeting transcriber. +/// +class MeetingTranscriptionResult final : public RecognitionResult +{ +public: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Result handle. + explicit MeetingTranscriptionResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult), + UserId(m_userId), + UtteranceId(m_utteranceId) + { + PopulateSpeakerFields(hresult, &m_userId); + PopulateUtteranceFields(hresult, &m_utteranceId); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s; reason=0x%x; text=%s, userid=%s, utteranceid=%s", __FUNCTION__, (void*)this, (void*)Handle, Utils::ToUTF8(ResultId).c_str(), Reason, Utils::ToUTF8(Text).c_str(), Utils::ToUTF8(UserId).c_str(), Utils::ToUTF8(UtteranceId).c_str()); + } + + /// + /// Destructor. + /// + ~MeetingTranscriptionResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)Handle); + } + + /// + /// Unique Speaker id. + /// + const SPXSTRING& UserId; + + /// + /// Unique id that is consistent across all the intermediates and final speech recognition result from one user. + /// + const SPXSTRING& UtteranceId; + +private: + DISABLE_DEFAULT_CTORS(MeetingTranscriptionResult); + + void PopulateSpeakerFields(SPXRESULTHANDLE hresult, SPXSTRING* puserId) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 1024; + char sz[maxCharCount + 1] = {}; + + if (puserId != nullptr && recognizer_result_handle_is_valid(hresult)) + { + SPX_THROW_ON_FAIL(hr = meeting_transcription_result_get_user_id(hresult, sz, maxCharCount)); + *puserId = Utils::ToSPXString(sz); + } + } + + void PopulateUtteranceFields(SPXRESULTHANDLE hresult, SPXSTRING* putteranceId) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 1024; + char sz[maxCharCount + 1] = {}; + + if (putteranceId != nullptr && recognizer_result_handle_is_valid(hresult)) + { + SPX_THROW_ON_FAIL(hr = meeting_transcription_result_get_utterance_id(hresult, sz, maxCharCount)); + *putteranceId = Utils::ToSPXString(sz); + } + } + + SPXSTRING m_userId; + SPXSTRING m_utteranceId; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Transcription diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_memory_logger.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_memory_logger.h new file mode 100644 index 0000000..2e1644f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_memory_logger.h @@ -0,0 +1,163 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Diagnostics { +namespace Logging { + +/// +/// Class with static methods to control SDK logging into an in-memory buffer. +/// Turning on logging while running your Speech SDK scenario provides +/// detailed information from the SDK's core native components. If you +/// report an issue to Microsoft, you may be asked to provide logs to help +/// Microsoft diagnose the issue. Your application should not take dependency +/// on particular log strings, as they may change from one SDK release to another +/// without notice. +/// MemoryLogger is designed for the case where you want to get access to logs +/// that were taken in the short duration before some unexpected event happens. +/// For example, if you are running a Speech Recognizer, you may want to dump the MemoryLogger +/// after getting an event indicating recognition was canceled due to some error. +/// The size of the memory buffer is fixed at 2MB and cannot be changed. This is +/// a "ring" buffer, that is, new log strings written replace the oldest ones +/// in the buffer. +/// Added in version 1.20.0 +/// +/// Memory logging is a process wide construct. That means that if (for example) +/// you have multiple speech recognizer objects running in parallel, there will be one +/// memory buffer containing interleaved logs from all recognizers. You cannot get a +/// separate logs for each recognizer. +class MemoryLogger +{ +public: + /// + /// Starts logging into the internal memory buffer. + /// + static void Start() + { + diagnostics_log_memory_start_logging(); + } + + /// + /// Stops logging into the internal memory buffer. + /// + static void Stop() + { + diagnostics_log_memory_stop_logging(); + } + + /// + /// Sets or clears filters for memory logging. + /// Once filters are set, memory logger will only be updated with log strings + /// containing at least one of the strings specified by the filters. The match is case sensitive. + /// + /// Optional. Filters to use, or an empty list to remove previously set filters. + static void SetFilters(std::initializer_list filters = {}) + { + std::string collapsedFilters = MemoryLogger::CollapseFilters(filters); + + diagnostics_log_memory_set_filters(collapsedFilters.c_str()); + } + + /// + /// Writes the content of the whole memory buffer to the specified file. + /// It does not block other SDK threads from continuing to log into the buffer. + /// + /// Path to a log file on local disk. + /// This does not reset (clear) the memory buffer. + static void Dump(const SPXSTRING& filePath) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, filePath.empty()); + + SPX_THROW_ON_FAIL(diagnostics_log_memory_dump(Utils::ToUTF8(filePath).c_str(), nullptr, false, false)); + } + + /// + /// Writes the content of the whole memory buffer to an object that implements std::ostream. + /// For example, std::cout (for console output). + /// It does not block other SDK threads from continuing to log into the buffer. + /// + /// std::ostream object to write to. + /// This does not reset (clear) the memory buffer. + static void Dump(std::ostream& outStream) + { + auto start = diagnostics_log_memory_get_line_num_oldest(); + auto stop = diagnostics_log_memory_get_line_num_newest(); + for (auto i = start; + i < stop; + i++) + { + const char* line = diagnostics_log_memory_get_line(i); + if (line) + { + outStream << line; + } + } + } + + /// + /// Returns the content of the whole memory buffer as a vector of strings. + /// It does not block other SDK threads from continuing to log into the buffer. + /// + /// A vector with the contents of the memory buffer copied into it. + /// This does not reset (clear) the memory buffer. + static std::vector Dump() + { + std::vector results; + + auto start = diagnostics_log_memory_get_line_num_oldest(); + auto stop = diagnostics_log_memory_get_line_num_newest(); + for (auto i = start; + i < stop; + i++) + { + const char* line = diagnostics_log_memory_get_line(i); + if (line) + { + results.push_back(line); + } + } + + return results; + } + + /// + /// Sets the level of the messages to be captured by the logger + /// + /// Maximum level of detail to be captured by the logger. + static void SetLevel(Level level) + { + const auto levelStr = Details::LevelToString(level); + diagnostics_set_log_level("memory", levelStr); + } + +private: + static std::string CollapseFilters(std::initializer_list filters) + { + std::string str = ""; + + if (filters.size() > 0) + { + std::ostringstream filtersCollapsed; + std::copy(filters.begin(), filters.end(), std::ostream_iterator(filtersCollapsed, ";")); + str = filtersCollapsed.str(); + } + + return str; + } +}; + +}}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_participant.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_participant.h new file mode 100644 index 0000000..b87ee40 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_participant.h @@ -0,0 +1,222 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_participant.h: Public API declarations for Participant C++ class +// + +#pragma once +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +/// +/// Represents a participant in a conversation. +/// Added in version 1.5.0. +/// +class Participant +{ +private: + SPXPARTICIPANTHANDLE m_hparticipant; + SPXSTRING m_avatar; + SPXSTRING m_id; + SPXSTRING m_displayName; + bool m_isTts; + bool m_isMuted; + bool m_isHost; + +public: + /// + /// Create a participant using user id, her/his preferred language and her/his voice signature. + /// If voice signature is empty then user will not be identified. + /// + /// A user ids. + /// The preferred languages of the user. It can be optional. + /// The voice signature of the user. It can be optional. + /// A smart pointer of Participant + static std::shared_ptr From(const SPXSTRING& userId, const SPXSTRING& preferredLanguage = {}, const SPXSTRING& voiceSignature = {}) + { + SPXPARTICIPANTHANDLE hparticipant = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(participant_create_handle(&hparticipant, Utils::ToUTF8(userId.c_str()), Utils::ToUTF8(preferredLanguage.c_str()), Utils::ToUTF8(voiceSignature.c_str()))); + return std::make_shared(hparticipant); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// participant handle. + explicit Participant(SPXPARTICIPANTHANDLE hparticipant = SPXHANDLE_INVALID) : + m_hparticipant(hparticipant), + m_avatar(), + m_id(), + m_displayName(), + m_isTts(false), + m_isMuted(false), + m_isHost(false), + Id(m_id), + Avatar(m_avatar), + DisplayName(m_displayName), + IsUsingTts(m_isTts), + IsMuted(m_isMuted), + IsHost(m_isHost), + m_properties(hparticipant), + Properties(m_properties) + { + LoadConversationParticipantProperties(hparticipant); + } + + /// + /// Virtual destructor. + /// + virtual ~Participant() { participant_release_handle(m_hparticipant); } + + /// + /// Get the identifier for the participant. + /// + const SPXSTRING& Id; + + /// + /// Gets the colour of the user's avatar as an HTML hex string (e.g. FF0000 for red). + /// + const SPXSTRING& Avatar; + + /// + /// The participant's display name. Please note that each participant within the same conversation must + /// have a different display name. Duplicate names within the same conversation are not allowed. You can + /// use the Id property as another way to refer to each participant. + /// + const SPXSTRING& DisplayName; + + /// + /// Gets whether or not the participant is using Text To Speech (TTS). + /// + const bool& IsUsingTts; + + /// + /// Gets whether or not this participant is muted. + /// + const bool& IsMuted; + + /// + /// Gets whether or not this participant is the host. + /// + const bool& IsHost; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXPARTICIPANTHANDLE() const { return m_hparticipant; } + + /// + /// Set preferred language. + /// + /// The preferred language, such as "en-us". + void SetPreferredLanguage(const std::string& preferredLanguage) + { + SPX_THROW_ON_FAIL(participant_set_preferred_langugage(m_hparticipant, Utils::ToUTF8(preferredLanguage.c_str()))); + } + + /// + /// Set voice signature. + /// If voice signature is empty then user will not be identified. + /// + /// The participant's voice signature." + void SetVoiceSignature(const std::string& voiceSignature) + { + SPX_THROW_ON_FAIL(participant_set_voice_signature(m_hparticipant, Utils::ToUTF8(voiceSignature.c_str()))); + } + +private: + + /*! \cond PRIVATE */ + + DISABLE_COPY_AND_MOVE(Participant); + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXPARTICIPANTHANDLE hparticipant) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + participant_get_property_bag(hparticipant, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + SPXSTRING TryLoadString(SPXEVENTHANDLE hevent, SPXHR(SPXAPI_CALLTYPE * func)(SPXEVENTHANDLE, char*, uint32_t *)) + { + std::unique_ptr psz; + try + { + // query the string length + uint32_t length = 0; + + // don't use SPX_THROW_ON_FAIL since that creates a handle for exceptions that will leak + // since we don't care about them. + SPXHR hr = func(hevent, nullptr, &length); + if (SPX_FAILED(hr) || length == 0) + { + return SPXSTRING{}; + } + + psz = std::unique_ptr(new char[length]); + hr = func(hevent, psz.get(), &length); + if (SPX_FAILED(hr)) + { + return SPXSTRING{}; + } + + return Utils::ToSPXString(psz.get()); + } + catch (...) + { + // ignore errors since not all participants have the properties we need + return SPXSTRING{}; + } + } + + void LoadConversationParticipantProperties(SPXPARTICIPANTHANDLE hParticipant) + { + m_id = TryLoadString(hParticipant, conversation_translator_participant_get_id); + m_avatar = TryLoadString(hParticipant, conversation_translator_participant_get_avatar); + m_displayName = TryLoadString(hParticipant, conversation_translator_participant_get_displayname); + + bool val; + if (SPX_SUCCEEDED(conversation_translator_participant_get_is_using_tts(hParticipant, &val))) + { + m_isTts = val; + } + + if (SPX_SUCCEEDED(conversation_translator_participant_get_is_muted(hParticipant, &val))) + { + m_isMuted = val; + } + + if (SPX_SUCCEEDED(conversation_translator_participant_get_is_host(hParticipant, &val))) + { + m_isHost = val; + } + } + + /*! \endcond */ + +public: + + /// + /// Collection of additional participant properties. + /// + PropertyCollection& Properties; +}; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_entity.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_entity.h new file mode 100644 index 0000000..823518f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_entity.h @@ -0,0 +1,46 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_pattern_matching_entity.h: Public API declarations for PatternMatchingEntity C++ struct +// + +#pragma once +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// Represents a pattern matching entity used for intent recognition. +/// +struct PatternMatchingEntity +{ + /// + /// An Id used to define this Entity if it is matched. This id must appear in an intent phrase + /// or it will never be matched. + /// + SPXSTRING Id; + + /// + /// The Type of this Entity. + /// + EntityType Type; + + /// + /// The EntityMatchMode of this Entity. + /// + EntityMatchMode Mode; + + /// + /// If the Type is List these phrases will be used as the list. + /// + std::vector Phrases; + +}; + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_intent.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_intent.h new file mode 100644 index 0000000..0670291 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_intent.h @@ -0,0 +1,36 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_pattern_matching_intent.h: Public API declarations for PatternMatchingIntent C++ struct +// + +#pragma once +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + +/// +/// Represents a pattern matching intent used for intent recognition. +/// +struct PatternMatchingIntent +{ + /// + /// Phrases and patterns that will trigger this intent. At least one phrase must exist to be able to + /// apply this intent to an IntentRecognizer. + /// + std::vector Phrases; + + /// + /// An Id used to define this Intent if it is matched. If no Id is specified, then the first phrase in Phrases + /// will be used. + /// + SPXSTRING Id; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_model.h new file mode 100644 index 0000000..2cb8954 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pattern_matching_model.h @@ -0,0 +1,372 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_pattern_matching_model.h: Public API declarations for PatternMatchingModel C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Intent { + + /// + /// Represents a pattern matching model used for intent recognition. + /// + class PatternMatchingModel : public LanguageUnderstandingModel + { + public: + + /// + /// Creates a pattern matching model using the specified model ID. + /// + /// A string that represents a unique Id for this model. + /// A shared pointer to pattern matching model. + static std::shared_ptr FromModelId(const SPXSTRING& modelId) + { + return std::shared_ptr { + new PatternMatchingModel(modelId) + }; + } + + /// + /// Creates a pattern matching model using the specified .json file. This should follow the Microsoft LUIS JSON export schema. + /// + /// A string that representing the path to a '.json' file. + /// A shared pointer to pattern matching model. + static std::shared_ptr FromJSONFile(const SPXSTRING& filepath) + { + FILE* fp; + int err; +#ifdef _MSC_VER + err = fopen_s(&fp, filepath.c_str(), "r"); +#else + fp = fopen(filepath.c_str(), "r"); + if (fp == NULL) + { + err = -1; + } + else + { + err = 0; + } +#endif + if (err == 0 && fp != NULL) + { + char buffer[1024] = {}; + size_t numread = 0; + std::string fileContents = ""; +#ifdef _MSC_VER + while ((numread = fread_s((void**)&buffer, sizeof(buffer), sizeof(char), sizeof(buffer), fp)) != 0) +#else + while ((numread = fread((void**)&buffer, sizeof(char), sizeof(buffer), fp)) != 0) +#endif + { + fileContents.append(buffer, numread); + } + fclose(fp); + return ParseJSONFile(fileContents); + } + else + { + SPX_TRACE_ERROR("Attempt to read %s failed.", SPXERR_FILE_OPEN_FAILED, filepath.c_str()); + return nullptr; + } + } + + /// + /// Creates a PatternMatchingModel using the specified istream pointing to an .json file in the LUIS json format. + /// This assumes the stream is already open and has permission to read. + /// + /// A stream that representing a '.json' file. + /// A shared pointer to pattern matching model. + static std::shared_ptr FromJSONFileStream(std::istream& iStream) + { + std::istreambuf_iterator iterator{iStream}; + std::string str(iterator, {}); + return ParseJSONFile(str); + } + + /// + /// Returns id for this model. + /// + /// A string representing the id of this model. + SPXSTRING GetModelId() const { return m_modelId; } + + /// + /// This container of Intents is used to define all the Intents this model will look for. + /// + std::vector Intents; + + /// + /// This container of Intents is used to define all the Intents this model will look for. + /// + std::vector Entities; + + private: + DISABLE_COPY_AND_MOVE(PatternMatchingModel); + + PatternMatchingModel(const SPXSTRING& modelId) : LanguageUnderstandingModel(LanguageUnderstandingModelType::PatternMatchingModel), m_modelId(modelId) {} + + SPXSTRING m_modelId; + + static std::shared_ptr ParseJSONFile(const std::string& fileContents) + { + auto model = std::shared_ptr(new PatternMatchingModel("")); + AZAC_HANDLE parserHandle; + auto root = ai_core_json_parser_create(&parserHandle, fileContents.c_str(), fileContents.size()); + if (!ai_core_json_parser_handle_is_valid(parserHandle)) + { + SPX_TRACE_ERROR("Attempt to parse language understanding json file failed.", SPXERR_UNSUPPORTED_FORMAT); + return nullptr; + } + int count = ai_core_json_item_count(parserHandle, root); + for (int i = 0; i < count; i++) + { + auto itemInt = ai_core_json_item_at(parserHandle, root, i, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, itemInt); + size_t nameSize; + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + + size_t valueSize = 0; + auto value = ai_core_json_value_as_string_ptr(parserHandle, itemInt, &valueSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + if (nameStr == "luis_schema_version") + { + // We support any version that we are able to pull data out of. + } + else if (nameStr == "prebuiltEntities") + { + int prebuiltcount = ai_core_json_item_count(parserHandle, itemInt); + for (int j = 0; j < prebuiltcount; j++) + { + ParsePrebuiltEntityJson(parserHandle, model, itemInt, j); + } + } + else if (nameStr == "name") + { + model->m_modelId = std::string(value, valueSize); + } + else if (nameStr == "patternAnyEntities" || nameStr == "entities") + { + int anyCount = ai_core_json_item_count(parserHandle, itemInt); + for (int j = 0; j < anyCount; j++) + { + ParseEntityJson(parserHandle, model, itemInt, j); + } + } + else if (nameStr == "patterns") + { + int patternCount = ai_core_json_item_count(parserHandle, itemInt); + for (int j = 0; j < patternCount; j++) + { + ParsePatternJson(parserHandle, model, itemInt, j); + } + } + else if (nameStr == "closedLists") + { + int listCount = ai_core_json_item_count(parserHandle, itemInt); + for (int j = 0; j < listCount; j++) + { + ParseListEntityJson(parserHandle, model, itemInt, j); + } + } + } + } + return model; + } + + static void ParsePrebuiltEntityJson(AZAC_HANDLE parserHandle, std::shared_ptr model, int itemInt, int index) + { + auto subItemInt = ai_core_json_item_at(parserHandle, itemInt, index, nullptr); + int subItemCount = ai_core_json_item_count(parserHandle, subItemInt); + size_t nameSize = 0; + size_t valueSize = 0; + for (int subItemIndex = 0; subItemIndex < subItemCount; subItemIndex++) + { + auto prebuiltPairInt = ai_core_json_item_at(parserHandle, subItemInt, subItemIndex, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, prebuiltPairInt); + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + auto value = ai_core_json_value_as_string_ptr(parserHandle, prebuiltPairInt, &valueSize); + if (nameStr == "name" && value != nullptr) + { + auto valueStr = std::string(value, valueSize); + if (valueStr == "number") + { + model->Entities.push_back({ "number", EntityType::PrebuiltInteger, EntityMatchMode::Basic, {} }); + } + // ignore any other prebuilt types as they are not supported. + } + } + } + } + + static void ParseEntityJson(AZAC_HANDLE parserHandle, std::shared_ptr model, int itemInt, int index) + { + auto subItemInt = ai_core_json_item_at(parserHandle, itemInt, index, nullptr); + int subItemCount = ai_core_json_item_count(parserHandle, subItemInt); + size_t nameSize = 0; + size_t valueSize = 0; + for (int subItemIndex = 0; subItemIndex < subItemCount; subItemIndex++) + { + auto entityPairInt = ai_core_json_item_at(parserHandle, subItemInt, subItemIndex, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, entityPairInt); + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + auto value = ai_core_json_value_as_string_ptr(parserHandle, entityPairInt, &valueSize); + if (nameStr == "name" && value != nullptr) + { + model->Entities.push_back({ std::string(value, valueSize), EntityType::Any, EntityMatchMode::Basic, {}}); + } + // ignore any other pairs since we only care about the name. + } + } + } + + static void ParseListEntityJson(AZAC_HANDLE parserHandle, std::shared_ptr model, int itemInt, int index) + { + auto subItemInt = ai_core_json_item_at(parserHandle, itemInt, index, nullptr); + int subItemCount = ai_core_json_item_count(parserHandle, subItemInt); + size_t nameSize = 0; + size_t valueSize = 0; + // Default to Strict matching. + PatternMatchingEntity entity{ "", EntityType::List, EntityMatchMode::Strict, {} }; + for (int subItemIndex = 0; subItemIndex < subItemCount; subItemIndex++) + { + auto listPairInt = ai_core_json_item_at(parserHandle, subItemInt, subItemIndex, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, listPairInt); + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + if (nameStr == "name") + { + auto value = ai_core_json_value_as_string_ptr(parserHandle, listPairInt, &valueSize); + if (value != nullptr) + { + entity.Id = std::string(value, valueSize); + } + } + if (nameStr == "subLists") + { + ParseSubList(parserHandle, entity, listPairInt); + } + // ignore any other pairs since we only care about the name. + } + } + model->Entities.push_back(entity); + } + + static void ParseSubList(AZAC_HANDLE parserHandle, PatternMatchingEntity& entity, int listPairInt) + { + size_t nameSize = 0; + size_t valueSize = 0; + auto subListCount = ai_core_json_item_count(parserHandle, listPairInt); + for (int subListIndex = 0; subListIndex < subListCount; subListIndex++) + { + auto subListItemInt = ai_core_json_item_at(parserHandle, listPairInt, subListIndex, nullptr); + auto subListItemCount = ai_core_json_item_count(parserHandle, subListItemInt); + for (int subListItemIndex = 0; subListItemIndex < subListItemCount; subListItemIndex++) + { + auto subListPairInt = ai_core_json_item_at(parserHandle, subListItemInt, subListItemIndex, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, subListPairInt); + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + if (nameStr == "canonicalForm") + { + auto value = ai_core_json_value_as_string_ptr(parserHandle, subListPairInt, &valueSize); + if (value != nullptr) + { + entity.Phrases.push_back(std::string(value, valueSize)); + } + } + else if (nameStr == "list") + { + auto subListSynonymInt = ai_core_json_item_at(parserHandle, subListItemInt, subListItemIndex, nullptr); + auto subListSynonymItemCount = ai_core_json_item_count(parserHandle, subListSynonymInt); + for (int subListSynonymIndex = 0; subListSynonymIndex < subListSynonymItemCount; subListSynonymIndex++) + { + auto subListSynonymEntryInt = ai_core_json_item_at(parserHandle, subListSynonymInt, subListSynonymIndex, nullptr); + auto value = ai_core_json_value_as_string_ptr(parserHandle, subListSynonymEntryInt, &valueSize); + if (value != nullptr) + { + entity.Phrases.push_back(std::string(value, valueSize)); + } + } + } + } + } + } + } + + static void ParsePatternJson(AZAC_HANDLE parserHandle, std::shared_ptr model, int itemInt, int index) + { + auto subItemInt = ai_core_json_item_at(parserHandle, itemInt, index, nullptr); + int subItemCount = ai_core_json_item_count(parserHandle, subItemInt); + size_t nameSize = 0; + size_t valueSize = 0; + std::string patternStr, intentIdStr; + for (int subItemIndex = 0; subItemIndex < subItemCount; subItemIndex++) + { + auto entityPairInt = ai_core_json_item_at(parserHandle, subItemInt, subItemIndex, nullptr); + auto nameInt = ai_core_json_item_name(parserHandle, entityPairInt); + auto name = ai_core_json_value_as_string_ptr(parserHandle, nameInt, &nameSize); + if (name != nullptr) + { + auto nameStr = std::string(name, nameSize); + auto value = ai_core_json_value_as_string_ptr(parserHandle, entityPairInt, &valueSize); + if (value != nullptr) + { + if (nameStr == "pattern") + { + patternStr = std::string(value, valueSize); + } + else if (nameStr == "intent") + { + intentIdStr = std::string(value, valueSize); + } + } + // ignore any other pairs since we only care about the name. + } + } + if (!patternStr.empty() && !intentIdStr.empty()) + { + bool added = false; + for (auto& intent : model->Intents) + { + if (intent.Id == intentIdStr) + { + intent.Phrases.push_back(patternStr); + added = true; + break; + } + } + if (!added) + { + model->Intents.push_back({ {patternStr}, intentIdStr}); + } + } + } + +}; + +} } } } // Microsoft::CognitiveServices::Speech::Intent diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_phrase_list_grammar.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_phrase_list_grammar.h new file mode 100644 index 0000000..dbcece2 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_phrase_list_grammar.h @@ -0,0 +1,92 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_phrase_list_grammar.h: Public API declarations for PhraseListGrammar C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Represents a phrase list grammar for dynamic grammar scenarios. +/// Added in version 1.5.0. +/// +class PhraseListGrammar : public Grammar +{ +public: + + /// + /// Creates a phrase list grammar for the specified recognizer. + /// + /// The recognizer from which to obtain the phrase list grammar. + /// A shared pointer to phrase list grammar. + template + static std::shared_ptr FromRecognizer(std::shared_ptr recognizer) + { + return FromRecognizer(recognizer, Utils::ToSPXString(nullptr)); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Phrase list grammar handle. + explicit PhraseListGrammar(SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID) : Grammar(hgrammar) { } + + /// + /// Adds a simple phrase that may be spoken by the user. + /// + /// The phrase to be added. + void AddPhrase(const SPXSTRING& text) + { + auto phrase = GrammarPhrase::From(text); + SPX_THROW_ON_FAIL(phrase_list_grammar_add_phrase(m_hgrammar.get(), (SPXPHRASEHANDLE)(*phrase.get()))); + } + + /// + /// Clears all phrases from the phrase list grammar. + /// + void Clear() + { + SPX_THROW_ON_FAIL(phrase_list_grammar_clear(m_hgrammar.get())); + } + +protected: + + /// + /// Internal. Creates a phrase list grammar for the specified recognizer, with the specified name. + /// + /// The recognizer from which to obtain the phrase list grammar. + /// The name of the phrase list grammar to create. + /// A shared pointer to phrase list grammar. + template + static std::shared_ptr FromRecognizer(std::shared_ptr recognizer, const SPXSTRING& name) + { + SPXRECOHANDLE hreco = recognizer != nullptr + ? (SPXRECOHANDLE)(*recognizer.get()) + : SPXHANDLE_INVALID; + + SPXGRAMMARHANDLE hgrammar = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(phrase_list_grammar_from_recognizer_by_name(&hgrammar, hreco, Utils::ToUTF8(name.c_str()))); + + return std::make_shared(hgrammar); + } + + +private: + + DISABLE_COPY_AND_MOVE(PhraseListGrammar); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_config.h new file mode 100644 index 0000000..88ddc99 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_config.h @@ -0,0 +1,222 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include + +#include "speechapi_cxx_properties.h" +#include "speechapi_cxx_string_helpers.h" +#include "speechapi_cxx_utils.h" +#include "speechapi_cxx_common.h" +#include "speechapi_cxx_enums.h" +#include +#include "speechapi_c_pronunciation_assessment_config.h" + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines pronunciation assessment configuration +/// Added in 1.14.0 +/// +class PronunciationAssessmentConfig +{ +public: + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE() const { return m_hconfig; } + + /// + /// Creates an instance of the PronunciationAssessmentConfig + /// For parameter details, see the table + /// [Pronunciation assessment parameters](/azure/cognitive-services/speech-service/rest-speech-to-text-short#pronunciation-assessment-parameters). + /// + /// The reference text + /// The point system for score calibration + /// The evaluation granularity + /// If enables miscue calculation. When true, the pronounced words are compared to the reference text, and are marked with omission/insertion based on the comparison; when false, the recognized text will always be reference text. + /// A shared pointer to the new PronunciationAssessmentConfig instance. + static std::shared_ptr Create(const std::string& referenceText, + PronunciationAssessmentGradingSystem gradingSystem = + PronunciationAssessmentGradingSystem::FivePoint, + PronunciationAssessmentGranularity granularity = + PronunciationAssessmentGranularity::Phoneme, + bool enableMiscue = false) + { + SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL( + create_pronunciation_assessment_config(&hconfig, Utils::ToUTF8(referenceText).c_str(), + static_cast(gradingSystem), + static_cast(granularity), + enableMiscue)); + const auto ptr = new PronunciationAssessmentConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the PronunciationAssessmentConfig + /// For parameters details, see the table + /// [Pronunciation assessment parameters](/azure/cognitive-services/speech-service/rest-speech-to-text-short#pronunciation-assessment-parameters). + /// + /// The reference text + /// The point system for score calibration + /// The evaluation granularity + /// If enables miscue calculation + /// A shared pointer to the new PronunciationAssessmentConfig instance. + static std::shared_ptr Create(const std::wstring& referenceText, + PronunciationAssessmentGradingSystem gradingSystem = + PronunciationAssessmentGradingSystem::FivePoint, + PronunciationAssessmentGranularity granularity = + PronunciationAssessmentGranularity::Phoneme, + bool enableMiscue = false) + { + return Create(Utils::ToUTF8(referenceText), gradingSystem, granularity, enableMiscue); + } + + /// + /// Creates an instance of the PronunciationAssessmentConfig from json. See the table + /// [Pronunciation assessment parameters](/azure/cognitive-services/speech-service/rest-speech-to-text-short#pronunciation-assessment-parameters). + /// + /// The json string containing the pronunciation assessment parameters. + /// A shared pointer to the new PronunciationAssessmentConfig instance. + static std::shared_ptr CreateFromJson(const SPXSTRING& json) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, json.empty()); + SPXAUTODETECTSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(create_pronunciation_assessment_config_from_json(&hconfig, Utils::ToUTF8(json).c_str())); + const auto ptr = new PronunciationAssessmentConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Gets to json string of pronunciation assessment parameters. + /// + /// json string of pronunciation assessment parameters. + SPXSTRING ToJson() const + { + const char* jsonCch = pronunciation_assessment_config_to_json(m_hconfig); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(jsonCch)); + } + + /// + /// Gets the reference text. + /// + /// The reference text. + SPXSTRING GetReferenceText() + { + const char* value = property_bag_get_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_ReferenceText), nullptr, ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + + /// + /// Sets the reference text. + /// + /// The reference text. + void SetReferenceText(const std::string& referenceText) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_ReferenceText), nullptr, referenceText.c_str()); + } + + /// + /// Sets the reference text. + /// + /// The reference text. + void SetReferenceText(const std::wstring& referenceText) + { + SetReferenceText(Utils::ToUTF8(referenceText)); + } + + /// + /// Sets phoneme alphabet. Valid values are: "SAPI" (default) and "IPA". + /// + /// Added in version 1.20.0. + /// The phoneme alphabet. + void SetPhonemeAlphabet(const SPXSTRING& phonemeAlphabet) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_PhonemeAlphabet), nullptr, Utils::ToUTF8(phonemeAlphabet).c_str()); + } + + /// + /// Sets nbest phoneme count in the result. + /// + /// Added in version 1.20.0. + /// The nbest phoneme count. + void SetNBestPhonemeCount(int count) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_NBestPhonemeCount), nullptr, std::to_string(count).c_str()); + } + + /// + /// Enables prosody assessment. + /// + /// Added in version 1.33.0. + void EnableProsodyAssessment() + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_EnableProsodyAssessment), nullptr, "true"); + } + + /// + /// Enables the content assessment with topic. + /// + /// Added in version 1.33.0. + /// The content topic. + void EnableContentAssessmentWithTopic(const SPXSTRING& contentTopic) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::PronunciationAssessment_ContentTopic), nullptr, Utils::ToUTF8(contentTopic).c_str()); + } + + /// + /// Applies the settings in this config to a Recognizer. + /// + /// The target Recognizer. + void ApplyTo(std::shared_ptr recognizer) const + { + SPX_INIT_HR(hr); + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, recognizer == nullptr); + + SPX_THROW_ON_FAIL(hr =::pronunciation_assessment_config_apply_to_recognizer(m_hconfig, recognizer->m_hreco)); + } + + /// + /// Destructs the object. + /// + virtual ~PronunciationAssessmentConfig() + { + pronunciation_assessment_config_release(m_hconfig); + property_bag_release(m_propertybag); + } + +private: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PronunciationAssessmentConfig(SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE hconfig) + :m_hconfig(hconfig) + { + SPX_THROW_ON_FAIL(pronunciation_assessment_config_get_property_bag(hconfig, &m_propertybag)); + } + + /// + /// Internal member variable that holds the config + /// + SPXPRONUNCIATIONASSESSMENTCONFIGHANDLE m_hconfig; + + /// + /// Internal member variable that holds the properties of the speech config + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + DISABLE_COPY_AND_MOVE(PronunciationAssessmentConfig); +}; + +}}} + diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_result.h new file mode 100644 index 0000000..aedbcb7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_pronunciation_assessment_result.h @@ -0,0 +1,142 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_pronunciation_assessment_result.h: Public API declarations for PronunciationAssessmentResult C++ class +// + +#pragma once +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class for content assessment results. +/// +class PronunciationContentAssessmentResult +{ +public: + /// + /// The score indicating the grammar of the given speech. + /// + const double GrammarScore; + + /// + /// The score indicating the vocabulary of the given speech. + /// + const double VocabularyScore; + + /// + /// The score indicating the topic of the given speech. + /// + const double TopicScore; + + /*! \cond INTERNAL */ + + PronunciationContentAssessmentResult(const PropertyCollection& properties) : + GrammarScore(std::stod(properties.GetProperty("ContentAssessment_GrammarScore", "-1"))), + VocabularyScore(std::stod(properties.GetProperty("ContentAssessment_VocabularyScore", "-1"))), + TopicScore(std::stod(properties.GetProperty("ContentAssessment_TopicScore", "-1"))) + { + } + + /*! \endcond */ + +}; + + +/// +/// Class for pronunciation assessment results. +/// +class PronunciationAssessmentResult +{ +public: + + /// + /// Creates a pronunciation assessment result object from recognition result + /// If nullptr is returned, it means the assessment is failed. + /// + /// recognition result + /// A shared pointer to the created PronunciationAssessmentResult instance. + static std::shared_ptr FromResult(std::shared_ptr result) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, result == nullptr); + if (result->Properties.GetProperty("AccuracyScore").empty() && result->Properties.GetProperty("ContentAssessment_GrammarScore").empty()) + { + return nullptr; + } + auto ptr = new PronunciationAssessmentResult(result->Properties); + return std::shared_ptr(ptr); + } + + /// + /// The score indicating the pronunciation accuracy of the given speech, which indicates + /// how closely the phonemes match a native speaker's pronunciation. + /// If this is less 0, it means the pronunciation assessment failed. + /// + const double AccuracyScore; + + /// + /// The overall score indicating the pronunciation quality of the given speech. + /// This is calculated from AccuracyScore, FluencyScore and CompletenessScore with weight. + /// If this is less 0, it means the pronunciation assessment failed. + /// + const double PronunciationScore; + + /// + /// The score indicating the completeness of the given speech by calculating the ratio of pronounced words towards entire input. + /// If this is less 0, it means the pronunciation assessment failed. + /// + const double CompletenessScore; + + /// + /// The score indicating the fluency of the given speech. + /// If this is less 0, it means the pronunciation assessment failed. + /// + const double FluencyScore; + + /// + /// The score indicating the prosody of the given speech. + /// If this is less 0, it means the prosody assessment is not enabled. + /// + const double ProsodyScore; + + /// + /// The content assessment result. Only available when content assessment is enabled. + /// + std::shared_ptr ContentAssessmentResult; + + +protected: + + /*! \cond PROTECTED */ + + + explicit PronunciationAssessmentResult(const PropertyCollection& properties) : + AccuracyScore(std::stod(properties.GetProperty("AccuracyScore", "-1"))), + PronunciationScore(std::stod(properties.GetProperty("PronScore", "-1"))), + CompletenessScore(std::stod(properties.GetProperty("CompletenessScore", "-1"))), + FluencyScore(std::stod(properties.GetProperty("FluencyScore", "-1"))), + ProsodyScore(std::stod(properties.GetProperty("ProsodyScore", "-1"))) + { + if (!properties.GetProperty("ContentAssessment_GrammarScore").empty()) + { + this->ContentAssessmentResult = std::make_shared(properties); + } + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(PronunciationAssessmentResult); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_properties.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_properties.h new file mode 100644 index 0000000..5a8a7b8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_properties.h @@ -0,0 +1,99 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +class KeywordRecognizer; + +/// +/// Class to retrieve or set a property value from a property collection. +/// +class PropertyCollection +{ +public: + + /// + /// Destructor. + /// + ~PropertyCollection() + { + if (property_bag_is_valid(m_propbag)) + { + property_bag_release(m_propbag); + m_propbag = SPXHANDLE_INVALID; + } + } + + /// + /// Set value of a property. + /// + /// The id of the property. See + /// value to set + void SetProperty(PropertyId propertyID, const SPXSTRING& value) + { + property_bag_set_string(m_propbag, (int)propertyID, NULL, Utils::ToUTF8(value).c_str()); + } + + /// + /// Set value of a property. + /// + /// The name of property. + /// value to set + void SetProperty(const SPXSTRING& propertyName, const SPXSTRING& value) + { + property_bag_set_string(m_propbag, -1, Utils::ToUTF8(propertyName).c_str(), Utils::ToUTF8(value).c_str()); + } + + /// + /// Returns value of a property. + /// If the property value is not defined, the specified default value is returned. + /// + /// The id of the property. See + /// The default value which is returned if no value is defined for the property (empty string by default). + /// value of the property. + SPXSTRING GetProperty(PropertyId propertyID, const SPXSTRING& defaultValue = SPXSTRING()) const + { + const char* propCch = property_bag_get_string(m_propbag, static_cast(propertyID), nullptr, Utils::ToUTF8(defaultValue).c_str()); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(propCch)); + } + + /// + /// Returns value of a property. + /// If the property value is not defined, the specified default value is returned. + /// + /// The name of the property. + /// The default value which is returned if no value is defined for the property (empty string by default). + /// value of the property. + SPXSTRING GetProperty(const SPXSTRING& propertyName, const SPXSTRING& defaultValue = SPXSTRING()) const + { + const char* propCch = property_bag_get_string(m_propbag, -1, Utils::ToUTF8(propertyName).c_str(), Utils::ToUTF8(defaultValue).c_str()); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(propCch)); + } + +protected: + friend class KeywordRecognizer; + + /*! \cond PROTECTED */ + + PropertyCollection(SPXPROPERTYBAGHANDLE propbag) : m_propbag(propbag) {} + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(PropertyCollection); + + SPXPROPERTYBAGHANDLE m_propbag; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_async_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_async_recognizer.h new file mode 100644 index 0000000..6a7f2ca --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_async_recognizer.h @@ -0,0 +1,473 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_recognition_async_recognizer.h: Public API declarations for AsyncRecognizer C++ template class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// AsyncRecognizer abstract base class. +/// +template +class AsyncRecognizer : public Recognizer +{ +public: + + /// + /// Performs recognition in a non-blocking (asynchronous) mode. + /// + /// Future containing result value (a shared pointer to RecoResult) + /// of the asynchronous recognition. + /// + virtual std::future> RecognizeOnceAsync() = 0; + + /// + /// Asynchronously initiates continuous recognition operation. + /// + /// An empty future. + virtual std::future StartContinuousRecognitionAsync() = 0; + + /// + /// Asynchronously terminates ongoing continuous recognition operation. + /// + /// An empty future. + virtual std::future StopContinuousRecognitionAsync() = 0; + + /// + /// Asynchronously initiates keyword recognition operation. + /// + /// The keyword recognition model that specifies the keyword to be recognized. + /// An asynchronous operation that starts the keyword recognition. + virtual std::future StartKeywordRecognitionAsync(std::shared_ptr model) = 0; + + /// + /// Asynchronously terminates ongoing keyword recognition operation. + /// + /// An empty future. + virtual std::future StopKeywordRecognitionAsync() = 0; + + /// + /// Signal for events indicating the start of a recognition session (operation). + /// + EventSignal SessionStarted; + + /// + /// Signal for events indicating the end of a recognition session (operation). + /// + EventSignal SessionStopped; + + /// + /// Signal for events indicating the start of speech. + /// + EventSignal SpeechStartDetected; + + /// + /// Signal for events indicating the end of speech. + /// + EventSignal SpeechEndDetected; + + /// + /// Signal for events containing intermediate recognition results. + /// + EventSignal Recognizing; + + /// + /// Signal for events containing final recognition results. + /// (indicating a successful recognition attempt). + /// + EventSignal Recognized; + + /// + /// Signal for events containing canceled recognition results + /// (indicating a recognition attempt that was canceled as a result or a direct cancellation request + /// or, alternatively, a transport or protocol failure). + /// + EventSignal Canceled; + +protected: + + /*! \cond PROTECTED */ + + explicit AsyncRecognizer(SPXRECOHANDLE hreco) throw() : + Recognizer(hreco), + SessionStarted(GetSessionEventConnectionsChangedCallback()), + SessionStopped(GetSessionEventConnectionsChangedCallback()), + SpeechStartDetected(GetRecognitionEventConnectionsChangedCallback()), + SpeechEndDetected(GetRecognitionEventConnectionsChangedCallback()), + Recognizing(GetRecoEventConnectionsChangedCallback()), + Recognized(GetRecoEventConnectionsChangedCallback()), + Canceled(GetRecoCanceledEventConnectionsChangedCallback()), + m_properties(hreco), + m_hasyncRecognize(SPXHANDLE_INVALID), + m_hasyncStartContinuous(SPXHANDLE_INVALID), + m_hasyncStopContinuous(SPXHANDLE_INVALID), + m_hasyncStartKeyword(SPXHANDLE_INVALID), + m_hasyncStopKeyword(SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + }; + + virtual ~AsyncRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + }; + + virtual void TermRecognizer() override + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // Disconnect the event signals in reverse construction order + Canceled.DisconnectAll(); + Recognized.DisconnectAll(); + Recognizing.DisconnectAll(); + SpeechEndDetected.DisconnectAll(); + SpeechStartDetected.DisconnectAll(); + SessionStopped.DisconnectAll(); + SessionStarted.DisconnectAll(); + + // Close the async handles we have open for Recognize, StartContinuous, and StopContinuous + for (auto handle : { &m_hasyncRecognize, &m_hasyncStartContinuous, &m_hasyncStopContinuous }) + { + if (*handle != SPXHANDLE_INVALID && ::recognizer_async_handle_is_valid(*handle)) + { + ::recognizer_async_handle_release(*handle); + *handle = SPXHANDLE_INVALID; + } + } + + // Ask the base to term + Recognizer::TermRecognizer(); + } + + std::future> RecognizeOnceAsyncInternal() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> std::shared_ptr { + SPX_INIT_HR(hr); + + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(hr = recognizer_recognize_once(m_hreco, &hresult)); + + return std::make_shared(hresult); + }); + + return future; + }; + + std::future StartContinuousRecognitionAsyncInternal() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStartContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async(m_hreco, &m_hasyncStartContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_start_continuous_recognition_async_wait_for(m_hasyncStartContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStartContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStartContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + }; + + std::future StopContinuousRecognitionAsyncInternal() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStopContinuous)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async(m_hreco, &m_hasyncStopContinuous)); + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_continuous_recognition_async_wait_for(m_hasyncStopContinuous, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStopContinuous); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStopContinuous = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + } + + std::future StartKeywordRecognitionAsyncInternal(std::shared_ptr model) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, model, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStartKeyword)); // close any unfinished previous attempt + + auto hkeyword = (SPXKEYWORDHANDLE)(*model.get()); + SPX_EXITFN_ON_FAIL(hr = recognizer_start_keyword_recognition_async(m_hreco, hkeyword, &m_hasyncStartKeyword)); + SPX_EXITFN_ON_FAIL(hr = recognizer_start_keyword_recognition_async_wait_for(m_hasyncStartKeyword, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStartKeyword); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStartKeyword = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + }; + + std::future StopKeywordRecognitionAsyncInternal() + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPX_INIT_HR(hr); + SPX_THROW_ON_FAIL(hr = recognizer_async_handle_release(m_hasyncStopKeyword)); // close any unfinished previous attempt + + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_keyword_recognition_async(m_hreco, &m_hasyncStopKeyword)); + SPX_EXITFN_ON_FAIL(hr = recognizer_stop_keyword_recognition_async_wait_for(m_hasyncStopKeyword, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = recognizer_async_handle_release(m_hasyncStopKeyword); + SPX_REPORT_ON_FAIL(releaseHr); + m_hasyncStartKeyword = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(hr); + }); + + return future; + }; + + virtual void RecoEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Recognizing) + { + recognizer_recognizing_set_callback(m_hreco, Recognizing.IsConnected() ? AsyncRecognizer::FireEvent_Recognizing: nullptr, this); + } + else if (&recoEvent == &Recognized) + { + recognizer_recognized_set_callback(m_hreco, Recognized.IsConnected() ? AsyncRecognizer::FireEvent_Recognized: nullptr, this); + } + } + } + + virtual void RecoCanceledEventConnectionsChanged(const EventSignal& recoEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recoEvent == &Canceled) + { + recognizer_canceled_set_callback(m_hreco, Canceled.IsConnected() ? AsyncRecognizer::FireEvent_Canceled : nullptr, this); + } + } + } + + virtual void RecognitionEventConnectionsChanged(const EventSignal& recognitionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&recognitionEvent == &SpeechStartDetected) + { + recognizer_speech_start_detected_set_callback(m_hreco, SpeechStartDetected.IsConnected() ? AsyncRecognizer::FireEvent_SpeechStartDetected : nullptr, this); + } + else if (&recognitionEvent == &SpeechEndDetected) + { + recognizer_speech_end_detected_set_callback(m_hreco, SpeechEndDetected.IsConnected() ? AsyncRecognizer::FireEvent_SpeechEndDetected : nullptr, this); + } + } + } + + virtual void SessionEventConnectionsChanged(const EventSignal& sessionEvent) + { + if (m_hreco != SPXHANDLE_INVALID) + { + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + SPX_DBG_TRACE_VERBOSE_IF(!::recognizer_handle_is_valid(m_hreco), "%s: m_hreco is INVALID!!!", __FUNCTION__); + + if (&sessionEvent == &SessionStarted) + { + recognizer_session_started_set_callback(m_hreco, SessionStarted.IsConnected() ? AsyncRecognizer::FireEvent_SessionStarted: nullptr, this); + } + else if (&sessionEvent == &SessionStopped) + { + recognizer_session_stopped_set_callback(m_hreco, SessionStopped.IsConnected() ? AsyncRecognizer::FireEvent_SessionStopped : nullptr, this); + } + } + } + + static void FireEvent_SessionStarted(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent { new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStarted.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SessionStopped(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr sessionEvent { new SessionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SessionStopped.Signal(*sessionEvent.get()); + + // SessionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SpeechStartDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechStartDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_SpeechEndDetected(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new RecognitionEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SpeechEndDetected.Signal(*recoEvent.get()); + + // RecognitionEventArgs doesn't hold hevent, and thus can't release it properly ... release it here + SPX_DBG_ASSERT(recognizer_event_handle_is_valid(hevent)); + recognizer_event_handle_release(hevent); + } + + static void FireEvent_Recognizing(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent { new RecoEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Recognizing.Signal(*recoEvent.get()); + } + + static void FireEvent_Recognized(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent { new RecoEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Recognized.Signal(*recoEvent.get()); + } + + static void FireEvent_Canceled(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + + auto ptr = new RecoCanceledEventArgs(hevent); + std::shared_ptr recoEvent(ptr); + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Canceled.Signal(*ptr); + } + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRECOHANDLE hreco) : + PropertyCollection( + [=](){ + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + recognizer_get_property_bag(hreco, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + SPXASYNCHANDLE m_hasyncRecognize; + SPXASYNCHANDLE m_hasyncStartContinuous; + SPXASYNCHANDLE m_hasyncStopContinuous; + SPXASYNCHANDLE m_hasyncStartKeyword; + SPXASYNCHANDLE m_hasyncStopKeyword; + + template + static Handle HandleOrInvalid(std::shared_ptr audioInput) + { + return audioInput == nullptr + ? (Handle)SPXHANDLE_INVALID + : (Handle)(*audioInput.get()); + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(AsyncRecognizer); + + inline std::function&)> GetSessionEventConnectionsChangedCallback() + { + return [=](const EventSignal& sessionEvent) { this->SessionEventConnectionsChanged(sessionEvent); }; + } + + inline std::function&)> GetRecoEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecoCanceledEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecoCanceledEventConnectionsChanged(recoEvent); }; + } + + inline std::function&)> GetRecognitionEventConnectionsChangedCallback() + { + return [=](const EventSignal& recoEvent) { this->RecognitionEventConnectionsChanged(recoEvent); }; + } +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_base_async_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_base_async_recognizer.h new file mode 100644 index 0000000..5723e46 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_base_async_recognizer.h @@ -0,0 +1,53 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_recognition_base_async_recognizer.h: Public API declarations for BaseAsyncRecognizer C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// BaseAsyncRecognizer class. +/// +class BaseAsyncRecognizer : public AsyncRecognizer +{ +protected: + + /*! \cond PROTECTED */ + + using BaseType = AsyncRecognizer; + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit BaseAsyncRecognizer(SPXRECOHANDLE hreco) : + BaseType(hreco) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + ~BaseAsyncRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + DISABLE_DEFAULT_CTORS(BaseAsyncRecognizer); + + /*! \endcond */ +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_eventargs.h new file mode 100644 index 0000000..59713c8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_eventargs.h @@ -0,0 +1,68 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_recognition_eventargs.h: Public API declarations for RecognitionEventArgs C++ base class +// + +#pragma once +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Provides data for the RecognitionEvent. +/// +class RecognitionEventArgs : public SessionEventArgs +{ +public: + + /// + /// Constructor. Creates a new instance using the provided handle. + /// + /// Event handle. + explicit RecognitionEventArgs(SPXEVENTHANDLE hevent) : + SessionEventArgs(hevent), + Offset(m_offset), + m_offset(GetOffset(hevent)) + { + }; + + /// + virtual ~RecognitionEventArgs() {} + + /// + /// The offset of recognition event + /// + const uint64_t& Offset; + +protected: + + /*! \cond PROTECTED */ + + /// + /// Extract offset from given event handle + /// + static uint64_t GetOffset(SPXEVENTHANDLE hevent) + { + uint64_t offset = 0; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_offset(hevent, &offset)); + return offset; + } + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(RecognitionEventArgs); + uint64_t m_offset; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_result.h new file mode 100644 index 0000000..4ff95c1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognition_result.h @@ -0,0 +1,319 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_recognition_result.h: Public API declarations for RecognitionResult C++ base class and related enum class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Contains detailed information about result of a recognition operation. +/// +class RecognitionResult +{ +private: + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Virtual destructor. + /// + virtual ~RecognitionResult() + { + ::recognizer_result_handle_release(m_hresult); + m_hresult = SPXHANDLE_INVALID; + }; + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Recognition reason. + /// + const Speech::ResultReason& Reason; + + /// + /// Normalized text generated by a speech recognition engine from recognized input. + /// + const SPXSTRING& Text; + + /// + /// Duration of recognized speech in ticks. + /// A single tick represents one hundred nanoseconds or one ten-millionth of a second. + /// + /// Duration of recognized speech in ticks. + uint64_t Duration() const { return m_duration; } + + /// + /// Offset of the recognized speech in ticks. + /// A single tick represents one hundred nanoseconds or one ten-millionth of a second. + /// + /// Offset of the recognized speech in ticks. + uint64_t Offset() const { return m_offset; } + + /// + /// Index of the input audio channel where the speech was recognized. + /// Numbering starts at zero. + /// + /// Channel index. + uint32_t Channel() const { return m_channel; } + + /// + /// Collection of additional RecognitionResult properties. + /// + const PropertyCollection& Properties; + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + +protected: + + /*! \cond PROTECTED */ + + explicit RecognitionResult(SPXRESULTHANDLE hresult) : + m_properties(hresult), + ResultId(m_resultId), + Reason(m_reason), + Text(m_text), + Properties(m_properties), + Handle(m_hresult), + m_hresult(hresult) + { + PopulateResultFields(hresult, &m_resultId, &m_reason, &m_text); + } + + const SPXRESULTHANDLE& Handle; + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(RecognitionResult); + + void PopulateResultFields(SPXRESULTHANDLE hresult, SPXSTRING* resultId, Speech::ResultReason* reason, SPXSTRING* text) + { + + SPX_INIT_HR(hr); + + const size_t maxCharCount = 2048; + char sz[maxCharCount + 1] = {}; + + if (resultId != nullptr) + { + SPX_THROW_ON_FAIL(hr = result_get_result_id(hresult, sz, maxCharCount)); + *resultId = Utils::ToSPXString(sz); + } + + if (reason != nullptr) + { + Result_Reason resultReason; + SPX_THROW_ON_FAIL(hr = result_get_reason(hresult, &resultReason)); + *reason = (Speech::ResultReason)resultReason; + } + + if (text != nullptr) + { + SPX_THROW_ON_FAIL(hr = result_get_text(hresult, sz, maxCharCount)); + *text = Utils::ToSPXString(sz); + } + + SPX_THROW_ON_FAIL(hr = result_get_offset(hresult, &m_offset)); + SPX_THROW_ON_FAIL(hr = result_get_duration(hresult, &m_duration)); + SPX_THROW_ON_FAIL(hr = result_get_channel(hresult, &m_channel)); + } + + SPXRESULTHANDLE m_hresult; + + SPXSTRING m_resultId; + Speech::ResultReason m_reason; + SPXSTRING m_text; + uint64_t m_offset; + uint64_t m_duration; + uint32_t m_channel; +}; + + +/// +/// Contains detailed information about why a result was canceled. +/// +class CancellationDetails +{ +private: + + CancellationReason m_reason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Creates an instance of CancellationDetails object for the canceled RecognitionResult. + /// + /// The result that was canceled. + /// A shared pointer to CancellationDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + // VSTS 1407221 + // SPX_THROW_HR_IF(result->Reason != ResultReason::Canceled, SPXERR_INVALID_ARG); + auto ptr = new CancellationDetails(result.get()); + auto cancellation = std::shared_ptr(ptr); + return cancellation; + } + + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// Added in version 1.1.0. + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +protected: + + /*! \cond PROTECTED */ + + CancellationDetails(RecognitionResult* result) : + m_reason(GetCancellationReason(result)), + m_errorCode(GetCancellationErrorCode(result)), + Reason(m_reason), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonErrorDetails)) + { + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(CancellationDetails); + + Speech::CancellationReason GetCancellationReason(RecognitionResult* result) + { + Result_CancellationReason reason = CancellationReason_Error; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_reason_canceled(hresult, &reason)); + + return (Speech::CancellationReason)reason; + } + + Speech::CancellationErrorCode GetCancellationErrorCode(RecognitionResult* result) + { + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_canceled_error_code(hresult, &errorCode)); + + return (Speech::CancellationErrorCode)errorCode; + } + +}; + + +/// +/// Contains detailed information for NoMatch recognition results. +/// +class NoMatchDetails +{ +private: + + NoMatchReason m_reason; + +public: + + /// + /// Creates an instance of NoMatchDetails object for NoMatch RecognitionResults. + /// + /// The recognition result that was not recognized. + /// A shared pointer to NoMatchDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + // VSTS 1407221 + // SPX_THROW_HR_IF(SPXERR_INVALID_ARG, result->Reason != ResultReason::NoMatch); + auto ptr = new NoMatchDetails(result.get()); + auto noMatch = std::shared_ptr(ptr); + return noMatch; + } + + /// + /// The reason the result was not recognized. + /// + const NoMatchReason& Reason; + +protected: + + /*! \cond PROTECTED */ + + NoMatchDetails(RecognitionResult* result) : + m_reason(GetNoMatchReason(result)), + Reason(m_reason) + { + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(NoMatchDetails); + + Speech::NoMatchReason GetNoMatchReason(RecognitionResult* result) + { + Result_NoMatchReason reason = NoMatchReason_NotRecognized; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_no_match_reason(hresult, &reason)); + + return (Speech::NoMatchReason)reason; + } + +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognizer.h new file mode 100644 index 0000000..a63e451 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_recognizer.h @@ -0,0 +1,72 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_recognizer.h: Public API declarations for Recognizer C++ base class +// + +#pragma once +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Recognizer base class. +/// +class Recognizer : public std::enable_shared_from_this +{ + friend class Connection; + friend class PronunciationAssessmentConfig; +public: + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXRECOHANDLE() const { return m_hreco; } + +protected: + + /*! \cond PROTECTED */ + + explicit Recognizer(SPXRECOHANDLE hreco) : + m_hreco(hreco) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + } + + virtual ~Recognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + virtual void TermRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + if (m_hreco != SPXHANDLE_INVALID) + { + ::recognizer_handle_release(m_hreco); + m_hreco = SPXHANDLE_INVALID; + SPX_DBG_TRACE_VERBOSE("%s: m_hreco=0x%8p", __FUNCTION__, (void*)m_hreco); + } + } + + SPXRECOHANDLE m_hreco; + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(Recognizer); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session.h new file mode 100644 index 0000000..92c6c38 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session.h @@ -0,0 +1,86 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_session.h: Public API declarations for Session C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/*! \cond PRIVATE */ + +class Session +{ +private: + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXSESSIONHANDLE hsession) : + PropertyCollection( + [=](){ + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + session_get_property_bag(hsession, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + +public: + + template + static std::shared_ptr FromRecognizer(std::shared_ptr recognizer) + { + SPX_INIT_HR(hr); + + SPXSESSIONHANDLE hsession = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(hr = ::session_from_recognizer(recognizer->m_hreco, &hsession)); + + return std::make_shared(hsession); + } + + explicit Session(SPXSESSIONHANDLE hsession) : + m_properties(hsession), + Properties(m_properties), + m_hsession(hsession) + { + SPX_DBG_TRACE_FUNCTION(); + } + + virtual ~Session() + { + SPX_DBG_TRACE_FUNCTION(); + + if (m_hsession != SPXHANDLE_INVALID) + { + ::session_handle_release(m_hsession); + m_hsession = SPXHANDLE_INVALID; + } + } + + PropertyCollection& Properties; + +private: + + DISABLE_COPY_AND_MOVE(Session); + + SPXSESSIONHANDLE m_hsession; +}; + +/*! \endcond */ + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session_eventargs.h new file mode 100644 index 0000000..117de20 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_session_eventargs.h @@ -0,0 +1,73 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_session_eventargs.h: Public API declarations for SessionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Base class for session event arguments. +/// +class SessionEventArgs : public EventArgs +{ +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SessionEventArgs(SPXEVENTHANDLE hevent) : + SessionId(m_sessionId), + m_sessionId(GetSessionId(hevent)) + { + }; + + /// + virtual ~SessionEventArgs() {} + + /// + /// Session identifier (a GUID in string format). + /// + const SPXSTRING& SessionId; + + +protected: + + /*! \cond PROTECTED */ + + /// + /// Extract session identifier from given event handle + /// + static const SPXSTRING GetSessionId(SPXEVENTHANDLE hevent) + { + static const auto cchMaxUUID = 36; + static const auto cchMaxSessionId = cchMaxUUID + 1; + char sessionId[cchMaxSessionId] = {}; + + SPX_THROW_ON_FAIL(recognizer_session_event_get_session_id(hevent, sessionId, cchMaxSessionId)); + return Utils::ToSPXString(sessionId); + }; + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(SessionEventArgs); + + SPXSTRING m_sessionId; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_smart_handle.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_smart_handle.h new file mode 100644 index 0000000..d4727b9 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_smart_handle.h @@ -0,0 +1,60 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_smart_handle.h: Public API declarations for SmartHandle class and related typedef +// + +#pragma once +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +typedef SPXHR(SPXAPI_CALLTYPE *SmartHandleCloseFunction)(SPXHANDLE); + + +/// +/// Smart handle class. +/// +template +class SmartHandle +{ +public: + + SmartHandle(T handle = SPXHANDLE_INVALID) : m_handle(handle) { }; + ~SmartHandle() { reset(); } + + explicit operator T&() const { return m_handle; } + + T get() const { return m_handle; } + operator T() const { return m_handle; } + + T* operator &() + { + SPX_THROW_HR_IF(SPXERR_ALREADY_INITIALIZED, !InvalidHandle(m_handle)); + return &m_handle; + } + + void reset() + { + if (!InvalidHandle(m_handle)) + { + closeFunction(m_handle); + m_handle = SPXHANDLE_INVALID; + } + } + +private: + + static bool InvalidHandle(T t) { return t == nullptr || t == SPXHANDLE_INVALID; } + + DISABLE_COPY_AND_MOVE(SmartHandle); + T m_handle; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_lang_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_lang_config.h new file mode 100644 index 0000000..a312525 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_lang_config.h @@ -0,0 +1,91 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include +#include +#include + +#include "speechapi_cxx_properties.h" +#include +#include +#include "speechapi_c_common.h" + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines source language configuration, added in 1.8.0 +/// +class SourceLanguageConfig +{ +public: + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXSOURCELANGCONFIGHANDLE() const { return m_hconfig; } + + /// + /// Creates an instance of the SourceLanguageConfig with source language + /// + /// The source language + /// A shared pointer to the new SourceLanguageConfig instance. + static std::shared_ptr FromLanguage(const SPXSTRING& language) + { + SPXSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(source_lang_config_from_language(&hconfig, language.c_str())); + auto ptr = new SourceLanguageConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the SourceLanguageConfig with source language and custom endpoint id. A custom endpoint id corresponds to custom models. + /// + /// The source language + /// The custom endpoint id + /// A shared pointer to the new SourceLanguageConfig instance. + static std::shared_ptr FromLanguage(const SPXSTRING& language, const SPXSTRING& endpointId) + { + SPXSOURCELANGCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(source_lang_config_from_language_and_endpointId(&hconfig, language.c_str(), endpointId.c_str())); + auto ptr = new SourceLanguageConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Destructs the object. + /// + virtual ~SourceLanguageConfig() + { + source_lang_config_release(m_hconfig); + property_bag_release(m_propertybag); + } + +private: + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit SourceLanguageConfig(SPXSOURCELANGCONFIGHANDLE hconfig) + :m_hconfig(hconfig) + { + SPX_THROW_ON_FAIL(source_lang_config_get_property_bag(hconfig, &m_propertybag)); + } + + /// + /// Internal member variable that holds the config + /// + SPXSOURCELANGCONFIGHANDLE m_hconfig; + + /// + /// Internal member variable that holds the properties of the config + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + DISABLE_COPY_AND_MOVE(SourceLanguageConfig); +}; +}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_language_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_language_recognizer.h new file mode 100644 index 0000000..36b851a --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_source_language_recognizer.h @@ -0,0 +1,173 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_source_language_recognizer.h: Public API declarations for SourceLanguageRecognizer C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +class Session; + +/// +/// Class for source language recognizers. +/// You can use this class for standalone language detection. +/// Added in version 1.17.0 +/// +class SourceLanguageRecognizer final : public AsyncRecognizer +{ +public: + + using BaseType = AsyncRecognizer; + + /// + /// Create a source language recognizer from a speech config, auto detection source language config and audio config + /// + /// Speech configuration + /// Auto detection source language config + /// Audio configuration + /// A smart pointer wrapped source language recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_source_language_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit SourceLanguageRecognizer(SPXRECOHANDLE hreco) : BaseType(hreco), Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~SourceLanguageRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + /// + /// Starts speech recognition, and returns after a single utterance is recognized. The end of a + /// single utterance is determined by listening for silence at the end or until a maximum of about 30 + /// seconds of audio is processed. The task returns the recognition text as result. + /// Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + /// shot recognition like command or query. + /// For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + /// + /// Future containing result value (a shared pointer to SpeechRecognitionResult) + /// of the asynchronous speech recognition. + /// + std::future> RecognizeOnceAsync() override + { + return BaseType::RecognizeOnceAsyncInternal(); + } + + /// + /// Asynchronously initiates continuous speech recognition operation. + /// + /// An empty future. + std::future StartContinuousRecognitionAsync() override + { + return BaseType::StartContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously terminates ongoing continuous speech recognition operation. + /// + /// An empty future. + std::future StopContinuousRecognitionAsync() override + { + return BaseType::StopContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously initiates keyword recognition operation. + /// + /// Specifies the keyword model to be used. + /// An empty future. + std::future StartKeywordRecognitionAsync(std::shared_ptr model) override + { + return BaseType::StartKeywordRecognitionAsyncInternal(model); + } + + /// + /// Asynchronously terminates keyword recognition operation. + /// + /// An empty future. + std::future StopKeywordRecognitionAsync() override + { + return BaseType::StopKeywordRecognitionAsyncInternal(); + } + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Gets the endpoint ID of a customized speech model that is used for speech recognition. + /// + /// the endpoint ID of a customized speech model that is used for speech recognition + SPXSTRING GetEndpointId() + { + return Properties.GetProperty(PropertyId::SpeechServiceConnection_EndpointId, SPXSTRING()); + } + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the recognizer will encounter errors during recognition. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + +private: + DISABLE_DEFAULT_CTORS(SourceLanguageRecognizer); + friend class Microsoft::CognitiveServices::Speech::Session; +}; +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_identification_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_identification_model.h new file mode 100644 index 0000000..786e3e7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_identification_model.h @@ -0,0 +1,77 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speaker_identification_model.h: Public API declarations for SpeakerIdentificationModel C++ class +// + +#pragma once +#include +#include +#include + +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Represents speaker identification model used with speaker recognition class. +/// Added in version 1.12.0 +/// +class SpeakerIdentificationModel : public std::enable_shared_from_this +{ +public: + + /// + /// Creates a speaker identification model using the voice profiles. + /// + /// a vector of voice profiles. + /// A shared pointer to speaker identification model. + static std::shared_ptr FromProfiles(const std::vector>& profiles) + { + SPXSIMODELHANDLE hsimodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speaker_identification_model_create(&hsimodel)); + for (auto& profile : profiles) + { + SPX_THROW_ON_FAIL(speaker_identification_model_add_profile(hsimodel, (SPXVOICEPROFILEHANDLE)(*profile))); + } + + return std::shared_ptr{ new SpeakerIdentificationModel(hsimodel) }; + } + + /// + /// Virtual destructor. + /// + virtual ~SpeakerIdentificationModel() { speaker_identification_model_release_handle(m_simodel); } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXSIMODELHANDLE() { return m_simodel; } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a speaker identification model using the provided handle. + /// + /// speaker identification handle. + explicit SpeakerIdentificationModel(SPXSIMODELHANDLE hsimodel = SPXHANDLE_INVALID) : m_simodel(hsimodel) { } + + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(SpeakerIdentificationModel); + + SPXSIMODELHANDLE m_simodel; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognition_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognition_result.h new file mode 100644 index 0000000..d37e643 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognition_result.h @@ -0,0 +1,236 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speaker_recognition_result.h: Public API declarations for SpeakerRecognitionResult C++ class +// + +#pragma once +#include +#include +#include + +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Represents speaker recognition result. +/// Added in 1.12.0 +/// +class SpeakerRecognitionResult +{ + +private: + + /// Internal member variable that holds the speakerRecognition result handle. + /// + SPXRESULTHANDLE m_hresult; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [hresult]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties associating to the speaker recognition result. + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Result handle. + explicit SpeakerRecognitionResult(SPXRESULTHANDLE hresult) : + m_hresult(hresult), + m_properties(hresult), + ResultId(m_resultId), + Reason(m_reason), + ProfileId(m_profileId), + Properties(m_properties), + m_profileId(Properties.GetProperty("speakerrecognition.profileid","")), + m_score(std::stof(Properties.GetProperty("speakerrecognition.score", "0.0"))) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + PopulateResultFields(hresult, &m_resultId, &m_reason); + } + + /// + /// Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + /// + /// Destructor. + /// + ~SpeakerRecognitionResult() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + recognizer_result_handle_release(m_hresult); + } + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Reason of the speaker recognition result. + /// + const ResultReason& Reason; + + /// + /// The profile id of the first verified/identified speaker. The rest of recognized speakers can be retrieved by parsing the json result string in the Properties. + /// + const SPXSTRING& ProfileId; + + /// + /// Collection of additional properties. + /// + const PropertyCollection& Properties; + + /// + /// Returns a similarity score. + /// + /// A float number indicating the similarity between input audio and targeted voice profile.This number is between 0 and 1. A higher number means higher similarity.< / returns> + double GetScore() const + { + return m_score; + } + +private: + + /*! \cond PRIVATE */ + + DISABLE_DEFAULT_CTORS(SpeakerRecognitionResult); + + void PopulateResultFields(SPXRESULTHANDLE hresult, SPXSTRING* resultId, Speech::ResultReason* reason) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 2048; + char sz[maxCharCount + 1] = {}; + + if (resultId != nullptr) + { + SPX_THROW_ON_FAIL(hr = result_get_result_id(hresult, sz, maxCharCount)); + *resultId = Utils::ToSPXString(sz); + } + + if (reason != nullptr) + { + Result_Reason resultReason; + SPX_THROW_ON_FAIL(hr = result_get_reason(hresult, &resultReason)); + *reason = (Speech::ResultReason)resultReason; + } + } + + SPXSTRING m_resultId; + ResultReason m_reason; + SPXSTRING m_profileId; + float m_score; + + /*! \endcond */ +}; + +/// +/// Represents the details of a canceled speaker recognition result. +/// +class SpeakerRecognitionCancellationDetails +{ +private: + + CancellationReason m_reason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Creates an instance of SpeakerRecognitionCancellationDetails object for the canceled speaker recognition result. + /// + /// The result that was canceled. + /// A shared pointer to SpeakerRecognitionCancellationDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + return std::shared_ptr { new SpeakerRecognitionCancellationDetails(result.get()) }; + } + + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful speaker recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful speaker recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +protected: + + /*! \cond PROTECTED */ + + SpeakerRecognitionCancellationDetails(SpeakerRecognitionResult* result) : + m_reason(GetCancellationReason(result)), + m_errorCode(GetCancellationErrorCode(result)), + Reason(m_reason), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonErrorDetails)) + { + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(SpeakerRecognitionCancellationDetails); + + + CancellationReason GetCancellationReason(SpeakerRecognitionResult* result) + { + Result_CancellationReason reason = CancellationReason_Error; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_reason_canceled(hresult, &reason)); + + return static_cast(reason); + } + + CancellationErrorCode GetCancellationErrorCode(SpeakerRecognitionResult* result) + { + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_canceled_error_code(hresult, &errorCode)); + + return static_cast(errorCode); + } +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognizer.h new file mode 100644 index 0000000..6922573 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_recognizer.h @@ -0,0 +1,142 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speaker_recognizer.h: Public API declarations for speaker recognizer C++ class +// + +#pragma once +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Perform speaker recognition. +/// Added in version 1.12.0 +/// +class SpeakerRecognizer : public std::enable_shared_from_this +{ +public: + + /// + /// Create a speaker recognizer from a speech config and audio config. + /// + /// A shared smart pointer of a speech config. + /// A shared smart pointer of a audio config. + /// A smart pointer wrapped speaker recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::shared_ptr audioInput) + { + SPXSPEAKERIDHANDLE hSpeakerRecognizerHandle; + SPX_THROW_ON_FAIL(::recognizer_create_speaker_recognizer_from_config( + &hSpeakerRecognizerHandle, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(audioInput))); + return std::shared_ptr{ new SpeakerRecognizer(hSpeakerRecognizerHandle) }; + } + + /// + /// Destructor. + /// + virtual ~SpeakerRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + ::speaker_recognizer_release_handle(m_hSpeakerRecognizer); + m_hSpeakerRecognizer = SPXHANDLE_INVALID; + } + + /// + /// Verify the speaker in the verification model. + /// + /// A shared smart pointer of a speaker verficiation model. + /// A smart pointer wrapped speaker recognition result future. + std::future> RecognizeOnceAsync(std::shared_ptr model) + { + return RunAsync(speaker_recognizer_verify, model); + } + + /// + /// Identify the speakers in the Speaker Identification Model. + /// + /// A shared smart pointer of a speaker identification model. + /// A smart pointer wrapped speaker recognition result future. + std::future> RecognizeOnceAsync(std::shared_ptr model) + { + return RunAsync(speaker_recognizer_identify, model); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// A Speaker Recognizer handle. + explicit SpeakerRecognizer(SPXSPEAKERIDHANDLE hSpeakerRecognizer) : + m_hSpeakerRecognizer(hSpeakerRecognizer), + m_properties(hSpeakerRecognizer), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /*! \endcond */ + +private: + + /*! \cond PRIVATE */ + + SPXSPEAKERIDHANDLE m_hSpeakerRecognizer; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXSPEAKERIDHANDLE hSpeakerRecognizer) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + speaker_recognizer_get_property_bag(hSpeakerRecognizer, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + template < class SpeakerModelPtrType, class SpeakerModelHandleType> + inline std::future> RunAsync(std::function func, std::shared_ptr model) + { + auto keepalive = this->shared_from_this(); + return std::async(std::launch::async, [keepalive, this, func, model]() + { + SPXRESULTHANDLE hResultHandle = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(func(m_hSpeakerRecognizer, (SpeakerModelHandleType)(*model), &hResultHandle)); + return std::shared_ptr { new SpeakerRecognitionResult{ hResultHandle } }; + }); + } + + /*! \endcond */ + +public: + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_verification_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_verification_model.h new file mode 100644 index 0000000..14ffd59 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speaker_verification_model.h @@ -0,0 +1,71 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speaker_verification_model.h: Public API declarations for SpeakerVerificationModel C++ class +// + +#pragma once +#include +#include + +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Represents speaker verification model used with speaker recognition class. +/// Added in version 1.12.0 +/// +class SpeakerVerificationModel : public std::enable_shared_from_this +{ +public: + + /// + /// Creates a speaker verification model using the voice profile. + /// + /// The voice profile. + /// A shared pointer to speaker verification model. + static std::shared_ptr FromProfile(std::shared_ptr profile) + { + SPXSVMODELHANDLE hsvmodel = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speaker_verification_model_create(&hsvmodel, (SPXVOICEPROFILEHANDLE)(*profile))); + return std::shared_ptr{ new SpeakerVerificationModel(hsvmodel) }; + } + + /// + /// Virtual destructor. + /// + virtual ~SpeakerVerificationModel() { speaker_verification_model_release_handle(m_svmodel); } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXSVMODELHANDLE() { return m_svmodel; } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance of speaker verification model using the provided handle. + /// + /// speaker verification model handle. + explicit SpeakerVerificationModel(SPXSIMODELHANDLE hsvmodel = SPXHANDLE_INVALID) : m_svmodel(hsvmodel) { } + + /*! \endcond */ + +private: + + DISABLE_COPY_AND_MOVE(SpeakerVerificationModel); + + SPXSVMODELHANDLE m_svmodel; +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_config.h new file mode 100644 index 0000000..b2f9db7 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_config.h @@ -0,0 +1,491 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_config.h: Public API declarations for SpeechConfig C++ class +// +#pragma once + +#include + +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +namespace Dialog { class DialogServiceConfig; } +class EmbeddedSpeechConfig; +class HybridSpeechConfig; + +/// +/// Class that defines configurations for speech / intent recognition, or speech synthesis. +/// +class SpeechConfig +{ +public: + friend Dialog::DialogServiceConfig; + friend EmbeddedSpeechConfig; + friend HybridSpeechConfig; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXSPEECHCONFIGHANDLE() const { return m_hconfig; } + + /// + /// Creates an instance of the speech config with specified subscription key and region. + /// + /// The subscription key. + /// The region name (see the region page). + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromSubscription(const SPXSTRING& subscription, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_subscription(&hconfig, Utils::ToUTF8(subscription).c_str(), Utils::ToUTF8(region).c_str())); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the speech config with specified authorization token and region. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// As configuration values are copied when creating a new recognizer, the new token value will not apply to recognizers that have already been created. + /// For recognizers that have been created before, you need to set authorization token of the corresponding recognizer + /// to refresh the token. Otherwise, the recognizers will encounter errors during recognition. + /// + /// The authorization token. + /// The region name (see the region page). + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromAuthorizationToken(const SPXSTRING& authToken, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_authorization_token(&hconfig, Utils::ToUTF8(authToken).c_str(), Utils::ToUTF8(region).c_str())); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the speech config with specified endpoint and subscription. + /// This method is intended only for users who use a non-standard service endpoint. + /// Note: The query parameters specified in the endpoint URI are not changed, even if they are set by any other APIs. + /// For example, if the recognition language is defined in URI as query parameter "language=de-DE", and also set by SetSpeechRecognitionLanguage("en-US"), + /// the language setting in URI takes precedence, and the effective language is "de-DE". + /// Only the parameters that are not specified in the endpoint URI can be set by other APIs. + /// Note: To use an authorization token with FromEndpoint, use FromEndpoint(const SPXSTRING&), + /// and then call SetAuthorizationToken() on the created SpeechConfig instance. + /// + /// The service endpoint to connect to. + /// The subscription key. + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromEndpoint(const SPXSTRING& endpoint, const SPXSTRING& subscription) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_endpoint(&hconfig, Utils::ToUTF8(endpoint).c_str(), Utils::ToUTF8(subscription).c_str())); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of SpeechConfig with specified endpoint. + /// This method is intended only for users who use a non-standard service endpoint. + /// Note: The query parameters specified in the endpoint URI are not changed, even if they are set by any other APIs. + /// Whether a specific query parameter is supported or not, depends on the endpoint and scenario. + /// For example, if the recognition language is defined in URI as query parameter "language=de-DE", and also set by SetSpeechRecognitionLanguage("en-US"), + /// the language setting in URI takes precedence, and the effective language is "de-DE". + /// The example only applies when the endpoint and scenario combination supports language as a query parameter. + /// Only the parameters that are not specified in the endpoint URI can be set by other APIs. + /// Note: If the endpoint requires a subscription key for authentication, use FromEndpoint(const SPXSTRING&, const SPXSTRING&) to pass + /// the subscription key as parameter. + /// To use an authorization token with FromEndpoint, use this method to create a SpeechConfig instance, and then + /// call SetAuthorizationToken() on the created SpeechConfig instance. + /// Note: Added in version 1.5.0. + /// + /// The service endpoint URI to connect to. + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromEndpoint(const SPXSTRING& endpoint) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_endpoint(&hconfig, Utils::ToUTF8(endpoint).c_str(), nullptr)); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of the speech config with specified host and subscription. + /// This method is intended only for users who use a non-default service host. Standard resource path will be assumed. + /// For services with a non-standard resource path or no path at all, use FromEndpoint instead. + /// Note: Query parameters are not allowed in the host URI and must be set by other APIs. + /// Note: To use an authorization token with FromHost, use FromHost(const SPXSTRING&), + /// and then call SetAuthorizationToken() on the created SpeechConfig instance. + /// Note: Added in version 1.8.0. + /// + /// The service host to connect to. Format is "protocol://host:port" where ":port" is optional. + /// The subscription key. + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromHost(const SPXSTRING& host, const SPXSTRING& subscription) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_host(&hconfig, Utils::ToUTF8(host).c_str(), Utils::ToUTF8(subscription).c_str())); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Creates an instance of SpeechConfig with specified host. + /// This method is intended only for users who use a non-default service host. Standard resource path will be assumed. + /// For services with a non-standard resource path or no path at all, use FromEndpoint instead. + /// Note: Query parameters are not allowed in the host URI and must be set by other APIs. + /// Note: If the host requires a subscription key for authentication, use FromHost(const SPXSTRING&, const SPXSTRING&) to pass + /// the subscription key as parameter. + /// To use an authorization token with FromHost, use this method to create a SpeechConfig instance, and then + /// call SetAuthorizationToken() on the created SpeechConfig instance. + /// Note: Added in version 1.8.0. + /// + /// The service host URI to connect to. Format is "protocol://host:port" where ":port" is optional. + /// A shared pointer to the new speech config instance. + static std::shared_ptr FromHost(const SPXSTRING& host) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_config_from_host(&hconfig, Utils::ToUTF8(host).c_str(), nullptr)); + + auto ptr = new SpeechConfig(hconfig); + return std::shared_ptr(ptr); + } + + /// + /// Set the input language to the speech recognizer. + /// + /// Specifies the name of spoken language to be recognized in BCP-47 format. + void SetSpeechRecognitionLanguage(const SPXSTRING& lang) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_RecoLanguage), nullptr, Utils::ToUTF8(lang).c_str()); + } + + /// + /// Gets the input language to the speech recognition. + /// The language is specified in BCP-47 format. + /// + /// The speech recognition language. + SPXSTRING GetSpeechRecognitionLanguage() const + { + return GetProperty(PropertyId::SpeechServiceConnection_RecoLanguage); + } + + /// + /// Sets the language of the speech synthesizer. + /// Added in version 1.4.0 + /// + /// Specifies the name of language (e.g. en-US) + void SetSpeechSynthesisLanguage(const SPXSTRING& lang) + { + SPX_THROW_ON_FAIL(property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_SynthLanguage), nullptr, Utils::ToUTF8(lang).c_str())); + } + + /// + /// Gets the language of the speech synthesizer. + /// Added in version 1.4.0 + /// + /// The speech synthesis language. + SPXSTRING GetSpeechSynthesisLanguage() const + { + return GetProperty(PropertyId::SpeechServiceConnection_SynthLanguage); + } + + /// + /// Set the voice of the speech synthesizer. + /// Added in version 1.4.0 + /// + /// Specifies the name of voice + void SetSpeechSynthesisVoiceName(const SPXSTRING& voiceName) + { + SPX_THROW_ON_FAIL(property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_SynthVoice), nullptr, Utils::ToUTF8(voiceName).c_str())); + } + + /// + /// Gets the voice of the speech synthesizer. + /// Added in version 1.4.0 + /// + /// The speech synthesis voice name. + SPXSTRING GetSpeechSynthesisVoiceName() const + { + return GetProperty(PropertyId::SpeechServiceConnection_SynthVoice); + } + + /// + /// Sets the speech synthesis output format (e.g. Riff16Khz16BitMonoPcm). + /// Added in version 1.4.0 + /// + /// Specifies the output format ID + void SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat formatId) + { + SPX_THROW_ON_FAIL(speech_config_set_audio_output_format(m_hconfig, static_cast(formatId))); + } + + /// + /// Gets the speech synthesis output format. + /// Added in version 1.4.0 + /// + /// The speech synthesis output format. + SPXSTRING GetSpeechSynthesisOutputFormat() const + { + return GetProperty(PropertyId::SpeechServiceConnection_SynthOutputFormat); + } + + /// + /// Sets the endpoint ID of Custom Speech or Custom Voice. + /// + /// Endpoint ID. + void SetEndpointId(const SPXSTRING& endpointId) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_EndpointId), nullptr, Utils::ToUTF8(endpointId).c_str()); + } + + /// + /// Gets the endpoint ID of Custom Speech or Custom Voice. + /// + /// Endpoint ID. + SPXSTRING GetEndpointId() const + { + return GetProperty(PropertyId::SpeechServiceConnection_EndpointId); + } + + /// + /// Sets the authorization token to connect to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// As configuration values are copied when creating a new recognizer, the new token value will not apply to recognizers that have already been created. + /// For recognizers that have been created before, you need to set authorization token of the corresponding recognizer + /// to refresh the token. Otherwise, the recognizers will encounter errors during recognition. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceAuthorization_Token), nullptr, Utils::ToUTF8(token).c_str()); + } + + /// + /// Gets the authorization token to connect to the service. + /// + /// The authorization token. + SPXSTRING GetAuthorizationToken() const + { + return GetProperty(PropertyId::SpeechServiceAuthorization_Token); + } + + /// + /// Gets the subscription key that is used to create Speech Recognizer or Intent Recognizer or Translation Recognizer or Speech Synthesizer. + /// + /// The subscription key. + SPXSTRING GetSubscriptionKey() const + { + return GetProperty(PropertyId::SpeechServiceConnection_Key); + } + + /// + /// Gets the region key that used to create Speech Recognizer or Intent Recognizer or Translation Recognizer or speech Synthesizer. + /// + /// Region. + SPXSTRING GetRegion() const + { + return GetProperty(PropertyId::SpeechServiceConnection_Region); + } + + /// + /// Gets speech recognition output format (simple or detailed). + /// Note: This output format is for speech recognition result, use to get synthesized audio output format. + /// + /// Speech recognition output format. + OutputFormat GetOutputFormat() const + { + auto result = GetProperty(PropertyId::SpeechServiceResponse_RequestDetailedResultTrueFalse); + return result == Utils::ToSPXString(TrueString) ? OutputFormat::Detailed : OutputFormat::Simple; + } + + /// + /// Sets speech recognition output format (simple or detailed). + /// Note: This output format is for speech recognition result, use to set synthesized audio output format. + /// + /// Speech recognition output format + void SetOutputFormat(OutputFormat format) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceResponse_RequestDetailedResultTrueFalse), nullptr, + format == OutputFormat::Detailed ? Utils::ToUTF8(TrueString) : Utils::ToUTF8(FalseString)); + } + + /// + /// Sets profanity option. + /// Added in version 1.5.0. + /// + /// Profanity option value. + void SetProfanity(ProfanityOption profanity) + { + SPX_THROW_ON_FAIL(speech_config_set_profanity(m_hconfig, (SpeechConfig_ProfanityOption)profanity)); + } + + /// + /// Enables audio logging in service. + /// Added in version 1.5.0. + /// + /// + /// Audio and content logs are stored either in Microsoft-owned storage, or in your own storage account linked + /// to your Cognitive Services subscription (Bring Your Own Storage (BYOS) enabled Speech resource). + /// + void EnableAudioLogging() + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_EnableAudioLogging), nullptr, TrueString); + } + + /// + /// Includes word-level timestamps in response result. + /// Added in version 1.5.0. + /// + void RequestWordLevelTimestamps() + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceResponse_RequestWordLevelTimestamps), nullptr, TrueString); + } + + /// + /// Enables dictation mode. Only supported in speech continuous recognition. + /// Added in version 1.5.0. + /// + void EnableDictation() + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_RecoMode), nullptr, "DICTATION"); + } + + /// + /// Sets proxy configuration + /// Added in version 1.1.0 + /// + /// Note: Proxy functionality is not available on macOS. This function will have no effect on this platform. + /// + /// The host name of the proxy server, without the protocol scheme (`http://`) + /// The port number of the proxy server + /// The user name of the proxy server + /// The password of the proxy server + void SetProxy(const SPXSTRING& proxyHostName, uint32_t proxyPort, const SPXSTRING& proxyUserName = SPXSTRING(), const SPXSTRING& proxyPassword = SPXSTRING()) + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, proxyHostName.empty()); + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, proxyPort == 0); + + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_ProxyHostName), nullptr, + Utils::ToUTF8(proxyHostName).c_str()); + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_ProxyPort), nullptr, + std::to_string(proxyPort).c_str()); + if (!proxyUserName.empty()) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_ProxyUserName), nullptr, + Utils::ToUTF8(proxyUserName).c_str()); + } + if (!proxyPassword.empty()) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_ProxyPassword), nullptr, + Utils::ToUTF8(proxyPassword).c_str()); + } + } + + /// + /// Sets a property value by name. + /// + /// The property name. + /// The property value. + void SetProperty(const SPXSTRING& name, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), Utils::ToUTF8(value).c_str()); + } + + /// + /// Gets a property value by name. + /// + /// The parameter name. + /// The property value. + SPXSTRING GetProperty(const SPXSTRING& name) const + { + const char* value = property_bag_get_string(m_propertybag, -1, Utils::ToUTF8(name).c_str(), ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + + /// + /// Gets a property value by ID. + /// + /// The parameter id. + /// The property value. + SPXSTRING GetProperty(PropertyId id) const + { + const char* value = property_bag_get_string(m_propertybag, static_cast(id), nullptr, ""); + return Utils::ToSPXString(Utils::CopyAndFreePropertyString(value)); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, static_cast(id), nullptr, Utils::ToUTF8(value).c_str()); + } + + /// + /// Sets a property value that will be passed to service using the specified channel. + /// Added in version 1.5.0. + /// + /// The property name. + /// The property value. + /// The channel used to pass the specified property to service. + void SetServiceProperty(const SPXSTRING& name, const SPXSTRING& value, ServicePropertyChannel channel) + { + SPX_THROW_ON_FAIL(speech_config_set_service_property(m_hconfig, Utils::ToUTF8(name).c_str(), Utils::ToUTF8(value).c_str(), (SpeechConfig_ServicePropertyChannel)channel)); + } + + /// + /// Destructs the object. + /// + virtual ~SpeechConfig() + { + speech_config_release(m_hconfig); + property_bag_release(m_propertybag); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit SpeechConfig(SPXSPEECHCONFIGHANDLE hconfig) + :m_hconfig(hconfig) + { + SPX_THROW_ON_FAIL(speech_config_get_property_bag(hconfig, &m_propertybag)); + } + + /// + /// Internal member variable that holds the speech config + /// + SPXSPEECHCONFIGHANDLE m_hconfig; + + /// + /// Internal member variable that holds the properties of the speech config + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + /*! \endcond */ + +private: + DISABLE_COPY_AND_MOVE(SpeechConfig); + + }; + +}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_eventargs.h new file mode 100644 index 0000000..f9106a6 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_eventargs.h @@ -0,0 +1,169 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_recognition_eventargs.h: Public API declarations for SpeechRecognitionEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Class for speech recognition event arguments. +/// +class SpeechRecognitionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechRecognitionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~SpeechRecognitionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(recognizer_event_handle_release(m_hevent)); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Speech recognition event result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Speech recognition event result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(SpeechRecognitionEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + + +/// +/// Class for speech recognition canceled event arguments. +/// +class SpeechRecognitionCanceledEventArgs final : public SpeechRecognitionEventArgs +{ +private: + + std::shared_ptr m_cancellation; + CancellationReason m_cancellationReason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechRecognitionCanceledEventArgs(SPXEVENTHANDLE hevent) : + SpeechRecognitionEventArgs(hevent), + m_cancellation(CancellationDetails::FromResult(GetResult())), + m_cancellationReason(m_cancellation->Reason), + m_errorCode(m_cancellation->ErrorCode), + Reason(m_cancellationReason), + ErrorCode(m_errorCode), + ErrorDetails(m_cancellation->ErrorDetails) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + virtual ~SpeechRecognitionCanceledEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// Added in version 1.1.0. + /// + const CancellationErrorCode& ErrorCode; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// CancellationDetails. + /// + std::shared_ptr GetCancellationDetails() const { return m_cancellation; } + +private: + + DISABLE_DEFAULT_CTORS(SpeechRecognitionCanceledEventArgs); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_model.h new file mode 100644 index 0000000..7f7bb70 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_model.h @@ -0,0 +1,108 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_recognition_model.h: Public API declarations for SpeechRecognitionModel C++ class +// + +#pragma once +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Speech recognition model information. +/// +class SpeechRecognitionModel +{ +private: + + /// + /// Internal member variable that holds the model handle. + /// + SPXSPEECHRECOMODELHANDLE m_hmodel; + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Model handle. + explicit SpeechRecognitionModel(SPXSPEECHRECOMODELHANDLE hmodel) : + m_hmodel(hmodel), + Name(m_name), + Locales(m_locales), + Path(m_path), + Version(m_version) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + m_name = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_recognition_model_get_name(m_hmodel))); + m_locales = Utils::Split(Utils::CopyAndFreePropertyString(speech_recognition_model_get_locales(m_hmodel)), '|'); + m_path = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_recognition_model_get_path(m_hmodel))); + m_version = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_recognition_model_get_version(m_hmodel))); + } + + /// + /// Explicit conversion operator. + /// + /// Model handle. + explicit operator SPXSPEECHRECOMODELHANDLE() { return m_hmodel; } + + /// + /// Destructor. + /// + ~SpeechRecognitionModel() + { + speech_recognition_model_handle_release(m_hmodel); + } + + /// + /// Model name. + /// + const SPXSTRING& Name; + + /// + /// Locales of the model in BCP-47 format. + /// + const std::vector& Locales; + + /// + /// Model path (only valid for offline models). + /// + const SPXSTRING& Path; + + /// + /// Model version. + /// + const SPXSTRING& Version; + +private: + + DISABLE_DEFAULT_CTORS(SpeechRecognitionModel); + + /// + /// Internal member variable that holds the model name. + /// + SPXSTRING m_name; + + /// + /// Internal member variable that holds the model locales. + /// + std::vector m_locales; + + /// + /// Internal member variable that holds the model path. + /// + SPXSTRING m_path; + + /// + /// Internal member variable that holds the model version. + /// + SPXSTRING m_version; +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_result.h new file mode 100644 index 0000000..24f0f37 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognition_result.h @@ -0,0 +1,45 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_recognition_result.h: Public API declarations for SpeechRecognitionResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Base class for speech recognition results. +/// +class SpeechRecognitionResult : public RecognitionResult +{ +public: + + explicit SpeechRecognitionResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s; reason=0x%x; text=%s", __FUNCTION__, (void*)this, (void*)Handle, Utils::ToUTF8(ResultId).c_str(), Reason, Utils::ToUTF8(Text).c_str()); + } + + virtual ~SpeechRecognitionResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)Handle); + } + + +private: + DISABLE_DEFAULT_CTORS(SpeechRecognitionResult); +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognizer.h new file mode 100644 index 0000000..1c4e122 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_recognizer.h @@ -0,0 +1,351 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_recognizer.h: Public API declarations for SpeechRecognizer C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +class Session; + +/// +/// Class for speech recognizers. +/// +class SpeechRecognizer final : public AsyncRecognizer +{ +public: + + using BaseType = AsyncRecognizer; + + /// + /// Create a speech recognizer from a speech config + /// + /// Speech configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from an embedded speech config. + /// Added in version 1.19.0 + /// + /// Embedded speech configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a hybrid speech config. + /// + /// Hybrid speech configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a speech config and audio config. + /// + /// Speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from an embedded speech config and audio config. + /// Added in version 1.19.0 + /// + /// Embedded speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioConfig = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioConfig))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a hybrid speech config and audio config. + /// + /// Hybrid speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioConfig = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioConfig))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a speech config, auto detection source language config and audio config + /// Added in 1.8.0 + /// + /// Speech configuration. + /// Auto detection source language config. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from an embedded speech config, auto detection source language config and audio config + /// Added in 1.20.0 + /// + /// Embedded speech configuration. + /// Auto detection source language config. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a hybrid speech config, auto detection source language config and audio config + /// + /// Hybrid speech configuration. + /// Auto detection source language config. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a speech config, source language config and audio config + /// Added in 1.8.0 + /// + /// Speech configuration. + /// Source language config. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr sourceLanguageConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_speech_recognizer_from_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(sourceLanguageConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a speech recognizer from a speech config, source language and audio config + /// Added in 1.8.0 + /// + /// Speech configuration. + /// Source language. + /// Audio configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + const SPXSTRING& sourceLanguage, + std::shared_ptr audioInput = nullptr) + { + return FromConfig(speechconfig, SourceLanguageConfig::FromLanguage(sourceLanguage), audioInput); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit SpeechRecognizer(SPXRECOHANDLE hreco) : BaseType(hreco), Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + ~SpeechRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + TermRecognizer(); + } + + /// + /// Starts speech recognition, and returns after a single utterance is recognized. The end of a + /// single utterance is determined by listening for silence at the end or until a maximum of about 30 + /// seconds of audio is processed. The task returns the recognition text as result. + /// Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + /// shot recognition like command or query. + /// For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + /// + /// Future containing result value (a shared pointer to SpeechRecognitionResult) + /// of the asynchronous speech recognition. + /// + std::future> RecognizeOnceAsync() override + { + return BaseType::RecognizeOnceAsyncInternal(); + } + + /// + /// Asynchronously initiates continuous speech recognition operation. + /// + /// An empty future. + std::future StartContinuousRecognitionAsync() override + { + return BaseType::StartContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously terminates ongoing continuous speech recognition operation. + /// + /// An empty future. + std::future StopContinuousRecognitionAsync() override + { + return BaseType::StopContinuousRecognitionAsyncInternal(); + } + + /// + /// Asynchronously initiates keyword recognition operation. + /// + /// Specifies the keyword model to be used. + /// An empty future. + std::future StartKeywordRecognitionAsync(std::shared_ptr model) override + { + return BaseType::StartKeywordRecognitionAsyncInternal(model); + } + + /// + /// Asynchronously terminates keyword recognition operation. + /// + /// An empty future. + std::future StopKeywordRecognitionAsync() override + { + return BaseType::StopKeywordRecognitionAsyncInternal(); + } + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Gets the endpoint ID of a customized speech model that is used for speech recognition. + /// + /// the endpoint ID of a customized speech model that is used for speech recognition + SPXSTRING GetEndpointId() + { + return Properties.GetProperty(PropertyId::SpeechServiceConnection_EndpointId, SPXSTRING()); + } + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the recognizer will encounter errors during recognition. + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + +private: + DISABLE_DEFAULT_CTORS(SpeechRecognizer); + friend class Microsoft::CognitiveServices::Speech::Session; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_bookmark_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_bookmark_eventargs.h new file mode 100644 index 0000000..46535e8 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_bookmark_eventargs.h @@ -0,0 +1,81 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class for speech synthesis bookmark event arguments. +/// Added in version 1.16.0 +/// +class SpeechSynthesisBookmarkEventArgs : public EventArgs +{ +private: + + SPXEVENTHANDLE m_hEvent; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechSynthesisBookmarkEventArgs(SPXEVENTHANDLE hevent) : + m_hEvent(hevent), + ResultId(m_resultId), + Text(m_text) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + synthesizer_bookmark_event_get_values(hevent, &m_audioOffset); + AudioOffset = m_audioOffset; + + m_text = Utils::ToSPXString(Utils::CopyAndFreePropertyString(synthesizer_event_get_text(hevent))); + + const size_t maxCharCount = 256; + char sz[maxCharCount + 1]; + SPX_THROW_ON_FAIL(synthesizer_event_get_result_id(hevent, sz, maxCharCount)); + m_resultId = Utils::ToSPXString(sz); + }; + + /// + virtual ~SpeechSynthesisBookmarkEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + SPX_THROW_ON_FAIL(synthesizer_event_handle_release(m_hEvent)); + } + + /// + /// Unique result id. + /// Added in version 1.25.0 + /// + const SPXSTRING& ResultId; + + /// + /// Audio offset, in ticks (100 nanoseconds). + /// + uint64_t AudioOffset; + + /// + /// The bookmark text. + /// + const SPXSTRING& Text; + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisBookmarkEventArgs); + + SPXSTRING m_resultId; + uint64_t m_audioOffset{ 0 }; + SPXSTRING m_text; +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_eventargs.h new file mode 100644 index 0000000..b6d8321 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_eventargs.h @@ -0,0 +1,70 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_synthesis_eventargs.h: Public API declarations for SpeechSynthesisEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Class for speech synthesis event arguments. +/// Added in version 1.4.0 +/// +class SpeechSynthesisEventArgs : public EventArgs +{ +private: + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechSynthesisEventArgs(SPXEVENTHANDLE hevent) : + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + virtual ~SpeechSynthesisEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + SPX_THROW_ON_FAIL(synthesizer_event_handle_release(m_hevent)); + } + + /// + /// Speech synthesis event result. + /// + std::shared_ptr Result; + + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(synthesizer_synthesis_event_get_result(hevent, &hresult)); + return hresult; + } + +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_request.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_request.h new file mode 100644 index 0000000..4441a27 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_request.h @@ -0,0 +1,271 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_config.h: Public API declarations for SpeechConfig C++ class +// +#pragma once + +#include + +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class that defines the speech synthesis request. +/// This class is in preview and is subject to change. +/// Added in version 1.37.0 +/// +class SpeechSynthesisRequest +{ +public: + + /// + /// Represents an input stream for speech synthesis request. + /// Note: This class is in preview and may be subject to change in future versions. + /// Added in version 1.37.0 + /// + class InputStream + { + public: + friend class SpeechSynthesisRequest; + /// + /// Send a piece of text to the speech synthesis service to be synthesized. + /// + /// The text piece to be synthesized. + void Write(const SPXSTRING &text) + { + m_parent.SendTextPiece(text); + } + + /// + /// Finish the text input. + /// + void Close() + { + m_parent.FinishInput(); + } + + private: + InputStream(SpeechSynthesisRequest& parent) + : m_parent(parent) + { + } + SpeechSynthesisRequest& m_parent; + DISABLE_COPY_AND_MOVE(InputStream); + }; + + /// + /// Internal operator used to get underlying handle value. + /// + /// A handle. + explicit operator SPXREQUESTHANDLE() const { return m_hrequest; } + + /// + /// Creates a speech synthesis request, with text streaming is enabled. + /// + /// A shared pointer to the new speech synthesis request instance. + static std::shared_ptr NewTextStreamingRequest() + { + SPXREQUESTHANDLE hrequest = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_synthesis_request_create(true, false, nullptr, 0, &hrequest)); + + auto ptr = new SpeechSynthesisRequest(hrequest); + return std::shared_ptr(ptr); + } + + /// + /// Gets the input stream for the speech synthesis request. + /// + /// The input stream. + InputStream& GetInputStream() + { + return m_inputStream; + } + + /// + /// Sets the pitch of the synthesized speech. + /// + /// The pitch of the synthesized speech. + void SetPitch(const SPXSTRING& pitch) { + SetProperty(PropertyId::SpeechSynthesisRequest_Pitch, pitch); + } + + /// + /// Set the speaking rate. + /// + /// The speaking rate. + void SetRate(const SPXSTRING& rate) { + SetProperty(PropertyId::SpeechSynthesisRequest_Rate, rate); + } + + /// + /// Set the speaking volume. + /// + /// The speaking volume. + void SetVolume(const SPXSTRING& volume) { + SetProperty(PropertyId::SpeechSynthesisRequest_Volume, volume); + } + + /// + /// Set the speaking style. + /// + /// The speaking style. + void SetStyle(const SPXSTRING& style) { + SetProperty(PropertyId::SpeechSynthesisRequest_Style, style); + } + + /// + /// Set the speaking temperature. + /// + /// The speaking temperature. + void SetTemperature(const float temperature) { + SetProperty(PropertyId::SpeechSynthesisRequest_Temperature, std::to_string(temperature)); + } + + /// + /// Set the custom lexicon URL. + /// + /// URL to a custom pronunciation lexicon. + void SetCustomLexiconUrl(const SPXSTRING& customLexiconUrl) { + SetProperty(PropertyId::SpeechSynthesisRequest_CustomLexiconUrl, customLexiconUrl); + } + + /// + /// Set the preferred locales for speech synthesis. + /// + /// Comma-separated list of locale names in order of preference. + void SetPreferLocales(const SPXSTRING& preferLocales) { + SetProperty(PropertyId::SpeechSynthesisRequest_PreferLocales, preferLocales); + } + + /// + /// Destructs the object. + /// + virtual ~SpeechSynthesisRequest() + { + speech_synthesis_request_release(m_hrequest); + property_bag_release(m_propertybag); + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit SpeechSynthesisRequest(SPXREQUESTHANDLE hrequest) + :m_hrequest(hrequest), + m_inputStream(*this) + { + SPX_THROW_ON_FAIL(speech_synthesis_request_get_property_bag(hrequest, &m_propertybag)); + } + + /// + /// Internal member variable that holds the speech synthesis request handle. + /// + SPXREQUESTHANDLE m_hrequest; + + /// + /// Internal member variable that holds the properties of the speech synthesis request. + /// + SPXPROPERTYBAGHANDLE m_propertybag; + + InputStream m_inputStream; + + /// + /// Send a piece of text to the speech synthesis service to be synthesized, used in text streaming mode. + /// + /// The text piece to be synthesized. + void SendTextPiece(const SPXSTRING& text) + { + auto u8text = Utils::ToUTF8(text); + SPX_THROW_ON_FAIL(speech_synthesis_request_send_text_piece(m_hrequest, u8text.c_str(), static_cast(u8text.length()))); + } + + /// + /// Finish the text input, used in text streaming mode. + /// + void FinishInput() + { + SPX_THROW_ON_FAIL(speech_synthesis_request_finish(m_hrequest)); + } + + /// + /// Sets a property value by ID. + /// + /// The property id. + /// The property value. + void SetProperty(PropertyId id, const SPXSTRING& value) + { + property_bag_set_string(m_propertybag, static_cast(id), nullptr, Utils::ToUTF8(value).c_str()); + } + + /*! \endcond */ + +private: + DISABLE_COPY_AND_MOVE(SpeechSynthesisRequest); + + + +}; + +/// +/// Class that defines the speech synthesis request for personal voice (aka.ms/azureai/personal-voice). +/// This class is in preview and is subject to change. +/// Added in version 1.39.0 +/// +class PersonalVoiceSynthesisRequest: public SpeechSynthesisRequest +{ +public: + + /// + /// Creates a personal voice speech synthesis request, with text streaming is enabled. + /// + /// The name of the personal voice to be used for synthesis. + /// The name of the model. E.g., DragonLatestNeural or PhoenixLatestNeural + /// A shared pointer to the new speech synthesis request instance. + static std::shared_ptr NewTextStreamingRequest(const std::string& personalVoiceName, const std::string& modelName) + { + SPXREQUESTHANDLE hrequest = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_synthesis_request_create(true, false, nullptr, 0, &hrequest)); + + SPX_THROW_ON_FAIL(speech_synthesis_request_set_voice(hrequest, nullptr, personalVoiceName.c_str(), modelName.c_str())); + + auto ptr = new PersonalVoiceSynthesisRequest(hrequest); + return std::shared_ptr(ptr); + } + + /// + /// Destructs the object. + /// + virtual ~PersonalVoiceSynthesisRequest() + { + + } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit PersonalVoiceSynthesisRequest(SPXREQUESTHANDLE hrequest) + :SpeechSynthesisRequest(hrequest) + {} + + /*! \endcond */ + +private: + DISABLE_COPY_AND_MOVE(PersonalVoiceSynthesisRequest); + +}; + +}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_result.h new file mode 100644 index 0000000..145e6ec --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_result.h @@ -0,0 +1,310 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_synthesis_result.h: Public API declarations for SpeechSynthesisResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Contains information about result from text-to-speech synthesis. +/// Added in version 1.4.0 +/// +class SpeechSynthesisResult +{ +private: + + /// + /// Internal member variable that holds the tts result handle. + /// + SPXRESULTHANDLE m_hresult; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + synth_result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties associating to the tts result. + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Result handle. + explicit SpeechSynthesisResult(SPXRESULTHANDLE hresult) : + m_hresult(hresult), + m_properties(hresult), + ResultId(m_resultId), + Reason(m_reason), + AudioDuration(m_audioDuration), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + const size_t maxCharCount = 1024; + char sz[maxCharCount + 1]; + + SPX_THROW_ON_FAIL(synth_result_get_result_id(hresult, sz, maxCharCount)); + m_resultId = Utils::ToSPXString(sz); + + Result_Reason resultReason; + SPX_THROW_ON_FAIL(synth_result_get_reason(hresult, &resultReason)); + m_reason = static_cast(resultReason); + + uint32_t audioLength = 0; + uint64_t audioDuration = 0; + SPX_THROW_ON_FAIL(synth_result_get_audio_length_duration(m_hresult, &audioLength, &audioDuration)); + m_audioDuration = std::chrono::milliseconds(audioDuration); + + m_audioData = std::make_shared>(audioLength); + + if (audioLength > 0) + { + uint32_t filledSize = 0; + SPX_THROW_ON_FAIL(synth_result_get_audio_data(m_hresult, m_audioData->data(), audioLength, &filledSize)); + } + } + + /// + /// Gets the size of synthesized audio in bytes. + /// + /// Length of synthesized audio + uint32_t GetAudioLength() + { + return static_cast(m_audioData->size()); + } + + /// + /// Gets the synthesized audio. + /// + /// Synthesized audio data + std::shared_ptr> GetAudioData() + { + return m_audioData; + } + + /// + /// Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + /// + /// Destructor. + /// + ~SpeechSynthesisResult() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + synthesizer_result_handle_release(m_hresult); + } + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Reason of the synthesis result. + /// + const ResultReason& Reason; + + /// + /// Time duration of the synthesized audio, only valid for completed synthsis. + /// Added in version 1.21.0 + /// + const std::chrono::milliseconds& AudioDuration; + + /// + /// Collection of additional SpeechSynthesisResult properties. + /// + const PropertyCollection& Properties; + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisResult); + + /// + /// Internal member variable that holds the result ID. + /// + SPXSTRING m_resultId; + + /// + /// Internal member variable that holds the result reason. + /// + ResultReason m_reason; + + /// + /// Internal member variable that holds the audio data + /// + std::shared_ptr> m_audioData; + + /// + /// Internal member variable that holds the audio duration + // + std::chrono::milliseconds m_audioDuration; +}; + + +/// +/// Contains detailed information about why a result was canceled. +/// Added in version 1.4.0 +/// +class SpeechSynthesisCancellationDetails +{ +private: + + CancellationReason m_reason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Creates an instance of SpeechSynthesisCancellationDetails object for the canceled SpeechSynthesisResult. + /// + /// The result that was canceled. + /// A shared pointer to CancellationDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + auto ptr = new SpeechSynthesisCancellationDetails(result.get()); + auto cancellation = std::shared_ptr(ptr); + return cancellation; + } + + /// + /// Creates an instance of SpeechSynthesisCancellationDetails object for the canceled SpeechSynthesisResult. + /// + /// The audio data stream that was canceled. + /// A shared pointer to CancellationDetails. + static std::shared_ptr FromStream(std::shared_ptr stream) + { + auto ptr = new SpeechSynthesisCancellationDetails(stream.get()); + auto cancellation = std::shared_ptr(ptr); + return cancellation; + } + + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful speech synthesis ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful speech synthesis ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisCancellationDetails); + + SpeechSynthesisCancellationDetails(SpeechSynthesisResult* result) : + m_reason(GetCancellationReason(result)), + m_errorCode(GetCancellationErrorCode(result)), + Reason(m_reason), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::CancellationDetails_ReasonDetailedText)) + { + } + + SpeechSynthesisCancellationDetails(AudioDataStream* stream) : + m_reason(GetCancellationReason(stream)), + m_errorCode(GetCancellationErrorCode(stream)), + Reason(m_reason), + ErrorCode(m_errorCode), + ErrorDetails(stream->Properties.GetProperty(PropertyId::CancellationDetails_ReasonDetailedText)) + { + } + + Speech::CancellationReason GetCancellationReason(SpeechSynthesisResult* result) + { + Result_CancellationReason reason = CancellationReason_Error; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(synth_result_get_reason_canceled(hresult, &reason)); + + return static_cast(reason); + } + + Speech::CancellationErrorCode GetCancellationErrorCode(SpeechSynthesisResult* result) + { + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(synth_result_get_canceled_error_code(hresult, &errorCode)); + + return static_cast(errorCode); + } + + Speech::CancellationReason GetCancellationReason(AudioDataStream* stream) + { + Result_CancellationReason reason = CancellationReason_Error; + + SPXAUDIOSTREAMHANDLE hstream = (SPXAUDIOSTREAMHANDLE)(*stream); + SPX_IFFAILED_THROW_HR(audio_data_stream_get_reason_canceled(hstream, &reason)); + + return static_cast(reason); + } + + Speech::CancellationErrorCode GetCancellationErrorCode(AudioDataStream* stream) + { + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXAUDIOSTREAMHANDLE hstream = (SPXAUDIOSTREAMHANDLE)(*stream); + SPX_IFFAILED_THROW_HR(audio_data_stream_get_canceled_error_code(hstream, &errorCode)); + + return static_cast(errorCode); + } +}; + +inline std::shared_ptr AudioDataStream::FromResult(std::shared_ptr result) +{ + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + if (result != nullptr) + { + hresult = (SPXRESULTHANDLE)(*result.get()); + } + + SPXAUDIOSTREAMHANDLE hstream = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(audio_data_stream_create_from_result(&hstream, hresult)); + + auto stream = new AudioDataStream(hstream); + return std::shared_ptr(stream); +} + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_viseme_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_viseme_eventargs.h new file mode 100644 index 0000000..726b95f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_viseme_eventargs.h @@ -0,0 +1,88 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class for speech synthesis viseme event arguments. +/// Added in version 1.16.0 +/// +class SpeechSynthesisVisemeEventArgs : public EventArgs +{ +private: + + SPXEVENTHANDLE m_hEvent; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechSynthesisVisemeEventArgs(SPXEVENTHANDLE hevent) : + m_hEvent(hevent), + ResultId(m_resultId), + Animation(m_animation) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + synthesizer_viseme_event_get_values(hevent, &m_audioOffset, &m_visemeId); + AudioOffset = m_audioOffset; + VisemeId = m_visemeId; + + m_animation = Utils::ToSPXString(Utils::CopyAndFreePropertyString(synthesizer_viseme_event_get_animation(hevent))); + + const size_t maxCharCount = 256; + char sz[maxCharCount + 1]; + SPX_THROW_ON_FAIL(synthesizer_event_get_result_id(hevent, sz, maxCharCount)); + m_resultId = Utils::ToSPXString(sz); + }; + + /// + virtual ~SpeechSynthesisVisemeEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + SPX_THROW_ON_FAIL(synthesizer_event_handle_release(m_hEvent)); + } + + /// + /// Unique result id. + /// Added in version 1.25.0 + /// + const SPXSTRING& ResultId; + + /// + /// Audio offset, in ticks (100 nanoseconds). + /// + uint64_t AudioOffset; + + /// + /// Viseme ID. + /// + uint32_t VisemeId; + + /// + /// Animation, could be svg or other format. + /// + const SPXSTRING& Animation; + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisVisemeEventArgs); + + SPXSTRING m_resultId; + uint64_t m_audioOffset{ 0 }; + uint32_t m_visemeId { 0 }; + SPXSTRING m_animation; +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_word_boundary_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_word_boundary_eventargs.h new file mode 100644 index 0000000..c44fe60 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesis_word_boundary_eventargs.h @@ -0,0 +1,120 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_synthesis_word_boundary_eventargs.h: Public API declarations for SpeechSynthesisWordBoundaryEventArgs C++ class +// + +#pragma once +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + + +/// +/// Class for speech synthesis word boundary event arguments. +/// Added in version 1.7.0 +/// +class SpeechSynthesisWordBoundaryEventArgs : public EventArgs +{ +private: + + SPXEVENTHANDLE m_hEvent; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit SpeechSynthesisWordBoundaryEventArgs(SPXEVENTHANDLE hevent) : + m_hEvent(hevent), + ResultId(m_resultId), + Duration(m_duration), + Text(m_text), + BoundaryType(m_boundaryType) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + uint64_t durationTicks; + SpeechSynthesis_BoundaryType boundaryType = SpeechSynthesis_BoundaryType_Word; + synthesizer_word_boundary_event_get_values(hevent, &m_audioOffset, &durationTicks, &m_textOffset, &m_wordLength, &boundaryType); + m_duration = std::chrono::milliseconds(durationTicks / static_cast(10000)); + m_boundaryType = static_cast(boundaryType); + AudioOffset = m_audioOffset; + TextOffset = m_textOffset; + WordLength = m_wordLength; + m_text = Utils::ToSPXString(Utils::CopyAndFreePropertyString(synthesizer_event_get_text(hevent))); + + const size_t maxCharCount = 256; + char sz[maxCharCount + 1]; + SPX_THROW_ON_FAIL(synthesizer_event_get_result_id(hevent, sz, maxCharCount)); + m_resultId = Utils::ToSPXString(sz); + }; + + /// + virtual ~SpeechSynthesisWordBoundaryEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hEvent); + SPX_THROW_ON_FAIL(synthesizer_event_handle_release(m_hEvent)); + } + + /// + /// Unique result id. + /// Added in version 1.25.0 + /// + const SPXSTRING& ResultId; + + /// + /// Word boundary audio offset. + /// + uint64_t AudioOffset; + + /// + /// Time duration of the audio. + /// Added in version 1.21.0 + /// + const std::chrono::milliseconds& Duration; + + /// + /// Word boundary text offset. + /// + uint32_t TextOffset; + + /// + /// Word boundary word length. + /// + uint32_t WordLength; + + /// + /// The text. + /// Added in version 1.21.0 + /// + const SPXSTRING& Text; + + /// + /// Word boundary type. + /// Added in version 1.21.0 + /// + const SpeechSynthesisBoundaryType& BoundaryType; + +private: + + DISABLE_DEFAULT_CTORS(SpeechSynthesisWordBoundaryEventArgs); + + SPXSTRING m_resultId; + uint64_t m_audioOffset{ 0 }; + std::chrono::milliseconds m_duration{ 0 }; + uint32_t m_textOffset{ 0 }; + uint32_t m_wordLength{ 0 }; + SPXSTRING m_text; + SpeechSynthesisBoundaryType m_boundaryType{ SpeechSynthesisBoundaryType::Word }; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesizer.h new file mode 100644 index 0000000..b3d119f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_synthesizer.h @@ -0,0 +1,793 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_synthesizer.h: Public API declarations for SpeechSynthesizer C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Class for speech synthesizer. +/// Updated in version 1.14.0 +/// +class SpeechSynthesizer : public std::enable_shared_from_this +{ + friend class Connection; +private: + + /// + /// Internal member variable that holds the speech synthesizer handle. + /// + SPXSYNTHHANDLE m_hsynth; + + std::shared_ptr m_audioConfig; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXSYNTHHANDLE hsynth) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + synthesizer_get_property_bag(hsynth, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties of the speech synthesizer + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Create a speech synthesizer from a speech config. + /// + /// Speech configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + SPXHANDLE_INVALID)); + + auto ptr = new SpeechSynthesizer(hsynth); + return std::shared_ptr(ptr); + } + + /// + /// Create a speech synthesizer from an embedded speech config. + /// Added in version 1.19.0 + /// + /// Embedded speech configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + SPXHANDLE_INVALID)); + auto ptr = new SpeechSynthesizer(hsynth); + return std::shared_ptr(ptr); + } + + /// + /// Create a speech synthesizer from a hybrid speech config. + /// + /// Hybrid speech configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + SPXHANDLE_INVALID)); + auto ptr = new SpeechSynthesizer(hsynth); + return std::shared_ptr(ptr); + } + + /// + /// Create a speech synthesizer from a speech config and audio config. + /// + /// Speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr audioconfig = Audio::AudioConfig::FromDefaultSpeakerOutput()) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(audioconfig))); + + auto ptr = new SpeechSynthesizer(hsynth); + auto synthesizer = std::shared_ptr(ptr); + synthesizer->m_audioConfig = audioconfig; + return synthesizer; + } + + /// + /// Create a speech synthesizer from an embedded speech config and audio config. + /// Added in version 1.19.0 + /// + /// Embedded speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr audioconfig = Audio::AudioConfig::FromDefaultSpeakerOutput()) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(audioconfig))); + auto ptr = new SpeechSynthesizer(hsynth); + auto synthesizer = std::shared_ptr(ptr); + synthesizer->m_audioConfig = audioconfig; + return synthesizer; + } + + /// + /// Create a speech synthesizer from a hybrid speech config and audio config. + /// + /// Hybrid speech configuration. + /// Audio configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr audioconfig = Audio::AudioConfig::FromDefaultSpeakerOutput()) + { + SPXSYNTHHANDLE hsynth = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(audioconfig))); + auto ptr = new SpeechSynthesizer(hsynth); + auto synthesizer = std::shared_ptr(ptr); + synthesizer->m_audioConfig = audioconfig; + return synthesizer; + } + + /// + /// Create a speech synthesizer from a speech config, auto detection source language config and audio config + /// Added in 1.13.0 + /// + /// Speech configuration. + /// Auto detection source language config. + /// Audio configuration. + /// A smart pointer wrapped speech synthesizer pointer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioconfig = Audio::AudioConfig::FromDefaultSpeakerOutput()) + { + SPXSYNTHHANDLE hsynth; + + SPX_THROW_ON_FAIL(::synthesizer_create_speech_synthesizer_from_auto_detect_source_lang_config( + &hsynth, + Utils::HandleOrInvalid(speechconfig), + Utils::HandleOrInvalid(autoDetectSourceLangConfig), + Utils::HandleOrInvalid(audioconfig))); + + auto ptr = new SpeechSynthesizer(hsynth); + auto synthesizer = std::shared_ptr(ptr); + synthesizer->m_audioConfig = audioconfig; + return synthesizer; + } + + /// + /// Execute the speech synthesis on plain text, synchronously. + /// + /// The plain text for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr SpeakText(const std::string& text) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_text(m_hsynth, text.data(), static_cast(text.length()), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Execute the speech synthesis on plain text, synchronously. + /// Added in 1.9.0 + /// + /// The plain text for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr SpeakText(const std::wstring& text) + { + return SpeakText(Utils::ToUTF8(text)); + } + + /// + /// Execute the speech synthesis on SSML, synchronously. + /// + /// The SSML for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr SpeakSsml(const std::string& ssml) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_ssml(m_hsynth, ssml.data(), static_cast(ssml.length()), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Execute the speech synthesis on SSML, synchronously. + /// Added in version 1.9.0 + /// + /// The SSML for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr SpeakSsml(const std::wstring& ssml) + { + return SpeakSsml(Utils::ToUTF8(ssml)); + } + + /// + /// Execute the speech synthesis on request, synchronously. + /// This API could be used to synthesize speech from an input text stream, to reduce latency for text generation scenarios. + /// Note: the feature is in preview and is subject to change. + /// Added in version 1.37.0 + /// + /// The synthesis request. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr Speak(const std::shared_ptr& request) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_request(m_hsynth, Utils::HandleOrInvalid(request), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Execute the speech synthesis on plain text, asynchronously. + /// + /// The plain text for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> SpeakTextAsync(const std::string& text) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, text]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_text_async(m_hsynth, text.data(), static_cast(text.length()), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_speak_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Execute the speech synthesis on plain text, asynchronously. + /// Added in version 1.9.0 + /// + /// The plain text for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> SpeakTextAsync(const std::wstring& text) + { + return SpeakTextAsync(Utils::ToUTF8(text)); + } + + /// + /// Execute the speech synthesis on SSML, asynchronously. + /// + /// The SSML for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> SpeakSsmlAsync(const std::string& ssml) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, ssml]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_ssml_async(m_hsynth, ssml.data(), static_cast(ssml.length()), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_speak_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Execute the speech synthesis on SSML, asynchronously. + /// Added in version 1.9.0 + /// + /// The SSML for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> SpeakSsmlAsync(const std::wstring& ssml) + { + return SpeakSsmlAsync(Utils::ToUTF8(ssml)); + } + + /// + /// Execute the speech synthesis on on request, synchronously. + /// This API could be used to synthesize speech from an input text stream, to reduce latency for text generation scenarios. + /// Note: the feature is in preview and is subject to change. + /// Added in version 1.37.0 + /// + /// The synthesis request. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> SpeakAsync(const std::shared_ptr& request) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, request]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_speak_request_async(m_hsynth, Utils::HandleOrInvalid(request), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_speak_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Start the speech synthesis on plain text, synchronously. + /// + /// The plain text for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr StartSpeakingText(const std::string& text) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_start_speaking_text(m_hsynth, text.data(), static_cast(text.length()), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Start the speech synthesis on plain text, synchronously. + /// Added in version 1.9.0 + /// + /// The plain text for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr StartSpeakingText(const std::wstring& text) + { + return StartSpeakingText(Utils::ToUTF8(text)); + } + + /// + /// Start the speech synthesis on SSML, synchronously. + /// + /// The SSML for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr StartSpeakingSsml(const std::string& ssml) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_start_speaking_ssml(m_hsynth, ssml.data(), static_cast(ssml.length()), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Start the speech synthesis on SSML, synchronously. + /// Added in version 1.9.0 + /// + /// The SSML for synthesis. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr StartSpeakingSsml(const std::wstring& ssml) + { + return StartSpeakingSsml(Utils::ToUTF8(ssml)); + } + + /// + /// Start the speech synthesis on on request, synchronously. + /// This API could be used to synthesize speech from an input text stream, to reduce latency for text generation scenarios. + /// Note: the feature is in preview and is subject to change. + /// Added in version 1.37.0 + /// + /// The synthesis request. + /// A smart pointer wrapping a speech synthesis result. + std::shared_ptr StartSpeaking(const std::shared_ptr& request) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_start_speaking_request(m_hsynth, Utils::HandleOrInvalid(request), &hresult)); + + return std::make_shared(hresult); + } + + /// + /// Start the speech synthesis on plain text, asynchronously. + /// + /// The plain text for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> StartSpeakingTextAsync(const std::string& text) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, text]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_start_speaking_text_async(m_hsynth, text.data(), static_cast(text.length()), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_speak_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Start the speech synthesis on plain text, asynchronously. + /// Added in version 1.9.0 + /// + /// The plain text for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> StartSpeakingTextAsync(const std::wstring& text) + { + return StartSpeakingTextAsync(Utils::ToUTF8(text)); + } + + /// + /// Start the speech synthesis on SSML, asynchronously. + /// + /// The SSML for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> StartSpeakingSsmlAsync(const std::string& ssml) + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this, ssml]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_start_speaking_ssml_async(m_hsynth, ssml.data(), static_cast(ssml.length()), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_speak_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Start the speech synthesis on SSML, asynchronously. + /// Added in version 1.9.0 + /// + /// The SSML for synthesis. + /// An asynchronous operation representing the synthesis. It returns a value of as result. + std::future> StartSpeakingSsmlAsync(const std::wstring& ssml) + { + return StartSpeakingSsmlAsync(Utils::ToUTF8(ssml)); + } + + /// + /// Stop the speech synthesis, asynchronously. + /// Added in version 1.14.0 + /// + /// An empty future. + std::future StopSpeakingAsync() + { + auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, this]() -> void { + SPXASYNCHANDLE hasyncStop = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_stop_speaking_async(m_hsynth, &hasyncStop)); + SPX_EXITFN_ON_FAIL(::synthesizer_stop_speaking_async_wait_for(hasyncStop, UINT32_MAX)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasyncStop); + SPX_REPORT_ON_FAIL(releaseHr); + }); + + return future; + } + + /// + /// Get the available voices, asynchronously. + /// Added in version 1.16.0 + /// + /// Specify the locale of voices, in BCP-47 format; or leave it empty to get all available voices. + /// An asynchronous operation representing the voices list. It returns a value of as result. + std::future> GetVoicesAsync(const SPXSTRING& locale = SPXSTRING()) + { + const auto keepAlive = this->shared_from_this(); + + auto future = std::async(std::launch::async, [keepAlive, locale, this]() -> std::shared_ptr { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPXASYNCHANDLE hasync = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesizer_get_voices_list_async(m_hsynth, Utils::ToUTF8(locale).c_str(), &hasync)); + SPX_EXITFN_ON_FAIL(::synthesizer_get_voices_list_async_wait_for(hasync, UINT32_MAX, &hresult)); + + SPX_EXITFN_CLEANUP: + auto releaseHr = synthesizer_async_handle_release(hasync); + SPX_REPORT_ON_FAIL(releaseHr); + + return std::make_shared(hresult); + }); + + return future; + } + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the synthesizer will encounter errors while speech synthesis. + /// Added in version 1.7.0 + /// + /// The authorization token. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// Added in version 1.7.0 + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() const + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Destructor. + /// + ~SpeechSynthesizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + // Disconnect the event signals in reverse construction order + BookmarkReached.DisconnectAll(); + VisemeReceived.DisconnectAll(); + WordBoundary.DisconnectAll(); + SynthesisCanceled.DisconnectAll(); + SynthesisCompleted.DisconnectAll(); + Synthesizing.DisconnectAll(); + SynthesisStarted.DisconnectAll(); + + synthesizer_handle_release(m_hsynth); + } + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// The event signals that a speech synthesis result is received when the synthesis just started. + /// + EventSignal SynthesisStarted; + + /// + /// The event signals that a speech synthesis result is received while the synthesis is on going. + /// + EventSignal Synthesizing; + + /// + /// The event signals that a speech synthesis result is received when the synthesis completed. + /// + EventSignal SynthesisCompleted; + + /// + /// The event signals that a speech synthesis result is received when the synthesis is canceled. + /// + EventSignal SynthesisCanceled; + + /// + /// The event signals that a speech synthesis word boundary is received while the synthesis is on going. + /// Added in version 1.7.0 + /// + EventSignal WordBoundary; + + /// + /// The event signals that a speech synthesis viseme event is received while the synthesis is on going. + /// Added in version 1.16.0 + /// + EventSignal VisemeReceived; + + /// + /// The event signals that a speech synthesis bookmark is reached while the synthesis is on going. + /// Added in version 1.16.0 + /// + EventSignal BookmarkReached; + +private: + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Synthesizer handle. + explicit SpeechSynthesizer(SPXSYNTHHANDLE hsynth) : + m_hsynth(hsynth), + m_properties(hsynth), + Properties(m_properties), + SynthesisStarted(GetSpeechSynthesisEventConnectionsChangedCallback()), + Synthesizing(GetSpeechSynthesisEventConnectionsChangedCallback()), + SynthesisCompleted(GetSpeechSynthesisEventConnectionsChangedCallback()), + SynthesisCanceled(GetSpeechSynthesisEventConnectionsChangedCallback()), + WordBoundary(GetWordBoundaryEventConnectionsChangedCallback()), + VisemeReceived(GetVisemeEventConnectionsChangedCallback()), + BookmarkReached(GetBookmarkEventConnectionsChangedCallback()) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + std::function&)> GetSpeechSynthesisEventConnectionsChangedCallback() + { + return [=](const EventSignal& eventSignal) { + if (&eventSignal == &SynthesisStarted) + { + synthesizer_started_set_callback(m_hsynth, SynthesisStarted.IsConnected() ? FireEvent_SynthesisStarted : nullptr, this); + } + else if (&eventSignal == &Synthesizing) + { + synthesizer_synthesizing_set_callback(m_hsynth, Synthesizing.IsConnected() ? FireEvent_Synthesizing : nullptr, this); + } + else if (&eventSignal == &SynthesisCompleted) + { + synthesizer_completed_set_callback(m_hsynth, SynthesisCompleted.IsConnected() ? FireEvent_SynthesisCompleted : nullptr, this); + } + else if (&eventSignal == &SynthesisCanceled) + { + synthesizer_canceled_set_callback(m_hsynth, SynthesisCanceled.IsConnected() ? FireEvent_SynthesisCanceled : nullptr, this); + } + }; + } + + std::function&)> GetWordBoundaryEventConnectionsChangedCallback() + { + return [=](const EventSignal& eventSignal) { + if (&eventSignal == &WordBoundary) + { + synthesizer_word_boundary_set_callback(m_hsynth, WordBoundary.IsConnected() ? FireEvent_WordBoundary : nullptr, this); + } + }; + } + + std::function&)> GetVisemeEventConnectionsChangedCallback() + { + return [=](const EventSignal& eventSignal) { + if (&eventSignal == &VisemeReceived) + { + synthesizer_viseme_received_set_callback(m_hsynth, VisemeReceived.IsConnected() ? FireEvent_VisemeReceived : nullptr, this); + } + }; + } + + std::function&)> GetBookmarkEventConnectionsChangedCallback() + { + return [=](const EventSignal& eventSignal) { + if (&eventSignal == &BookmarkReached) + { + synthesizer_bookmark_reached_set_callback(m_hsynth, BookmarkReached.IsConnected() ? FireEvent_BookmarkReached : nullptr, this); + } + }; + } + + static void FireEvent_SynthesisStarted(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr synthEvent{ new SpeechSynthesisEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SynthesisStarted.Signal(*synthEvent.get()); + } + + static void FireEvent_Synthesizing(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr synthEvent{ new SpeechSynthesisEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Synthesizing.Signal(*synthEvent.get()); + } + + static void FireEvent_SynthesisCompleted(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr synthEvent{ new SpeechSynthesisEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SynthesisCompleted.Signal(*synthEvent.get()); + } + + static void FireEvent_SynthesisCanceled(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr synthEvent{ new SpeechSynthesisEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->SynthesisCanceled.Signal(*synthEvent.get()); + } + + static void FireEvent_WordBoundary(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr wordBoundaryEvent{ new SpeechSynthesisWordBoundaryEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->WordBoundary.Signal(*wordBoundaryEvent.get()); + } + + static void FireEvent_VisemeReceived(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr visemeReceivedEvent{ new SpeechSynthesisVisemeEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->VisemeReceived.Signal(*visemeReceivedEvent.get()); + } + + static void FireEvent_BookmarkReached(SPXSYNTHHANDLE hsynth, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hsynth); + std::unique_ptr bookmarkReachedEvent{ new SpeechSynthesisBookmarkEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->BookmarkReached.Signal(*bookmarkReachedEvent.get()); + } +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_config.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_config.h new file mode 100644 index 0000000..1b7d785 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_config.h @@ -0,0 +1,213 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include +#include + +#include "speechapi_c_common.h" +#include "speechapi_c_speech_config.h" +#include "speechapi_c_speech_translation_config.h" +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Translation { + +/// +/// Class that defines configurations for translation with speech input. +/// +class SpeechTranslationConfig final : public SpeechConfig +{ +public: + /// + /// Creates an instance of the speech translation config with specified subscription key and region. + /// + /// The subscription key. + /// The region name (see the region page). + /// Shared pointer to the speech translation config instance. + static std::shared_ptr FromSubscription(const SPXSTRING& subscription, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_subscription(&hconfig, Utils::ToUTF8(subscription).c_str(), Utils::ToUTF8(region).c_str())); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + /// + /// Creates an instance of the speech translation config with specified authorization token and region. + /// + /// The authorization token. + /// The region name (see the region page). + /// Shared pointer to the speech translation config instance. + static std::shared_ptr FromAuthorizationToken(const SPXSTRING& authToken, const SPXSTRING& region) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_authorization_token(&hconfig, Utils::ToUTF8(authToken).c_str(), Utils::ToUTF8(region).c_str())); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + // + /// Creates an instance of the speech translation config with specified endpoint and subscription. + /// This method is intended only for users who use a non-standard service endpoint. + /// Note: The query parameters specified in the endpoint URI are not changed, even if they are set by any other APIs. + /// For example, if the recognition language is defined in URI as query parameter "language=de-DE", and also set by SetSpeechRecognitionLanguage("en-US"), + /// the language setting in URI takes precedence, and the effective language is "de-DE". + /// Only the parameters that are not specified in the endpoint URI can be set by other APIs. + /// Note: To use an authorization token with FromEndpoint, please use FromEndpoint(const SPXSTRING&), + /// and then call SetAuthorizationToken() on the created SpeechTranslationConfig instance. + /// + /// The service endpoint to connect to. + /// The subscription key. + /// Shared pointer to the new SpeechTranslationConfig instance. + static std::shared_ptr FromEndpoint(const SPXSTRING& endpoint, const SPXSTRING& subscription) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_endpoint(&hconfig, Utils::ToUTF8(endpoint).c_str(), Utils::ToUTF8(subscription).c_str())); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + /// + /// Creates an instance of the speech translation config with specified endpoint. + /// This method is intended only for users who use a non-standard service endpoint. + /// Note: The query parameters specified in the endpoint URI are not changed, even if they are set by any other APIs. + /// For example, if the recognition language is defined in URI as query parameter "language=de-DE", and also set by SetSpeechRecognitionLanguage("en-US"), + /// the language setting in URI takes precedence, and the effective language is "de-DE". + /// Only the parameters that are not specified in the endpoint URI can be set by other APIs. + /// Note: if the endpoint requires a subscription key for authentication, please use FromEndpoint(const SPXSTRING&, const SPXSTRING&) to pass + /// the subscription key as parameter. + /// To use an authorization token with FromEndpoint, use this method to create a SpeechTranslationConfig instance, and then + /// call SetAuthorizationToken() on the created SpeechTranslationConfig instance. + /// Note: Added in version 1.5.0. + /// + /// The service endpoint to connect to. + /// A shared pointer to the new SpeechTranslationConfig instance. + static std::shared_ptr FromEndpoint(const SPXSTRING& endpoint) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_endpoint(&hconfig, Utils::ToUTF8(endpoint).c_str(), nullptr)); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + /// + /// Creates an instance of the speech translation config with specified host and subscription. + /// This method is intended only for users who use a non-default service host. Standard resource path will be assumed. + /// For services with a non-standard resource path or no path at all, use FromEndpoint instead. + /// Note: Query parameters are not allowed in the host URI and must be set by other APIs. + /// Note: To use an authorization token with FromHost, use FromHost(const SPXSTRING&), + /// and then call SetAuthorizationToken() on the created SpeechTranslationConfig instance. + /// Note: Added in version 1.8.0. + /// + /// The service host to connect to. Format is "protocol://host:port" where ":port" is optional. + /// The subscription key. + /// Shared pointer to the new SpeechTranslationConfig instance. + static std::shared_ptr FromHost(const SPXSTRING& host, const SPXSTRING& subscription) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_host(&hconfig, Utils::ToUTF8(host).c_str(), Utils::ToUTF8(subscription).c_str())); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + /// + /// Creates an instance of the speech translation config with specified host. + /// This method is intended only for users who use a non-default service host. Standard resource path will be assumed. + /// For services with a non-standard resource path or no path at all, use FromEndpoint instead. + /// Note: Query parameters are not allowed in the host URI and must be set by other APIs. + /// Note: If the host requires a subscription key for authentication, use FromHost(const SPXSTRING&, const SPXSTRING&) to pass + /// the subscription key as parameter. + /// To use an authorization token with FromHost, use this method to create a SpeechTranslationConfig instance, and then + /// call SetAuthorizationToken() on the created SpeechTranslationConfig instance. + /// Note: Added in version 1.8.0. + /// + /// The service host to connect to. Format is "protocol://host:port" where ":port" is optional. + /// A shared pointer to the new SpeechTranslationConfig instance. + static std::shared_ptr FromHost(const SPXSTRING& host) + { + SPXSPEECHCONFIGHANDLE hconfig = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(speech_translation_config_from_host(&hconfig, Utils::ToUTF8(host).c_str(), nullptr)); + return std::shared_ptr(new SpeechTranslationConfig(hconfig)); + } + + /// + /// Adds a target language for translation. + /// + /// Translation target language to add. + void AddTargetLanguage(const SPXSTRING& language) + { + SPX_THROW_ON_FAIL(speech_translation_config_add_target_language(m_hconfig, Utils::ToUTF8(language).c_str())); + } + + /// + /// Removes a target language for translation. + /// Added in release 1.7.0. + /// + /// Translation target language to remove. + void RemoveTargetLanguage(const SPXSTRING& language) + { + SPX_THROW_ON_FAIL(speech_translation_config_remove_target_language(m_hconfig, Utils::ToUTF8(language).c_str())); + } + + /// + /// Sets a Category Id that will be passed to service. Category Id is used to find the custom model. + /// + /// Category Id to set. + void SetCustomModelCategoryId(const SPXSTRING& categoryId) + { + SPX_THROW_ON_FAIL(speech_translation_config_set_custom_model_category_id(m_hconfig, Utils::ToUTF8(categoryId).c_str())); + } + + /// + /// Gets target languages for translation. + /// + /// Vector of translation target languages. + std::vector GetTargetLanguages() const + { + std::vector result; + auto targetLanguages = Utils::ToUTF8(GetProperty(PropertyId::SpeechServiceConnection_TranslationToLanguages)); + if (targetLanguages.empty()) + return result; + + // Getting languages one by one. + std::stringstream languageStream(targetLanguages); + std::string token; + while (std::getline(languageStream, token, CommaDelim)) + { + result.push_back(Utils::ToSPXString(token)); + } + return result; + } + + /// + /// Sets output voice name. + /// + /// Voice name to set. + void SetVoiceName(const SPXSTRING& voice) + { + property_bag_set_string(m_propertybag, static_cast(PropertyId::SpeechServiceConnection_TranslationVoice), nullptr, Utils::ToUTF8(voice).c_str()); + } + + /// + /// Gets output voice name. + /// + /// Output voice name. + SPXSTRING GetVoiceName() const + { + return GetProperty(PropertyId::SpeechServiceConnection_TranslationVoice); + } + +private: + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + explicit SpeechTranslationConfig(SPXSPEECHCONFIGHANDLE hconfig) : SpeechConfig(hconfig) { } + + DISABLE_COPY_AND_MOVE(SpeechTranslationConfig); + +}; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_model.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_model.h new file mode 100644 index 0000000..b94513d --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_speech_translation_model.h @@ -0,0 +1,120 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_translation_model.h: Public API declarations for SpeechTranslationModel C++ class +// + +#pragma once +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Speech translation model information. +/// +class SpeechTranslationModel +{ +private: + + /// + /// Internal member variable that holds the model handle. + /// + SPXSPEECHRECOMODELHANDLE m_hmodel; + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Model handle. + explicit SpeechTranslationModel(SPXSPEECHRECOMODELHANDLE hmodel) : + m_hmodel(hmodel), + Name(m_name), + SourceLanguages(m_sourceLanguages), + TargetLanguages(m_targetLanguages), + Path(m_path), + Version(m_version) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + m_name = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_translation_model_get_name(m_hmodel))); + m_sourceLanguages = Utils::Split(Utils::CopyAndFreePropertyString(speech_translation_model_get_source_languages(m_hmodel)), '|'); + m_targetLanguages = Utils::Split(Utils::CopyAndFreePropertyString(speech_translation_model_get_target_languages(m_hmodel)), '|'); + m_path = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_translation_model_get_path(m_hmodel))); + m_version = Utils::ToSPXString(Utils::CopyAndFreePropertyString(speech_translation_model_get_version(m_hmodel))); + } + + /// + /// Explicit conversion operator. + /// + /// Model handle. + explicit operator SPXSPEECHRECOMODELHANDLE() { return m_hmodel; } + + /// + /// Destructor. + /// + ~SpeechTranslationModel() + { + speech_translation_model_handle_release(m_hmodel); + } + + /// + /// Model name. + /// + const SPXSTRING& Name; + + /// + /// Source languages that the model supports. + /// + const std::vector& SourceLanguages; + + /// + /// Target languages that the model supports. + /// + const std::vector& TargetLanguages; + + /// + /// Model path (only valid for offline models). + /// + const SPXSTRING& Path; + + /// + /// Model version. + /// + const SPXSTRING& Version; + +private: + + DISABLE_DEFAULT_CTORS(SpeechTranslationModel); + + /// + /// Internal member variable that holds the model name. + /// + SPXSTRING m_name; + + /// + /// Internal member variable that holds the model source languages. + /// + std::vector m_sourceLanguages; + + /// + /// Internal member variable that holds the model target languages. + /// + std::vector m_targetLanguages; + + /// + /// Internal member variable that holds the model path. + /// + SPXSTRING m_path; + + /// + /// Internal member variable that holds the model version. + /// + SPXSTRING m_version; +}; + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_string_helpers.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_string_helpers.h new file mode 100644 index 0000000..4dcbb0e --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_string_helpers.h @@ -0,0 +1,137 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#define SPXSTRING std::string +#define SPXSTRING_EMPTY std::string() + +namespace Microsoft{ +namespace CognitiveServices { +namespace Speech { +namespace Utils { + +namespace Details { + + inline std::string to_string(const std::wstring& value) + { + const auto size = pal_wstring_to_string(nullptr, value.c_str(), 0); + auto buffer = std::make_unique(size); + pal_wstring_to_string(buffer.get(), value.c_str(), size); + return std::string{ buffer.get() }; + } + + inline std::wstring to_string(const std::string& value) + { + const auto size = pal_string_to_wstring(nullptr, value.c_str(), 0); + auto buffer = std::make_unique(size); + pal_string_to_wstring(buffer.get(), value.c_str(), size); + return std::wstring{ buffer.get() }; + } +} + +inline std::string ToSPXString(const char* value) +{ + return value == nullptr ? "" : value; +} + +inline std::string ToSPXString(const std::string& value) +{ + return value; +} + +inline std::string ToUTF8(const std::wstring& value) +{ + return Details::to_string(value); +} + +inline std::string ToUTF8(const wchar_t* value) +{ + if (!value) + return ""; + return ToUTF8(std::wstring(value)); +} + +inline std::string ToUTF8(const std::string& value) +{ + return value; +} + +inline const char* ToUTF8(const char* value) +{ + return value; +} + +inline static std::string CopyAndFreePropertyString(const char* value) +{ + std::string copy = (value == nullptr) ? "" : value; + property_bag_free_string(value); + return copy; +} + +template +inline static size_t Find(const TCHAR* pStr, const size_t numChars, const TCHAR find, size_t startAt = 0) +{ + for (size_t i = startAt; i < numChars; i++) + { + TCHAR c = pStr[i]; + if (c == '\0') + { + break; + } + else if (c == find) + { + return i; + } + } + + return (std::numeric_limits::max)(); // weird syntax to avoid Windows min/max macros +} + +template +static std::vector> Split(const TCHAR* pStr, const size_t numChars, const TCHAR delim) +{ + std::vector> result; + if (pStr == nullptr) + { + return result; + } + + size_t start = 0; + size_t end = Find(pStr, numChars, delim, 0); + while (end != (std::numeric_limits::max)()) + { + result.push_back(std::basic_string(pStr + start, end - start)); + start = end + 1; + end = Find(pStr, numChars, delim, start); + } + + if (start < numChars) + { + result.push_back(std::basic_string(pStr + start, numChars - start)); + } + + return result; +} + +template +inline static std::vector> Split(const std::basic_string& str, const TCHAR delim) +{ + return Split(str.c_str(), str.size(), delim); +} + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_synthesis_voices_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_synthesis_voices_result.h new file mode 100644 index 0000000..cc287c3 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_synthesis_voices_result.h @@ -0,0 +1,165 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_synthesis_voices_result.h: Public API declarations for SynthesisVoicesResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Contains information about result from voices list of speech synthesizers. +/// Added in version 1.16.0 +/// +class SynthesisVoicesResult +{ +private: + + /// + /// Internal member variable that holds the voices list result handle. + /// + SPXRESULTHANDLE m_hresult; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + synthesis_voices_result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties associating to the voices list result. + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Result handle. + explicit SynthesisVoicesResult(SPXRESULTHANDLE hresult) : + m_hresult(hresult), + m_properties(hresult), + Voices(m_voices), + ErrorDetails(m_errorDetails), + ResultId(m_resultId), + Reason(m_reason), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + uint32_t voiceNum; + SPX_THROW_ON_FAIL(::synthesis_voices_result_get_voice_num(hresult, &voiceNum)); + m_voices = std::vector>(voiceNum); + + for (uint32_t i = 0; i < voiceNum; ++i) + { + SPXRESULTHANDLE hVoice = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(::synthesis_voices_result_get_voice_info(m_hresult, i, &hVoice)); + m_voices[i] = std::make_shared(hVoice); + } + + const size_t maxCharCount = 1024; + char sz[maxCharCount + 1]; + SPX_THROW_ON_FAIL(synthesis_voices_result_get_result_id(hresult, sz, maxCharCount)); + m_resultId = Utils::ToSPXString(sz); + + Result_Reason resultReason = ResultReason_NoMatch; + SPX_THROW_ON_FAIL(synthesis_voices_result_get_reason(hresult, &resultReason)); + m_reason = static_cast(resultReason); + + m_errorDetails = m_properties.GetProperty(PropertyId::CancellationDetails_ReasonDetailedText); + } + + /// + /// Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + /// + /// Destructor. + /// + ~SynthesisVoicesResult() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + synthesizer_result_handle_release(m_hresult); + } + + /// + /// Retrieved voices. + /// + const std::vector>& Voices; + + /// + /// Error details. + /// + const SPXSTRING& ErrorDetails; + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Reason of the voices list result. + /// + const ResultReason& Reason; + + /// + /// Collection of additional SynthesisVoicesResult properties. + /// + const PropertyCollection& Properties; + +private: + + DISABLE_DEFAULT_CTORS(SynthesisVoicesResult); + + /// + /// Internal member variable that holds the result ID. + /// + SPXSTRING m_resultId; + + /// + /// Internal member variable that holds the result reason. + /// + ResultReason m_reason; + + /// + /// Internal member variable that holds the voices list. + /// + std::vector> m_voices; + + /// + /// Internal member variable that holds the error details. + /// + SPXSTRING m_errorDetails; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_eventargs.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_eventargs.h new file mode 100644 index 0000000..42f54ef --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_eventargs.h @@ -0,0 +1,235 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// + +#pragma once +#include +#include +#include +#include +#include + + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Translation { + + +/// +/// Defines payload that is sent with the event or . +/// +class TranslationRecognitionEventArgs : public RecognitionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + + /// + /// It is intended for internal use only. It creates an instance of . + /// + /// The handle returned by recognizer in C-API. + explicit TranslationRecognitionEventArgs(SPXEVENTHANDLE hevent) : + RecognitionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(ResultHandleFromEventHandle(hevent))), + Result(m_result) + { + UNUSED(m_hevent); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + /// Destructs the instance. + /// + virtual ~TranslationRecognitionEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + recognizer_event_handle_release(m_hevent); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Contains the translation recognition result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +protected: +#endif + + /*! \cond PROTECTED */ + + /// + /// Contains the translation text result. + /// + std::shared_ptr GetResult() const { return m_result; } + + /*! \endcond */ + +private: + DISABLE_DEFAULT_CTORS(TranslationRecognitionEventArgs); + + SPXRESULTHANDLE ResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + + +/// +/// Class for translation recognition canceled event arguments. +/// +class TranslationRecognitionCanceledEventArgs final : public TranslationRecognitionEventArgs +{ +private: + + std::shared_ptr m_cancellation; + CancellationReason m_cancellationReason; + CancellationErrorCode m_errorCode; + +public: + + /// + /// Constructor. + /// + /// Event handle + explicit TranslationRecognitionCanceledEventArgs(SPXEVENTHANDLE hevent) : + TranslationRecognitionEventArgs(hevent), + m_cancellation(CancellationDetails::FromResult(GetResult())), + m_cancellationReason(m_cancellation->Reason), + m_errorCode(m_cancellation->ErrorCode), + Reason(m_cancellationReason), + ErrorCode(m_errorCode), + ErrorDetails(m_cancellation->ErrorDetails) + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + virtual ~TranslationRecognitionCanceledEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + /// + /// The reason the result was canceled. + /// + const CancellationReason& Reason; + + /// + /// The error code in case of an unsuccessful recognition ( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// Added in version 1.1.0. + /// + const CancellationErrorCode& ErrorCode; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + + /// + /// The error message in case of an unsuccessful recognition ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// CancellationDetails. + /// + std::shared_ptr GetCancellationDetails() const { return m_cancellation; } + +private: + + DISABLE_DEFAULT_CTORS(TranslationRecognitionCanceledEventArgs); +}; + + + +/// +/// Defines payload that is sent with the event . +/// +class TranslationSynthesisEventArgs final : public SessionEventArgs +{ +private: + + SPXEVENTHANDLE m_hevent; + std::shared_ptr m_result; + +public: + /// + /// It is intended for internal use only. It creates an instance of . + /// + /// The handle returned by recognizer in C-API. + explicit TranslationSynthesisEventArgs(SPXEVENTHANDLE hevent) : + SessionEventArgs(hevent), + m_hevent(hevent), + m_result(std::make_shared(SynthesisResultHandleFromEventHandle(hevent))), + Result(m_result) + { + UNUSED(m_hevent); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + }; + + /// + /// Destructs the instance. + /// + virtual ~TranslationSynthesisEventArgs() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)m_hevent); + recognizer_event_handle_release(m_hevent); + }; + +#if defined(BINDING_OBJECTIVE_C) +private: +#endif + /// + /// Contains the translation synthesis result. + /// + std::shared_ptr Result; + +#if defined(BINDING_OBJECTIVE_C) +public: +#else +private: +#endif + /// + /// Contains the translation synthesis result. + /// + std::shared_ptr GetResult() const { return m_result; } + +private: + + DISABLE_DEFAULT_CTORS(TranslationSynthesisEventArgs); + + SPXRESULTHANDLE SynthesisResultHandleFromEventHandle(SPXEVENTHANDLE hevent) + { + SPXRESULTHANDLE hresult = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(recognizer_recognition_event_get_result(hevent, &hresult)); + return hresult; + } +}; + +} } } } // Microsoft::CognitiveServices::Speech::Translation diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_recognizer.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_recognizer.h new file mode 100644 index 0000000..7627e23 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_recognizer.h @@ -0,0 +1,352 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_translation_recognizer.h: Public API declarations for translation recognizer in C++. +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Translation { + +/// +/// Performs translation on the speech input. +/// +class TranslationRecognizer final : public AsyncRecognizer +{ +public: + /// + /// Create a translation recognizer from a speech config + /// + /// Speech configuration. + /// A smart pointer wrapped speech recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from an embedded speech config + /// + /// Embedded speech configuration. + /// A smart pointer wrapped translation recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from a hybrid speech config + /// + /// Hybrid speech configuration. + /// A smart pointer wrapped translation recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::nullptr_t) + { + SPXRECOHANDLE hreco; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(nullptr))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from a translation config and an audio config. + /// Users should use this function to create a translation recognizer. + /// + /// Speech translation config. + /// Audio config. + /// The shared smart pointer of the created translation recognizer. + static std::shared_ptr FromConfig(std::shared_ptr speechconfig, std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco { SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from an embedded speech config and audio config. + /// + /// Embedded speech config. + /// Audio config. + /// A smart pointer wrapped translation recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioConfig = nullptr) + { + SPXRECOHANDLE hreco{ SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioConfig))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from a hybrid speech config and audio config. + /// + /// Hybrid speech config. + /// Audio config. + /// A smart pointer wrapped translation recognizer pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig, std::shared_ptr audioConfig = nullptr) + { + SPXRECOHANDLE hreco{ SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(audioConfig))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from a translation config, auto detection source language config and an audio config. + /// Users should use this function to create a translation recognizer. + /// + /// Speech translation config. + /// Auto detection source language config. + /// Audio config. + /// The shared smart pointer of the created translation recognizer. + static std::shared_ptr FromConfig( + std::shared_ptr speechconfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco { SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechconfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + /// + /// Create a translation recognizer from an embedded speech config, auto detection source language config and audio config. + /// + /// Embedded speech config. + /// Auto detection source language config. + /// Audio config. + /// The shared smart pointer of the created translation recognizer. + static std::shared_ptr FromConfig( + std::shared_ptr speechConfig, + std::shared_ptr autoDetectSourceLangConfig, + std::shared_ptr audioInput = nullptr) + { + SPXRECOHANDLE hreco{ SPXHANDLE_INVALID }; + SPX_THROW_ON_FAIL(::recognizer_create_translation_recognizer_from_auto_detect_source_lang_config( + &hreco, + HandleOrInvalid(speechConfig), + HandleOrInvalid(autoDetectSourceLangConfig), + HandleOrInvalid(audioInput))); + return std::make_shared(hreco); + } + + // The AsyncRecognizer only deals with events for translation text result. The audio output event + // is managed by OnTranslationSynthesisResult. + using BaseType = AsyncRecognizer; + + /// + /// It is intended for internal use only. It creates an instance of . + /// + /// + /// It is recommended to use SpeechTranslationConfig to create an instance of . This method is mainly + /// used in case where a recognizer handle has been created by methods via C-API. + /// + /// The handle of the recognizer that is returned by C-API. + explicit TranslationRecognizer(SPXRECOHANDLE hreco) : + BaseType(hreco), + Properties(m_properties), + Synthesizing(GetTranslationAudioEventConnectionsChangedCallback()) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Deconstruct the instance. + /// + ~TranslationRecognizer() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + Synthesizing.DisconnectAll(); + TermRecognizer(); + } + + /// + /// Starts translation recognition, and returns after a single utterance is recognized. The end of a + /// single utterance is determined by listening for silence at the end or until a maximum of about 30 + /// seconds of audio is processed. The task returns the recognized text as well as the translation. + /// Note: Since RecognizeOnceAsync() returns only a single utterance, it is suitable only for single + /// shot recognition like command or query. + /// For long-running multi-utterance recognition, use StartContinuousRecognitionAsync() instead. + /// + /// An asynchronous operation representing the recognition. It returns a value of as result. + std::future> RecognizeOnceAsync() override + { + return BaseType::RecognizeOnceAsyncInternal(); + } + + /// + /// Starts translation on a continous audio stream, until StopContinuousRecognitionAsync() is called. + /// User must subscribe to events to receive recognition results. + /// + /// An asynchronous operation that starts the translation. + std::future StartContinuousRecognitionAsync() override + { + return BaseType::StartContinuousRecognitionAsyncInternal(); + } + + /// + /// Stops continuous translation. + /// + /// A task representing the asynchronous operation that stops the translation. + std::future StopContinuousRecognitionAsync() override { return BaseType::StopContinuousRecognitionAsyncInternal(); } + + /// + /// Starts keyword recognition on a continuous audio stream, until StopKeywordRecognitionAsync() is called. + /// + /// Specifies the keyword model to be used. + /// An asynchronous operation that starts the keyword recognition. + std::future StartKeywordRecognitionAsync(std::shared_ptr model) override + { + return BaseType::StartKeywordRecognitionAsyncInternal(model); + }; + + /// + /// Stops continuous keyword recognition. + /// + /// A task representing the asynchronous operation that stops the keyword recognition. + std::future StopKeywordRecognitionAsync() override + { + return BaseType::StopKeywordRecognitionAsyncInternal(); + }; + + /// + /// Sets the authorization token that will be used for connecting to the service. + /// Note: The caller needs to ensure that the authorization token is valid. Before the authorization token + /// expires, the caller needs to refresh it by calling this setter with a new valid token. + /// Otherwise, the recognizer will encounter errors during recognition. + /// + /// A string that represents the endpoint id. + void SetAuthorizationToken(const SPXSTRING& token) + { + Properties.SetProperty(PropertyId::SpeechServiceAuthorization_Token, token); + } + + /// + /// Gets the authorization token. + /// + /// Authorization token + SPXSTRING GetAuthorizationToken() + { + return Properties.GetProperty(PropertyId::SpeechServiceAuthorization_Token, SPXSTRING()); + } + + /// + /// Adds a target language for translation. + /// Added in version 1.7.0. + /// + /// Translation target language to add. + void AddTargetLanguage(const SPXSTRING& language) + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hreco == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::translator_add_target_language(m_hreco, Utils::ToUTF8(language).c_str())); + } + + /// + /// Removes a target language for translation. + /// Added in version 1.7.0. + /// + /// Translation target language to remove. + void RemoveTargetLanguage(const SPXSTRING& language) + { + SPX_THROW_HR_IF(SPXERR_INVALID_HANDLE, m_hreco == SPXHANDLE_INVALID); + SPX_THROW_ON_FAIL(::translator_remove_target_language(m_hreco, Utils::ToUTF8(language).c_str())); + } + + /// + /// Gets target languages for translation. + /// Added in version 1.7.0. + /// + /// Vector of translation target languages. + std::vector GetTargetLanguages() const + { + std::vector result; + auto targetLanguages = Utils::ToUTF8(Properties.GetProperty(PropertyId::SpeechServiceConnection_TranslationToLanguages)); + if (targetLanguages.empty()) + return result; + + // Getting languages one by one. + std::stringstream languageStream(targetLanguages); + std::string token; + while (std::getline(languageStream, token, CommaDelim)) + { + result.push_back(Utils::ToSPXString(token)); + } + return result; + } + + /// + /// The collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// The event signals that a translation synthesis result is received. + /// + EventSignal Synthesizing; + +private: + + DISABLE_DEFAULT_CTORS(TranslationRecognizer); + + friend class Microsoft::CognitiveServices::Speech::Session; + + std::function&)> GetTranslationAudioEventConnectionsChangedCallback() + { + return [=](const EventSignal& audioEvent) { + if (&audioEvent == &Synthesizing) + { + translator_synthesizing_audio_set_callback(m_hreco, Synthesizing.IsConnected() ? FireEvent_TranslationSynthesisResult : nullptr, this); + } + }; + } + + static void FireEvent_TranslationSynthesisResult(SPXRECOHANDLE hreco, SPXEVENTHANDLE hevent, void* pvContext) + { + UNUSED(hreco); + std::unique_ptr recoEvent{ new TranslationSynthesisEventArgs(hevent) }; + + auto pThis = static_cast(pvContext); + auto keepAlive = pThis->shared_from_this(); + pThis->Synthesizing.Signal(*recoEvent.get()); + } +}; +} } } } // Microsoft::CognitiveServices::Speech::Translation diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_result.h new file mode 100644 index 0000000..bbabcd6 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_translation_result.h @@ -0,0 +1,175 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_translation_result.h: Public API declarations for TranslationResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Translation { + +/// +/// Defines the translation text result. +/// +class TranslationRecognitionResult : public RecognitionResult +{ +private: + + std::map m_translations; + +public: + /// + /// It is intended for internal use only. It creates an instance of . + /// + /// The handle of the result returned by recognizer in C-API. + explicit TranslationRecognitionResult(SPXRESULTHANDLE resultHandle) : + RecognitionResult(resultHandle), + Translations(m_translations) + { + PopulateResultFields(resultHandle); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) -- resultid=%s.", __FUNCTION__, (void*)this, (void*)Handle, ResultId.c_str()); + }; + + /// + /// Destructs the instance. + /// + virtual ~TranslationRecognitionResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p)", __FUNCTION__, (void*)this, (void*)Handle); + } + + /// + /// Presents the translation results. Each item in the map is a key value pair, where key is the language tag of the translated text, + /// and value is the translation text in that language. + /// + const std::map& Translations; + +private: + void PopulateResultFields(SPXRESULTHANDLE resultHandle) + { + SPX_INIT_HR(hr); + + size_t count = 0; + hr = translation_text_result_get_translation_count(resultHandle, &count); + SPX_THROW_ON_FAIL(hr); + + size_t maxLanguageSize = 0; + size_t maxTextSize = 0; + + for (size_t i = 0; i < count; i++) + { + size_t languageSize = 0; + size_t textSize = 0; + + hr = translation_text_result_get_translation(resultHandle, i, nullptr, nullptr, &languageSize, &textSize); + SPX_THROW_ON_FAIL(hr); + + maxLanguageSize = (std::max)(maxLanguageSize, languageSize); + maxTextSize = (std::max)(maxTextSize, textSize); + } + + auto targetLanguage = std::make_unique(maxLanguageSize); + auto translationText = std::make_unique(maxTextSize); + for (size_t i = 0; i < count; i++) + { + hr = translation_text_result_get_translation(resultHandle, i, targetLanguage.get(), translationText.get(), &maxLanguageSize, &maxTextSize); + SPX_THROW_ON_FAIL(hr); + m_translations[Utils::ToSPXString(targetLanguage.get())] = Utils::ToSPXString(translationText.get()); + } + + SPX_DBG_TRACE_VERBOSE("Translation phrases: numberentries: %d", (int)m_translations.size()); +#ifdef _DEBUG + for (const auto& cf : m_translations) + { + (void)(cf); // prevent warning for cf when compiling release builds + SPX_DBG_TRACE_VERBOSE(" phrase for %s: %s", cf.first.c_str(), cf.second.c_str()); + } +#endif + }; + + DISABLE_DEFAULT_CTORS(TranslationRecognitionResult); +}; + + +/// +/// Defines the translation synthesis result, i.e. the voice output of the translated text in the target language. +/// +class TranslationSynthesisResult +{ +private: + + ResultReason m_reason; + std::vector m_audioData; + +public: + /// + /// It is intended for internal use only. It creates an instance of + /// + /// The handle of the result returned by recognizer in C-API. + explicit TranslationSynthesisResult(SPXRESULTHANDLE resultHandle) : + Reason(m_reason), + Audio(m_audioData) + { + PopulateResultFields(resultHandle); + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p, handle=0x%p) reason=0x%x", __FUNCTION__, (void*)this, (void*)resultHandle, Reason); + }; + + /// + /// Destructs the instance. + /// + virtual ~TranslationSynthesisResult() + { + SPX_DBG_TRACE_VERBOSE("%s (this=0x%p)", __FUNCTION__, (void*)this); + }; + + /// + /// Recognition reason. + /// + const ResultReason& Reason; + + /// + /// The voice output of the translated text in the target language. + /// + const std::vector& Audio; + + +private: + + DISABLE_DEFAULT_CTORS(TranslationSynthesisResult); + + void PopulateResultFields(SPXRESULTHANDLE resultHandle) + { + SPX_INIT_HR(hr); + + Result_Reason resultReason = ResultReason_NoMatch; + SPX_THROW_ON_FAIL(hr = result_get_reason(resultHandle, &resultReason)); + m_reason = (ResultReason)resultReason; + + size_t bufLen = 0; + hr = translation_synthesis_result_get_audio_data(resultHandle, nullptr, &bufLen); + if (hr == SPXERR_BUFFER_TOO_SMALL) + { + m_audioData.resize(bufLen); + hr = translation_synthesis_result_get_audio_data(resultHandle, m_audioData.data(), &bufLen); + } + SPX_THROW_ON_FAIL(hr); + + SPX_DBG_TRACE_VERBOSE("Translation synthesis: audio length: %zu, vector size: %zu", bufLen, m_audioData.size()); + }; +}; + + +} } } } // Microsoft::CognitiveServices::Speech::Translation diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_user.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_user.h new file mode 100644 index 0000000..0f0a597 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_user.h @@ -0,0 +1,77 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_user.h: Public API declarations for User C++ class +// + +#pragma once + +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Transcription { + +constexpr size_t MAX_USER_ID_LEN = 1024; + +/// +/// Represents a user in a conversation. +/// Added in version 1.5.0. +/// +class User +{ +public: + + /// + /// Create a user with identification string. + /// + /// A user id. + /// A user object + static std::shared_ptr FromUserId(const SPXSTRING& userId) + { + SPXUSERHANDLE m_huser = SPXHANDLE_INVALID; + SPX_THROW_ON_FAIL(user_create_from_id(Utils::ToUTF8(userId).c_str(), &m_huser)); + return std::make_shared(m_huser); + } + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// A user handle. + explicit User(SPXUSERHANDLE huser = SPXHANDLE_INVALID) : m_huser(huser) { } + + /// + /// Virtual destructor. + /// + virtual ~User() { user_release_handle(m_huser); } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXUSERHANDLE() const { return m_huser; } + + /// + /// Get user's id. + /// + /// user's id. + SPXSTRING GetId() const + { + char user_id[MAX_USER_ID_LEN+1]; + std::memset(user_id, 0, MAX_USER_ID_LEN+1); + SPX_THROW_ON_FAIL(user_get_id(m_huser, user_id, MAX_USER_ID_LEN)); + + return user_id; + } + +private: + + DISABLE_COPY_AND_MOVE(User); + + SPXUSERHANDLE m_huser; + +}; + +}}}} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_utils.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_utils.h new file mode 100644 index 0000000..21b4a98 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_utils.h @@ -0,0 +1,312 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_utils.h: General utility classes and functions. +// + +#pragma once + +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Utils { + +/// +/// Base class that disables the copy constructor +/// +struct NonCopyable +{ + /// + /// Default destructor. + /// + NonCopyable() = default; + + /// + /// Virtual destructor. + /// + virtual ~NonCopyable() = default; + + /// + /// Disable copy constructor. + /// + NonCopyable(const NonCopyable&) = delete; + + /// + /// Disable copy assignment operator. + /// + /// Reference to the object. + NonCopyable& operator=(const NonCopyable &) = delete; +}; + +/// +/// Base class that disables the move constructor +/// +struct NonMovable +{ + /// + /// Default destructor. + /// + NonMovable() = default; + + /// + /// Virtual destructor. + /// + virtual ~NonMovable() = default; + + /// + /// Disable move constructor. + /// + NonMovable(NonMovable &&) = delete; + + /// + /// Disable move assignment operator. + /// + /// Reference to the object. + NonMovable& operator=(NonMovable &&) = delete; +}; + +template +SPXHANDLE CallFactoryMethodRight(F method, Args&&... args) +{ + SPXHANDLE handle; + auto hr = method(std::forward(args)..., &handle); + SPX_THROW_ON_FAIL(hr); + return handle; +} + +template +SPXHANDLE CallFactoryMethodLeft(F method, Args&&... args) +{ + SPXHANDLE handle; + auto hr = method(&handle, std::forward(args)...); + SPX_THROW_ON_FAIL(hr); + return handle; +} + +/// +/// Helper class implementing the scope guard idiom. +/// (The given function will be executed on destruction) +/// +template +class ScopeGuard +{ +public: + ScopeGuard(ScopeGuard&&) = default; + ScopeGuard(const ScopeGuard&) = delete; + + explicit ScopeGuard(F f): m_fn{ f } + {} + + ~ScopeGuard() + { + m_fn(); + } + +private: + F m_fn; +}; + +/// +/// Creates a scope guard with the given function. +/// +template +ScopeGuard MakeScopeGuard(F fn) +{ + return ScopeGuard{ fn }; +} + +/// +/// A wrapper around ABI handles that simplifies resource cleanup on exit +/// +/// The type of the ABI handle +/// The default value to set the handle to when initialising or after destroying +/// The return type of the free function +/// The signature of the free function called to release the ABI handle +template< + typename THandle, + typename TRet = AZACHR, + typename TFreeFunc = TRet(AZAC_API_CALLTYPE*)(THandle)> +class AbiHandleWrapper : public NonCopyable +{ +private: + THandle m_handle; + TFreeFunc m_free; + bool m_isValid; + +public: + /// + /// The signature of the free function + /// + using FreeFunc = TFreeFunc; + + /// + /// Creates and ABI handle wrapper for SPXHANDLE types initializing the handle + /// to be SPXHANDLE_INVALID + /// + /// The function used to release the ABI handle + template< + typename IsHandle = THandle, + std::enable_if_t::value, bool> = true + > + AbiHandleWrapper(TFreeFunc freeFunc) : + m_handle{ SPXHANDLE_INVALID }, + m_free{ freeFunc }, + m_isValid{ false } + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, freeFunc == nullptr); + } + + /// + /// Creates an ABI handle wrapper + /// + /// The function used to release the ABI handle + template< + typename IsHandle = THandle, + std::enable_if_t::value, bool> = true + > + AbiHandleWrapper(TFreeFunc freeFunc) : + m_handle{ nullptr }, + m_free{ freeFunc }, + m_isValid{ false } + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, freeFunc == nullptr); + } + + /// + /// Creates an ABI handle wrapper + /// + /// The function used to release the ABI handle + /// The initial ABI handle value + AbiHandleWrapper(TFreeFunc freeFunc, THandle&& handle) : + m_handle{ std::move(handle) }, + m_free{ freeFunc }, + m_isValid{ true } + { + SPX_THROW_HR_IF(SPXERR_INVALID_ARG, freeFunc == nullptr); + } + + /// + /// Destructor + /// + ~AbiHandleWrapper() { Destroy(); } + + /// + /// Move constructor + /// + /// The other item being moved + AbiHandleWrapper(AbiHandleWrapper&& other) : + m_handle{ other.m_handle }, + m_free{ other.m_free }, + m_isValid{ other.m_isValid } + { + other.m_handle = THandle{}; + other.m_free = nullptr; + other.m_isValid = false; + } + + /// + /// Move assignment operator + /// + /// The item being moved + /// Reference to ABI handle + AbiHandleWrapper& operator=(AbiHandleWrapper&& other) + { + if (this != &other) + { + Destroy(); + + m_handle = std::move(other.m_handle); + m_free = other.m_free; + m_isValid = other.m_isValid; + + other.m_free = nullptr; + other.m_isValid = false; + } + + return *this; + } + + /// + /// Helper to simplify assigning a new ABI handle value to this wrapper + /// + /// The handle to assign + /// Reference to assigned handle + THandle& operator=(const THandle& other) + { + Destroy(); + + m_handle = other; + return m_handle; + } + + /// + /// Gets the address of the ABI handle. This is useful when calling ABI functions that set the value + /// + THandle* operator&() { return &m_handle; } + + /// + /// Gets the ABI handle value + /// + operator THandle() const { return m_handle; } + +private: + void Destroy() + { + if (m_isValid) + { + m_isValid = false; + if (m_free != nullptr) + { + m_free(m_handle); + } + } + } +}; + +/// +/// A wrapper around ABI handles +/// +using AbiHandle = AbiHandleWrapper; + +/// +/// A wrapper around strings allocated in the ABI layer +/// +using AbiStringHandle = AbiHandleWrapper; + +/// +/// Function that converts a handle to its underlying type. +/// +/// Handle type. +/// Object type. +/// Object from which to get the handle. +template +inline Handle HandleOrInvalid(std::shared_ptr obj) +{ + return obj == nullptr + ? static_cast(SPXHANDLE_INVALID) + : static_cast(*obj.get()); +} + + +template +struct TypeList {}; + +template class F, typename L> +struct TypeListIfAny; + +template class F> +struct TypeListIfAny> +{ + static constexpr bool value{ false }; +}; + +template class F, typename U, typename... Us> +struct TypeListIfAny> +{ + static constexpr bool value = F::value || Microsoft::CognitiveServices::Speech::Utils::TypeListIfAny>::value; +}; + +} } } } diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_info.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_info.h new file mode 100644 index 0000000..bcbe99f --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_info.h @@ -0,0 +1,214 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_voice_info.h: Public API declarations for VoiceInfo C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { + +/// +/// Contains information about synthesis voice info +/// Updated in version 1.17.0 +/// +class VoiceInfo +{ +private: + + /// + /// Internal member variable that holds the voice info handle. + /// + SPXRESULTHANDLE m_hresult; + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + voice_info_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + /// + /// Internal member variable that holds the properties associating to the voice info. + /// + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Result handle. + explicit VoiceInfo(SPXRESULTHANDLE hresult) : + m_hresult(hresult), + m_properties(hresult), + Name(m_name), + Locale(m_locale), + ShortName(m_shortName), + LocalName(m_localName), + Gender(m_gender), + VoiceType(m_voiceType), + StyleList(m_styleList), + VoicePath(m_voicePath), + Status(m_status), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + m_name = Utils::ToSPXString(Utils::CopyAndFreePropertyString(voice_info_get_name(m_hresult))); + m_locale = Utils::ToSPXString(Utils::CopyAndFreePropertyString(voice_info_get_locale(m_hresult))); + m_shortName = Utils::ToSPXString(Utils::CopyAndFreePropertyString(voice_info_get_short_name(m_hresult))); + m_localName = Utils::ToSPXString(Utils::CopyAndFreePropertyString(voice_info_get_local_name(m_hresult))); + m_styleList = Utils::Split(Utils::CopyAndFreePropertyString(voice_info_get_style_list(m_hresult)), '|'); + Synthesis_VoiceType voiceType; + SPX_THROW_ON_FAIL(voice_info_get_voice_type(hresult, &voiceType)); + m_voiceType = static_cast(voiceType); + m_voicePath = Utils::ToSPXString(Utils::CopyAndFreePropertyString(voice_info_get_voice_path(m_hresult))); + auto gender = Properties.GetProperty("Gender"); + m_gender = gender == "Female" ? SynthesisVoiceGender::Female : gender == "Male" ? SynthesisVoiceGender::Male + : gender == "Neutral" ? SynthesisVoiceGender::Neutral + : SynthesisVoiceGender::Unknown; + auto status = Properties.GetProperty("Status"); + m_status = status == "GA" ? SynthesisVoiceStatus::GeneralAvailability + : status == "Preview" ? SynthesisVoiceStatus::Preview + : status == "Deprecated" ? SynthesisVoiceStatus::Deprecated + : SynthesisVoiceStatus::Unknown; + } + + /// + /// Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + /// + /// Destructor. + /// + ~VoiceInfo() + { + voice_info_handle_release(m_hresult); + } + + /// + /// Voice name. + /// + const SPXSTRING& Name; + + /// + /// Locale of the voice. + /// + const SPXSTRING& Locale; + + /// + /// Short name. + /// + const SPXSTRING& ShortName; + + /// + /// Local name. + /// + const SPXSTRING& LocalName; + + /// + /// Gender. + /// Added in version 1.17.0 + /// + const SynthesisVoiceGender& Gender; + + /// + /// Local name. + /// + const SynthesisVoiceType& VoiceType; + + /// + /// Style list + /// + const std::vector& StyleList; + + /// + /// Voice path, only valid for offline voices. + /// + const SPXSTRING& VoicePath; + + /// + /// Status of the voice. + /// + const SynthesisVoiceStatus& Status; + + /// + /// Collection of additional VoiceInfo properties. + /// + const PropertyCollection& Properties; + +private: + + DISABLE_DEFAULT_CTORS(VoiceInfo); + + /// + /// Internal member variable that holds the name. + /// + SPXSTRING m_name; + + /// + /// Internal member variable that holds the locale. + /// + SPXSTRING m_locale; + + /// + /// Internal member variable that holds the short name. + /// + SPXSTRING m_shortName; + + /// + /// Internal member variable that holds the local name. + /// + SPXSTRING m_localName; + + /// + /// Internal member variable that holds the gender. + /// + SynthesisVoiceGender m_gender; + + /// + /// Internal member variable that holds the voice type. + /// + SynthesisVoiceType m_voiceType; + + /// + /// Internal member variable that holds the style list. + /// + std::vector m_styleList; + + /// + /// Internal member variable that holds the voice path. + /// + SPXSTRING m_voicePath; + + /// + /// Internal member variable that holds the status. + /// + SynthesisVoiceStatus m_status; +}; + + +} } } // Microsoft::CognitiveServices::Speech diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile.h new file mode 100644 index 0000000..78c8c38 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile.h @@ -0,0 +1,109 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_voice_profile.h: Public API declarations for VoiceProfile C++ class +// + +#pragma once +#include + +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +// Forward declaration for friends. +class VoiceProfileClient; + +/// +/// Class for VoiceProfile. +/// Added in version 1.12.0 +/// +class VoiceProfile : public std::enable_shared_from_this +{ +public: + + static std::shared_ptr FromId(const SPXSTRING& Id, VoiceProfileType voiceProfileType = VoiceProfileType::TextIndependentIdentification) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + SPXVOICEPROFILEHANDLE hVoiceProfile; + SPX_THROW_ON_FAIL(::create_voice_profile_from_id_and_type(&hVoiceProfile,Utils::ToUTF8(Id).c_str(), static_cast(voiceProfileType))); + return std::shared_ptr { new VoiceProfile(hVoiceProfile) }; + } + + /// + /// Destructor. + /// + virtual ~VoiceProfile() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + ::voice_profile_release_handle(m_hVoiceProfile); + m_hVoiceProfile = SPXHANDLE_INVALID; + } + + /// + /// Get a voice profile id. + /// + /// the voice profile id. + const SPXSTRING GetId() const + { + // query the string length + uint32_t length = 0; + SPX_THROW_ON_FAIL(voice_profile_get_id(m_hVoiceProfile, nullptr, &length)); + + // retrieve the string + std::unique_ptr buffer(new char[length]); + SPX_THROW_ON_FAIL(voice_profile_get_id(m_hVoiceProfile, buffer.get(), &length)); + return Utils::ToSPXString(buffer.get()); + } + + /// + /// Get the VoiceProfileType from the VoiceProfile. + /// + /// + VoiceProfileType GetType() const + { + int type = -1; + SPX_THROW_ON_FAIL(voice_profile_get_type(m_hVoiceProfile, &type)); + return static_cast(type); + } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXVOICEPROFILEHANDLE() { return m_hVoiceProfile; } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Voice Profile handle. + explicit VoiceProfile(SPXVOICEPROFILEHANDLE hVoiceProfile) : + m_hVoiceProfile(hVoiceProfile) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /*! \endcond */ + +private: + + /*! \cond PRIVATE */ + friend Microsoft::CognitiveServices::Speech::Speaker::VoiceProfileClient; + DISABLE_DEFAULT_CTORS(VoiceProfile); + + SPXVOICEPROFILEHANDLE m_hVoiceProfile; + + /*! \endcond */ +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_client.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_client.h new file mode 100644 index 0000000..17b5dcd --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_client.h @@ -0,0 +1,262 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_voice_profile_client.h: Public API declarations for VoiceProfileClient C++ class +// + +#pragma once +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Class for VoiceProfileClient. +/// This class creates voice profile client for creating, doing enrollment, deleting and reseting a voice profile. +/// Added in version 1.12.0 +/// +class VoiceProfileClient : public std::enable_shared_from_this +{ +private: + + /*! \cond PRIVATE */ + + SPXVOICEPROFILECLIENTHANDLE m_hVoiceProfileClient; + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXVOICEPROFILECLIENTHANDLE hclient) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + voice_profile_client_get_property_bag(hclient, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + + /// + /// Create a Voice Profile Client from a speech config + /// + /// Speech configuration. + /// A smart pointer wrapped voice profile client pointer. + static std::shared_ptr FromConfig(std::shared_ptr speechConfig) + { + SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient; + SPX_THROW_ON_FAIL(::create_voice_profile_client_from_config(&hVoiceProfileClient, Utils::HandleOrInvalid(speechConfig))); + return std::shared_ptr{ new VoiceProfileClient(hVoiceProfileClient)}; + } + + /// + /// Destructor. + /// + virtual ~VoiceProfileClient() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + ::voice_profile_client_release_handle(m_hVoiceProfileClient); + m_hVoiceProfileClient = SPXHANDLE_INVALID; + } + + /// + /// Create a Voice Profile. + /// + /// a VoiceProfile type. + /// a locale, e.g "en-us" + /// A smart pointer wrapped voice profile client object. + std::future> CreateProfileAsync(VoiceProfileType profileType, const SPXSTRING& locale) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [profileType, locale, this, keepAlive]() -> std::shared_ptr { + SPXVOICEPROFILEHANDLE hVoiceProfileHandle; + SPX_THROW_ON_FAIL(::create_voice_profile(m_hVoiceProfileClient, static_cast(profileType), Utils::ToUTF8(locale).c_str(), &hVoiceProfileHandle)); + return std::shared_ptr { new VoiceProfile(hVoiceProfileHandle) }; + }); + + return future; + } + + /// + /// Enroll a Voice Profile. + /// + /// a voice profile object. + /// an audio Input. + /// A smart pointer wrapped voice profile enrollment result object. + std::future> EnrollProfileAsync(std::shared_ptr profile, std::shared_ptr audioInput = nullptr) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [profile, audioInput, this, keepAlive]() -> std::shared_ptr { + SPXRESULTHANDLE hresult; + SPX_THROW_ON_FAIL(::enroll_voice_profile(m_hVoiceProfileClient, + Utils::HandleOrInvalid(profile), + Utils::HandleOrInvalid(audioInput), + &hresult)); + return std::make_shared(hresult); + }); + return future; + } + + /// + /// Delete a Voice Profile. + /// + /// a voice profile object. + /// A smart pointer wrapped voice profile result object. + std::future> DeleteProfileAsync(std::shared_ptr profile) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [profile, this, keepAlive]() -> std::shared_ptr { + SPXRESULTHANDLE hResultHandle; + SPX_THROW_ON_FAIL(::delete_voice_profile(m_hVoiceProfileClient, + Utils::HandleOrInvalid(profile), + &hResultHandle)); + return std::make_shared(hResultHandle); + }); + return future; + } + + /// + /// Reset a Voice Profile. + /// + /// a voice profile object. + /// A smart pointer wrapped voice profile result object. + std::future> ResetProfileAsync(std::shared_ptr profile) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [profile, this, keepAlive]() -> std::shared_ptr { + SPXRESULTHANDLE hResultHandle; + SPX_THROW_ON_FAIL(::reset_voice_profile(m_hVoiceProfileClient, + Utils::HandleOrInvalid(profile), + &hResultHandle)); + return std::make_shared(hResultHandle); + }); + return future; + } + + /// + /// Retrieve an enrollment result given the id and type of the Voice Profile. + /// + /// The VoiceProfile Id. + /// The VoiceProfileType. + /// A future of the retrieved VoiceProfileEnrollmentResult. + std::future> RetrieveEnrollmentResultAsync(const SPXSTRING& voiceProfileId, VoiceProfileType voiceProfileType) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [voiceProfileId, voiceProfileType, this, keepAlive]() -> std::shared_ptr { + SPXRESULTHANDLE hResultHandle; + SPX_THROW_ON_FAIL(::retrieve_enrollment_result(m_hVoiceProfileClient, Utils::ToUTF8(voiceProfileId).c_str(), static_cast(voiceProfileType), &hResultHandle)); + return std::make_shared(hResultHandle); + }); + return future; + } + + /// + /// Retrieve an enrollment result given the Voice Profile. + /// + /// a voice profile object. + /// + std::future> RetrieveEnrollmentResultAsync(const VoiceProfile& voiceProfile) + { + return RetrieveEnrollmentResultAsync(voiceProfile.GetId(), voiceProfile.GetType()); + } + + /// + /// Get all profiles having the given type. + /// + /// The VoiceProfileType. + /// A future of a vector of extant VoiceProfiles. + std::future>> GetAllProfilesAsync(VoiceProfileType voiceProfileType) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [voiceProfileType, this, keepAlive]() -> std::vector> + { + std::vector> list; + + size_t numChars = 0; + char* json = nullptr; + auto deleteJsonOnEixt = Utils::MakeScopeGuard([&json]() { + ::property_bag_free_string(json); + }); + + SPX_THROW_ON_FAIL(::get_profiles_json(m_hVoiceProfileClient, static_cast(voiceProfileType), &json, &numChars)); + + auto profileList = Utils::Split(json, numChars, '|'); + for (auto& profile: profileList) + { + list.push_back(VoiceProfile::FromId(Utils::ToSPXString(profile), voiceProfileType)); + } + + return list; + }); + return future; + } + + std::future> GetActivationPhrasesAsync(VoiceProfileType voiceProfileType, const SPXSTRING& locale) + { + auto keepAlive = this->shared_from_this(); + auto future = std::async(std::launch::async, [voiceProfileType, locale, this, keepAlive]() -> std::shared_ptr { + SPXRESULTHANDLE hresult; + SPX_THROW_ON_FAIL(::get_activation_phrases(m_hVoiceProfileClient, + Utils::ToUTF8(locale).c_str(), + static_cast(voiceProfileType), + &hresult)); + return std::make_shared(hresult); + }); + return future; + } + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXVOICEPROFILECLIENTHANDLE() { return m_hVoiceProfileClient; } + +protected: + + /*! \cond PROTECTED */ + + /// + /// Internal constructor. Creates a new instance using the provided handle. + /// + /// Recognizer handle. + explicit VoiceProfileClient(SPXVOICEPROFILECLIENTHANDLE hVoiceProfileClient) : + m_hVoiceProfileClient(hVoiceProfileClient), + m_properties(hVoiceProfileClient), + Properties(m_properties) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /*! \endcond */ + +private: + + DISABLE_DEFAULT_CTORS(VoiceProfileClient); +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_enrollment_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_enrollment_result.h new file mode 100644 index 0000000..22decb5 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_enrollment_result.h @@ -0,0 +1,242 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_voice_profile_enrollment_result.h: Public API declarations for VoiceProfileEnrollmentResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// A enum that represents the timing information of an enrollment. +/// Added in version 1.12.0. +/// +enum class EnrollmentInfoType +{ + /// + /// Number of enrollment audios accepted for this profile. + /// + EnrollmentsCount = 0, + + /// + /// Total length of enrollment audios accepted for this profile. + /// + EnrollmentsLength = 1, + + /// + /// Summation of pure speech(which is the amount of audio after removing silence and non - speech segments) across all profile enrollments. + /// + EnrollmentsSpeechLength = 2, + + /// + /// Amount of pure speech (which is the amount of audio after removing silence and non-speech segments) needed to complete profile enrollment. + /// + RemainingEnrollmentsSpeechLength = 3, + + /// + /// Number of enrollment audios needed to complete profile enrollment. + /// + RemainingEnrollmentsCount = 4, + + /// + /// This enrollment audio length in hundred nanoseconds. + /// + AudioLength = 5, + + /// + /// This enrollment audio pure speech(which is the amount of audio after removing silence and non - speech segments) length in hundred nanoseconds. + /// + AudioSpeechLength = 6 +}; + +/// +/// Represents the result of an enrollment. +/// Added in version 1.12.0. +/// +class VoiceProfileEnrollmentResult final : public RecognitionResult +{ +private: + + SPXSTRING m_profileId; + const int enrollmentsCount; + const uint64_t enrollmentsLength; + const uint64_t enrollmentsSpeechLength; + const int remainingEnrollmentsCount; + const uint64_t remainingEnrollmentsSpeechLength; + const uint64_t audioLength; + const uint64_t audioSpeechLength; + const SPXSTRING createdDateTime; + const SPXSTRING lastUpdatedDateTime; + +public: + + /// + /// Creates a new instance using the provided handle. + /// + /// Result handle. + explicit VoiceProfileEnrollmentResult(SPXRESULTHANDLE hresult) : + RecognitionResult(hresult), + m_profileId(Properties.GetProperty("enrollment.profileId", "")), + enrollmentsCount(std::stoi(Properties.GetProperty("enrollment.enrollmentsCount", "0"))), + enrollmentsLength(static_cast(std::stoll(Properties.GetProperty("enrollment.enrollmentsLengthInSec", "0")))), + enrollmentsSpeechLength(static_cast(std::stoll(Properties.GetProperty("enrollment.enrollmentsSpeechLengthInSec", "0")))), + remainingEnrollmentsCount(std::stoi(Properties.GetProperty("enrollment.remainingEnrollmentsCount", "0"))), + remainingEnrollmentsSpeechLength(std::stoll(Properties.GetProperty("enrollment.remainingEnrollmentsSpeechLengthInSec", "0"))), + audioLength(static_cast(std::stoll(Properties.GetProperty("enrollment.audioLengthInSec", "0")))), + audioSpeechLength(static_cast(std::stoll(Properties.GetProperty("enrollment.audioSpeechLengthInSec", "0")))), + createdDateTime(Properties.GetProperty("enrollment.createdDateTime", "")), + lastUpdatedDateTime(Properties.GetProperty("enrollment.lastUpdatedDateTime", "")), + ProfileId(m_profileId) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// Destructor. + /// + virtual ~VoiceProfileEnrollmentResult() + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + } + + /// + /// The profile id of the speaker in the enrollment. + /// + const SPXSTRING& ProfileId; + + /// + /// Retrieve a textual representation of the created time of the voice profile. + /// + /// + const SPXSTRING& GetCreatedTime() const + { + return createdDateTime; + } + + /// + /// Retrieve a textual representation of the last updated time of the voice profile. + /// + /// + const SPXSTRING& GetLastUpdatedDateTime() const + { + return lastUpdatedDateTime; + } + + /// + /// Enrollment information in ticks. + /// A single tick represents one hundred nanoseconds or one ten-millionth of a second. + /// + /// an enum of EnrollmentInfoType. + /// Duration of recognized speech in ticks. + uint64_t GetEnrollmentInfo(EnrollmentInfoType type) const + { + switch (type) + { + case EnrollmentInfoType::EnrollmentsCount: + return static_cast(enrollmentsCount); + + case EnrollmentInfoType::EnrollmentsLength: + return enrollmentsLength; + + case EnrollmentInfoType::EnrollmentsSpeechLength: + return enrollmentsSpeechLength; + + case EnrollmentInfoType::RemainingEnrollmentsCount: + return static_cast(remainingEnrollmentsCount); + + case EnrollmentInfoType::RemainingEnrollmentsSpeechLength: + return remainingEnrollmentsSpeechLength; + + case EnrollmentInfoType::AudioLength: + return audioLength; + + case EnrollmentInfoType::AudioSpeechLength: + return audioSpeechLength; + + default: + throw std::runtime_error("Invalid enrollmentInfoType!"); + } + } + +private: + + DISABLE_DEFAULT_CTORS(VoiceProfileEnrollmentResult); + +}; + +/// +/// Represents the cancellation details of a result of an enrollment. +/// Added in version 1.12.0. +/// +class VoiceProfileEnrollmentCancellationDetails +{ +private: + + CancellationErrorCode m_errorCode; + +public: + + /// + /// Create an object that represents the details of a canceled enrollment result. + /// + /// a voice profile enrollment result object. + /// a smart pointer of voice profile enrollment cancellation details object. + static std::shared_ptr FromResult(std::shared_ptr result) + { + return std::shared_ptr { new VoiceProfileEnrollmentCancellationDetails(result.get()) }; + } + + /// + /// The error code in case of an unsuccessful enrollment ( is set to Error). + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful enrollment ( is set to Error). + /// + const SPXSTRING ErrorDetails; + +protected: + + /*! \cond PROTECTED */ + + VoiceProfileEnrollmentCancellationDetails(VoiceProfileEnrollmentResult* result) : + m_errorCode(GetCancellationErrorCode(result)), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonErrorDetails)) + { + } + + /*! \endcond */ + +private: + DISABLE_DEFAULT_CTORS(VoiceProfileEnrollmentCancellationDetails); + + /*! \cond PRIVATE */ + + CancellationErrorCode GetCancellationErrorCode(VoiceProfileEnrollmentResult* result) + { + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_canceled_error_code(hresult, &errorCode)); + + return static_cast(errorCode); + } + + /*! \endcond */ +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_phrase_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_phrase_result.h new file mode 100644 index 0000000..5695413 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_phrase_result.h @@ -0,0 +1,194 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_voice_profile_phrase_result.h: Public API declarations for VoiceProfilePhraseResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include + +namespace Microsoft { + namespace CognitiveServices { + namespace Speech { + namespace Speaker { + + /// + /// Class for VoiceProfilePhraseResult. + /// This class represents the result of requesting valid activation phrases for speaker recognition. + /// Added in version 1.18.0 + /// + class VoiceProfilePhraseResult + { + private: + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + /*! \endcond */ + + public: + explicit VoiceProfilePhraseResult(SPXRESULTHANDLE hresult) : + m_properties(hresult), + ResultId(m_resultId), + Reason(m_reason), + Properties(m_properties), + m_phrases(std::make_shared>(Utils::Split(m_properties.GetProperty("speakerrecognition.phrases", ""), '|'))), + m_hresult(hresult) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + PopulateResultFields(hresult, &m_resultId, &m_reason); + } + + virtual ~VoiceProfilePhraseResult() + { + ::recognizer_result_handle_release(m_hresult); + m_hresult = SPXHANDLE_INVALID; + } + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Voice profile result reason. + /// + const ResultReason& Reason; + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Gets the activation phrases. + /// + /// Vector of phrases in string form + std::shared_ptr> GetPhrases() + { + return m_phrases; + } + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + + private: + DISABLE_DEFAULT_CTORS(VoiceProfilePhraseResult); + + void PopulateResultFields(SPXRESULTHANDLE hresult, SPXSTRING* resultId, Speech::ResultReason* reason) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 2048; + char sz[maxCharCount + 1] = {}; + + if (resultId != nullptr) + { + SPX_THROW_ON_FAIL(hr = result_get_result_id(hresult, sz, maxCharCount)); + *resultId = Utils::ToSPXString(sz); + } + + if (reason != nullptr) + { + Result_Reason resultReason; + SPX_THROW_ON_FAIL(hr = result_get_reason(hresult, &resultReason)); + *reason = (Speech::ResultReason)resultReason; + } + } + + ResultReason m_reason; + SPXSTRING m_resultId; + std::shared_ptr> m_phrases; + SPXRESULTHANDLE m_hresult; + }; + + /// + /// Class for VoiceProfilePhraseCancellationDetails. + /// This class represents error details of a voice profile result. + /// + class VoiceProfilePhraseCancellationDetails + { + private: + CancellationErrorCode m_errorCode; + + public: + + /// + /// Creates an instance of VoiceProfilePhraseCancellationDetails object for the canceled VoiceProfile. + /// + /// The result that was canceled. + /// A shared pointer to VoiceProfilePhraseCancellationDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + return std::shared_ptr { new VoiceProfilePhraseCancellationDetails(result.get()) }; + } + + /// + /// The error code in case of an unsuccessful voice profile action( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful voice profile action( is set to Error). + /// + const SPXSTRING ErrorDetails; + + protected: + + /*! \cond PROTECTED */ + + VoiceProfilePhraseCancellationDetails(VoiceProfilePhraseResult* result) : + m_errorCode(GetCancellationErrorCode(result)), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonErrorDetails)) + { + } + + /*! \endcond */ + + private: + DISABLE_DEFAULT_CTORS(VoiceProfilePhraseCancellationDetails); + + + CancellationErrorCode GetCancellationErrorCode(VoiceProfilePhraseResult* result) + { + UNUSED(result); + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_canceled_error_code(hresult, &errorCode)); + + return (CancellationErrorCode)errorCode; + } + }; + + } + } + } +} diff --git a/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_result.h b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_result.h new file mode 100644 index 0000000..83d0db1 --- /dev/null +++ b/third_party/azure_speech_sdk/include/cxx_api/speechapi_cxx_voice_profile_result.h @@ -0,0 +1,180 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// See https://aka.ms/csspeech/license for the full license information. +// +// speechapi_cxx_speech_voice_profile_result.h: Public API declarations for VoiceProfileResult C++ class +// + +#pragma once +#include +#include +#include +#include +#include +#include + +namespace Microsoft { +namespace CognitiveServices { +namespace Speech { +namespace Speaker { + +/// +/// Class for VoiceProfileResult. +/// This class represents the result of processing voice profiles. +/// Added in version 1.12.0 +/// +class VoiceProfileResult +{ +private: + + /*! \cond PRIVATE */ + + class PrivatePropertyCollection : public PropertyCollection + { + public: + PrivatePropertyCollection(SPXRESULTHANDLE hresult) : + PropertyCollection( + [=]() { + SPXPROPERTYBAGHANDLE hpropbag = SPXHANDLE_INVALID; + result_get_property_bag(hresult, &hpropbag); + return hpropbag; + }()) + { + } + }; + + PrivatePropertyCollection m_properties; + + /*! \endcond */ + +public: + explicit VoiceProfileResult(SPXRESULTHANDLE hresult) : + m_properties(hresult), + ResultId(m_resultId), + Reason(m_reason), + Properties(m_properties), + m_hresult(hresult) + { + SPX_DBG_TRACE_SCOPE(__FUNCTION__, __FUNCTION__); + + PopulateResultFields(hresult, &m_resultId, &m_reason); + } + + virtual ~VoiceProfileResult() + { + ::recognizer_result_handle_release(m_hresult); + m_hresult = SPXHANDLE_INVALID; + } + + /// + /// Unique result id. + /// + const SPXSTRING& ResultId; + + /// + /// Voice profile result reason. + /// + const ResultReason& Reason; + + /// + /// A collection of properties and their values defined for this . + /// + PropertyCollection& Properties; + + /// + /// Internal. Explicit conversion operator. + /// + /// A handle. + explicit operator SPXRESULTHANDLE() { return m_hresult; } + +private: + DISABLE_DEFAULT_CTORS(VoiceProfileResult); + + void PopulateResultFields(SPXRESULTHANDLE hresult, SPXSTRING* resultId, Speech::ResultReason* reason) + { + SPX_INIT_HR(hr); + + const size_t maxCharCount = 2048; + char sz[maxCharCount + 1] = {}; + + if (resultId != nullptr) + { + SPX_THROW_ON_FAIL(hr = result_get_result_id(hresult, sz, maxCharCount)); + *resultId = Utils::ToSPXString(sz); + } + + if (reason != nullptr) + { + Result_Reason resultReason; + SPX_THROW_ON_FAIL(hr = result_get_reason(hresult, &resultReason)); + *reason = (Speech::ResultReason)resultReason; + } + } + + ResultReason m_reason; + SPXSTRING m_resultId; + SPXRESULTHANDLE m_hresult; +}; + +/// +/// Class for VoiceProfileCancellationDetails. +/// This class represents error details of a voice profile result. +/// +class VoiceProfileCancellationDetails +{ +private: + CancellationErrorCode m_errorCode; + +public: + + /// + /// Creates an instance of VoiceProfileCancellationDetails object for the canceled VoiceProfile. + /// + /// The result that was canceled. + /// A shared pointer to VoiceProfileCancellationDetails. + static std::shared_ptr FromResult(std::shared_ptr result) + { + return std::shared_ptr { new VoiceProfileCancellationDetails(result.get()) }; + } + + /// + /// The error code in case of an unsuccessful voice profile action( is set to Error). + /// If Reason is not Error, ErrorCode is set to NoError. + /// + const CancellationErrorCode& ErrorCode; + + /// + /// The error message in case of an unsuccessful voice profile action( is set to Error). + /// + const SPXSTRING ErrorDetails; + +protected: + + /*! \cond PROTECTED */ + + VoiceProfileCancellationDetails(VoiceProfileResult* result) : + m_errorCode(GetCancellationErrorCode(result)), + ErrorCode(m_errorCode), + ErrorDetails(result->Properties.GetProperty(PropertyId::SpeechServiceResponse_JsonErrorDetails)) + { + } + + /*! \endcond */ + +private: + DISABLE_DEFAULT_CTORS(VoiceProfileCancellationDetails); + + + CancellationErrorCode GetCancellationErrorCode(VoiceProfileResult* result) + { + UNUSED(result); + Result_CancellationErrorCode errorCode = CancellationErrorCode_NoError; + + SPXRESULTHANDLE hresult = (SPXRESULTHANDLE)(*result); + SPX_IFFAILED_THROW_HR(result_get_canceled_error_code(hresult, &errorCode)); + + return (CancellationErrorCode)errorCode; + } +}; + +} } } } // Microsoft::CognitiveServices::Speech::Speaker diff --git a/third_party/azure_speech_sdk/lib/Microsoft.CognitiveServices.Speech.core.lib b/third_party/azure_speech_sdk/lib/Microsoft.CognitiveServices.Speech.core.lib new file mode 100644 index 0000000000000000000000000000000000000000..e82663d9079a6c04e860cdc8d1f5cd1611097aa6 GIT binary patch literal 201752 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