speech_recognition_tutorial / pages /4_Trying Out(Guess the Phrase).py
chandralegend's picture
added tutorial content
516de6c
raw
history blame
2.03 kB
import streamlit as st
from utils.levels import complete_level, render_page, initialize_level
from utils.login import initialize_login, get_login
import requests
import os
def check_sentence_similarity(source_sentence, sentence):
response = requests.post(
"https://api-inference.huggingface.co/models/sentence-transformers/all-MiniLM-L6-v2",
headers={"Authorization": "Bearer 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"},
json={
"inputs": {"source_sentence": source_sentence, "sentences": [sentence]},
},
)
return response.json()[0]
def get_audio_transcription(filename):
with open(filename, "rb") as f:
data = f.read()
response = requests.post(
"https://api-inference.huggingface.co/models/openai/whisper-medium",
headers={"Authorization": "Bearer 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"},
data=data,
)
return response.json()
LEVEL = 4
initialize_login()
initialize_level()
def step_page():
st.header("Tryit Out")
uploaded_file = st.file_uploader("Upload a file", type=["wav", "mp3", "flac"])
if uploaded_file:
audio_file = os.path.join(".sessions", get_login()["username"], "audio.flac")
with open(audio_file, "wb") as f:
f.write(uploaded_file.getbuffer())
else:
audio_file = "assets/sample1.flac"
st.audio(audio_file, format="audio/flac")
transcript = st.text_input("What did you hear?")
if st.button("Check") and transcript:
with st.spinner("Checking..."):
output = get_audio_transcription(audio_file)
similarity = check_sentence_similarity(output["text"], transcript)
if similarity > 0.75:
st.success(
f"Correct! You are {similarity * 100}% similar to the original sentence."
)
else:
st.error("You are not similar enough to the original sentence.")
st.info(f"Original sentence: {output['text']}")
render_page(step_page, LEVEL)