import gradio as gr import azure.cognitiveservices.speech as speechsdk # Azure credentials speech_key = "12afe22c558a4f8d8bd28d6a67cdb9b0" service_region = "westus" def recognize_speech(input_source, audio_file): try: speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region) if input_source == "Microphone": audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) else: audio_config = speechsdk.audio.AudioConfig(filename=audio_file.name) speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) print("Say something or wait for the audio file to be processed...") result = speech_recognizer.recognize_once() if result.reason == speechsdk.ResultReason.RecognizedSpeech: return f"Recognized: {result.text}" elif result.reason == speechsdk.ResultReason.NoMatch: return "No speech could be recognized" elif result.reason == speechsdk.ResultReason.Canceled: cancellation_details = result.cancellation_details return f"Speech Recognition canceled: {cancellation_details.reason}\nError details: {cancellation_details.error_details}" except Exception as e: return f"An error occurred: {e}" iface = gr.Interface( fn=recognize_speech, inputs=[ gr.inputs.Radio(choices=["Microphone", "Audio File"], label="Input Source", default="Microphone"), gr.inputs.File(label="Upload Audio File", type="file") ], outputs="text" ) iface.launch()