File size: 1,886 Bytes
87d4428
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Import the required libraries
import streamlit as st
import whisper
import speech_recognition as sr
import os

# Function to transcribe audio using OpenAI Whisper
def transcribe_whisper(model_name, file_path):
    model = whisper.load_model(model_name)
    result = model.transcribe(file_path)
    return result["text"]

# Function to transcribe audio using Google Speech API
def transcribe_speech_recognition(file_path):
    r = sr.Recognizer()
    with sr.AudioFile(file_path) as source:
        r.adjust_for_ambient_noise(source)
        audio = r.record(source)
    result = r.recognize_google(audio)
    return result

# Streamlit App
st.title('Transcriptor de Audio')

uploaded_file = st.file_uploader("Sube tu archivo de audio para transcribir", type=['wav', 'mp3'])

if uploaded_file is not None:
    file_details = {"FileName":uploaded_file.name, "FileType":uploaded_file.type, "FileSize":uploaded_file.size}
    st.write(file_details)
    
    # Make sure the temp directory exists
    if not os.path.exists('temp'):
        os.makedirs('temp')

    with open(os.path.join("temp",uploaded_file.name), "wb") as f:
        f.write(uploaded_file.getbuffer())
    
    st.write("Archivo de audio cargado correctamente. Por favor, selecciona el método de transcripción.")
    transcription_method = st.selectbox('Escoge el método de transcripción', ('OpenAI Whisper', 'Google Speech API'))

    if transcription_method == 'OpenAI Whisper':
        model_name = st.selectbox('Escoge el modelo de Whisper', ('base', 'small', 'medium', 'large', 'tiny'))

    if st.button('Transcribir'):
        if transcription_method == 'OpenAI Whisper':
            transcript = transcribe_whisper(model_name, os.path.join("temp",uploaded_file.name))
        else:
            transcript = transcribe_speech_recognition(os.path.join("temp",uploaded_file.name))

        st.write(transcript)