pratikshahp's picture
Update app.py
821e791 verified
raw
history blame
1.47 kB
# 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.")