# cargamos el modelo de huggingsound import re import unidecode from huggingsound import SpeechRecognitionModel from models.model import * from models.plantillas_codigo import * from models.variables_globales import * # creación del modelo model = SpeechRecognitionModel("patrickvonplaten/wav2vec2-large-xlsr-53-spanish-with-lm") # Variables globales bloque = '' # Define el contexto (si es función, condicional, ciclo, etc.) codigo = None # Guarda el código hasta el momento indentacion = 0 # Nivel de indentación linea_codigo = 0 # Esto para dar seguimiento al eliminado de una linea recomendacion = "" # fin_de_bloque=False import gradio as gr def transcribe(audio, Español, Codigo_Python): global bloque global codigo global indentacion transcriptions_es = model.transcribe([audio])[0] # quitamos el acento de la transcripcion frase = unidecode.unidecode(transcriptions_es['transcription']).lower() # print(frase) if not bloque: # Significa que es la primera vez codigo = main(frase) else: codigo = agregar_adentro(codigo, frase) return codigo, frase inputs = gr.inputs.Audio(label="Dar click para grabar tu voz", type="filepath", source="microphone") output1 = gr.outputs.Textbox(label="Asi se ve tu código") output2 = gr.outputs.Textbox(label="Lo que entendió la caracola fue:") title = "Caracola App" description = "Aplicación que ayuda a programar a traves de tu voz" # ,'mientras variable alpha es menor igual a numero dos' # ,'Definir variable con nombre india igual a numero uno' input2 = gr.inputs.Textbox(lines=0, placeholder="Aqui aparece el texto en español de los ejemplos") input3 = gr.inputs.Textbox(lines=0, placeholder="Aqui aparece el codigo en python de los ejemplos") output_html = gr.outputs.HTML(label='Asi se ve tu código:') examples = [ ['wav/comentario.wav','agregar comentario mi primer función', '# mi primer funcion'], ['wav/funcion.wav','definir función con nombre mágica y parámetros noviembre', 'def magica(n):'], ['wav/definira.wav','definir variable con nombre andrea igual a natural cero', 'a=0'], ['wav/definirb.wav','definir variable con nombre bravo igual a natural uno', 'b = 1'], ['wav/iteracion.wav','ejecuta iteracion para india en un rango noviembre', 'for i in range(n)'], ['wav/asignar_c_b.wav','asignar variable carlos con bravo', 'c=b'], ['wav/andreabravo.wav','asignar variable bravo con andrea mas bravo', 'b = a + b'], ['wav/asignar_a_c.wav','asignar variable andrea con carlos', 'a=c'], ['wav/terminar_bloque.wav','terminar bloque',''], ['wav/comentario2.wav','agregar comentario fin de ciclo', '# fin de ciclo'], ['wav/regresa.wav','regresa variable andrea', 'return a'], ['wav/llamada.wav', 'ejecuta mágica con argumentos diez', 'magica(10)'] ] article = " Repositorio de la app" demo = gr.Interface(fn=transcribe, inputs=[inputs, input2, input3], outputs=[output_html,output2], examples=examples, title=title, description=description, article=article, allow_flagging="never", theme="darkpeach", ) demo.launch()