import streamlit as st import requests from transformers import pipeline # Hugging Face Whisper API endpoint API_URL = "https://api-inference.huggingface.co/models/openai/whisper-large-v3-turbo" # Function to send the audio file to the Hugging Face Whisper API def query(file_data, my_key): headers = {"Authorization": f"Bearer {my_key}"} response = requests.post(API_URL, headers=headers, data=file_data) if response.status_code == 200: return response.json() else: return {"error": response.text} # Streamlit UI elements st.title("Transcription App") st.write("Upload one or more .wav, .mp3, or .flac audio files, and get the transcription.") # Get the user's Hugging Face API key my_key = st.text_input("Enter your Hugging Face API Key", type="password") # File uploader for audio files uploaded_files = st.file_uploader("Choose audio file(s)", type=["mp3", "wav", "flac"], accept_multiple_files=True) if my_key and uploaded_files: # Proceed only if the API key is provided and files are uploaded st.write("Processing your files...") results = {} # Store results for each file for uploaded_file in uploaded_files: file_data = uploaded_file.read() # Read the file content st.write(f"Sending {uploaded_file.name} to API...") output = query(file_data, my_key) # Send the file to the API # Store the result results[uploaded_file.name] = output # Display the results for file, result in results.items(): st.write(f"### Results for `{file}`:") if "error" in result: st.error(result["error"]) else: st.json(result)