text-generation-webui/extensions/whisper_stt/script.py
2023-03-09 12:46:50 +01:00

40 lines
1.1 KiB
Python

import gradio as gr
import speech_recognition as sr
import modules.shared as shared
input_hijack = {
'state': False,
'value': ["", ""]
}
def input_modifier(string):
return string
def do_stt():
transcription = ""
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
# recognize speech using whisper
try:
transcription = r.recognize_whisper(audio, language="english", model="tiny.en")
print("Whisper thinks you said " + transcription)
except sr.UnknownValueError:
print("Whisper could not understand audio")
except sr.RequestError as e:
print("Could not request results from Whisper")
# input_modifier(transcription)
input_hijack.update({"state": True, "value": [transcription, transcription]})
return transcription
def ui():
speech_button = gr.Button(value="STT")
output_transcription = gr.Textbox(label="Speech Preview")
speech_button.click(do_stt, outputs=[output_transcription])