Spaces:
Sleeping
Sleeping
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" | |
# 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) | |