Spaces:
No application file
No application file
| import azure.cognitiveservices.speech as speechsdk | |
| from azure.cognitiveservices.speech.audio import PushAudioInputStream | |
| import os | |
| import time | |
| # Replace with your own subscription key and service region | |
| speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY',''), region=os.environ.get('SPEECH_REGION','')) | |
| speech_config.speech_recognition_language="en-US" | |
| def recognize_from_file(file=None): | |
| # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" | |
| audio_config = speechsdk.audio.AudioConfig(filename=file) | |
| speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) | |
| result = speech_recognizer.recognize_once_async().get() | |
| return result.text | |
| def recognize_from_stream(stream,rec_cb): | |
| audio_config = speechsdk.audio.AudioConfig(stream=stream) | |
| speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) | |
| speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt))) | |
| speech_recognizer.recognized.connect(rec_cb) | |
| speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt))) | |
| speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt))) | |
| speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt))) | |
| def stop_cb(evt): | |
| print('CLOSING on {}'.format(evt)) | |
| speech_recognizer.stop_continuous_recognition() | |
| speech_recognizer.session_stopped.connect(stop_cb) | |
| speech_recognizer.canceled.connect(stop_cb) | |
| speech_recognizer.start_continuous_recognition_async() | |
| return speech_recognizer | |
| if __name__ == '__main__': | |
| ## Recognize from file | |
| # for audio_file in os.listdir("audio_samples"): | |
| # start = time.time() | |
| # print(recognize_from_file(f"audio_samples/{audio_file}"), " in ", time.time()-start) | |
| ## real-time recognition | |
| def rec_cb(evt): | |
| print("##########################") | |
| print(evt.result.text) | |
| stream = PushAudioInputStream() | |
| stream.write(open("audio_samples/audo_0.wav","rb").read()) | |
| recognize_from_stream(stream,rec_cb) | |
| time.sleep(10) |