Spaces:
Running
on
T4
Running
on
T4
model updated
Browse files- app/passing.py +4 -4
- app/routers/V1/voice/voice_router.py +19 -18
app/passing.py
CHANGED
|
@@ -17,10 +17,10 @@ def calculate_passing(sequence, phonetic, cosine=0, euclidean=0, passing_thresho
|
|
| 17 |
|
| 18 |
# Calculate the weighted average
|
| 19 |
weights = {
|
| 20 |
-
'sequence': 0.
|
| 21 |
-
'phonetic': 0.
|
| 22 |
-
'cosine': 0,
|
| 23 |
-
'euclidean': 0
|
| 24 |
}
|
| 25 |
|
| 26 |
weighted_score = (
|
|
|
|
| 17 |
|
| 18 |
# Calculate the weighted average
|
| 19 |
weights = {
|
| 20 |
+
'sequence': 0.35,
|
| 21 |
+
'phonetic': 0.35,
|
| 22 |
+
'cosine': 0.15,
|
| 23 |
+
'euclidean': 0.15
|
| 24 |
}
|
| 25 |
|
| 26 |
weighted_score = (
|
app/routers/V1/voice/voice_router.py
CHANGED
|
@@ -23,25 +23,25 @@ async def transcribe_audio(
|
|
| 23 |
):
|
| 24 |
try:
|
| 25 |
# Validate URL
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
|
| 32 |
-
#
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
|
| 40 |
-
|
| 41 |
|
| 42 |
-
#
|
| 43 |
-
|
| 44 |
-
|
| 45 |
|
| 46 |
# Read file bytes
|
| 47 |
recorded_bytes = await recorded.read()
|
|
@@ -55,7 +55,8 @@ async def transcribe_audio(
|
|
| 55 |
text = get_transcription(filename_recorded)
|
| 56 |
text = clean_transcription(text)
|
| 57 |
sequence, phonetic = match(matcher_text, text)
|
| 58 |
-
|
|
|
|
| 59 |
return JSONResponse(
|
| 60 |
{
|
| 61 |
"transcription": text,
|
|
@@ -65,7 +66,7 @@ async def transcribe_audio(
|
|
| 65 |
)
|
| 66 |
finally:
|
| 67 |
# Clean up the temporary file
|
| 68 |
-
|
| 69 |
os.remove(filename_recorded)
|
| 70 |
|
| 71 |
except Exception as e:
|
|
|
|
| 23 |
):
|
| 24 |
try:
|
| 25 |
# Validate URL
|
| 26 |
+
if not original_url.endswith(".wav"):
|
| 27 |
+
raise HTTPException(
|
| 28 |
+
status_code=status.HTTP_400_BAD_REQUEST,
|
| 29 |
+
detail="Invalid URL. Please provide a URL pointing to a wav file.",
|
| 30 |
+
)
|
| 31 |
|
| 32 |
+
# Download the audio file from the URL
|
| 33 |
+
response = requests.get(original_url)
|
| 34 |
+
if response.status_code != 200:
|
| 35 |
+
raise HTTPException(
|
| 36 |
+
status_code=status.HTTP_400_BAD_REQUEST,
|
| 37 |
+
detail="Unable to download the audio file from the URL.",
|
| 38 |
+
)
|
| 39 |
|
| 40 |
+
filename_original = f"audio_{int(time.time())}_original.wav"
|
| 41 |
|
| 42 |
+
# Save the downloaded file temporarily
|
| 43 |
+
with open(filename_original, "wb") as buffer:
|
| 44 |
+
buffer.write(response.content)
|
| 45 |
|
| 46 |
# Read file bytes
|
| 47 |
recorded_bytes = await recorded.read()
|
|
|
|
| 55 |
text = get_transcription(filename_recorded)
|
| 56 |
text = clean_transcription(text)
|
| 57 |
sequence, phonetic = match(matcher_text, text)
|
| 58 |
+
Euclidean, Cosine = mfcc_similarty_check(filename_original, filename_recorded)
|
| 59 |
+
weighted_score, is_passing = calculate_passing(sequence, phonetic, Cosine, Euclidean)
|
| 60 |
return JSONResponse(
|
| 61 |
{
|
| 62 |
"transcription": text,
|
|
|
|
| 66 |
)
|
| 67 |
finally:
|
| 68 |
# Clean up the temporary file
|
| 69 |
+
os.remove(filename_original)
|
| 70 |
os.remove(filename_recorded)
|
| 71 |
|
| 72 |
except Exception as e:
|