Spaces:
Runtime error
Runtime error
# Transform an audio to text script with language detection. | |
# Author: Pratiksha Patel | |
# Description: This script record the audio, transform it to text, detect the language of the file and save it to a txt file. | |
# import required modules | |
import torch | |
import streamlit as st | |
from audio_recorder_streamlit import audio_recorder | |
from langdetect import detect | |
import numpy as np | |
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq | |
def transcribe_audio(audio_bytes): | |
processor = AutoProcessor.from_pretrained("openai/whisper-large") | |
model = AutoModelForSpeechSeq2Seq.from_pretrained("openai/whisper-large") | |
audio_array = np.frombuffer(audio_bytes, dtype=np.int16) | |
audio_tensor = torch.tensor(audio_array, dtype=torch.float64) / 32768.0 | |
inputs = processor(feature_extractor=audio_tensor, sampling_rate=16000, return_tensors="pt") | |
logits = model(**inputs).logits | |
predicted_ids = torch.argmax(logits, dim=-1) | |
transcription = processor.decode(predicted_ids[0]) | |
return transcription | |
# Streamlit app | |
st.title("Audio to Text Transcription..") | |
audio_bytes = audio_recorder(pause_threshold=3.0, sample_rate=16_000) | |
if audio_bytes: | |
st.audio(audio_bytes, format="audio/wav") | |
transcription = transcribe_audio(audio_bytes) | |
if transcription: | |
st.write("Transcription:") | |
st.write(transcription) | |
else: | |
st.write("Error: Failed to transcribe audio.") | |
else: | |
st.write("No audio recorded.") | |