import streamlit as st from PIL import Image from groq import Groq import os from transformers import pipeline st.image('calamo.png', caption="", use_column_width=False) import scipy.io.wavfile synthesizer = pipeline("text-to-speech", "suno/bark") client = Groq( api_key=os.environ.get("GROQ_API_KEY"), ) # Other content of your app st.title("plAIn Voice") # Add more components here # Define a function to process the input def process_text(input_text): prompt = ''' Eres un experto en lenguaje claro. Las pautas básicas para lenguaje claro son: - Expresar una idea por oración. - Utilizar oraciones de treinta palabras o menos. - Evitar la jerga. - Seguir el orden sujeto, verbo y predicado. - Utilizar una estructura lógica, organizando la información de manera clara y coherente. Evalúa la calidad del lenguaje de este texto y sugiere las correcciones oportunas:" ''' input = prompt + input_text chat_completion = client.chat.completions.create( messages=[ { "role": "user", "content": input, } ], model="mixtral-8x7b-32768", ) return (chat_completion.choices[0].message.content) def generate_audio(input_text): tts = process_text(input_text) speech = synthesizer(tts, forward_params={"do_sample": True}) scipy.io.wavfile.write("bark_out.wav", rate=speech["sampling_rate"], data=speech["audio"]) return "bark_out.wav" user_input = st.text_input("Pega un texto para aclararlo y escuchar una lectura.") if st.button('Aclarar'): if user_input == "": st.write("Pega un texto aquí") else: speech_file = generate_audio(user_input) st.audio(speech_file, format='audio/wav')