Spaces:
Paused
Paused
feat: use turbo model and return all probs
Browse files- language_detector.py +4 -2
- main.py +4 -3
language_detector.py
CHANGED
|
@@ -27,6 +27,7 @@ class LanguageDetector:
|
|
| 27 |
Returns:
|
| 28 |
str: Detected language code (e.g., "en", "fr", etc.)
|
| 29 |
float: Confidence score
|
|
|
|
| 30 |
"""
|
| 31 |
try:
|
| 32 |
# Load and preprocess audio
|
|
@@ -41,7 +42,7 @@ class LanguageDetector:
|
|
| 41 |
detected_lang = max(probs, key=probs.get)
|
| 42 |
confidence = probs[detected_lang]
|
| 43 |
|
| 44 |
-
return detected_lang, confidence
|
| 45 |
|
| 46 |
except Exception as e:
|
| 47 |
logger.error(f"Error in language detection: {e}")
|
|
@@ -57,6 +58,7 @@ class LanguageDetector:
|
|
| 57 |
Returns:
|
| 58 |
str: Detected language code (e.g., "en", "fr", etc.)
|
| 59 |
float: Confidence score
|
|
|
|
| 60 |
"""
|
| 61 |
try:
|
| 62 |
# Convert bytes to numpy array using librosa
|
|
@@ -77,7 +79,7 @@ class LanguageDetector:
|
|
| 77 |
detected_lang = max(probs, key=probs.get)
|
| 78 |
confidence = probs[detected_lang]
|
| 79 |
|
| 80 |
-
return detected_lang, confidence
|
| 81 |
|
| 82 |
except Exception as e:
|
| 83 |
logger.error(f"Error in language detection: {e}")
|
|
|
|
| 27 |
Returns:
|
| 28 |
str: Detected language code (e.g., "en", "fr", etc.)
|
| 29 |
float: Confidence score
|
| 30 |
+
dict: All language probabilities
|
| 31 |
"""
|
| 32 |
try:
|
| 33 |
# Load and preprocess audio
|
|
|
|
| 42 |
detected_lang = max(probs, key=probs.get)
|
| 43 |
confidence = probs[detected_lang]
|
| 44 |
|
| 45 |
+
return detected_lang, confidence, probs
|
| 46 |
|
| 47 |
except Exception as e:
|
| 48 |
logger.error(f"Error in language detection: {e}")
|
|
|
|
| 58 |
Returns:
|
| 59 |
str: Detected language code (e.g., "en", "fr", etc.)
|
| 60 |
float: Confidence score
|
| 61 |
+
dict: All language probabilities
|
| 62 |
"""
|
| 63 |
try:
|
| 64 |
# Convert bytes to numpy array using librosa
|
|
|
|
| 79 |
detected_lang = max(probs, key=probs.get)
|
| 80 |
confidence = probs[detected_lang]
|
| 81 |
|
| 82 |
+
return detected_lang, confidence, probs
|
| 83 |
|
| 84 |
except Exception as e:
|
| 85 |
logger.error(f"Error in language detection: {e}")
|
main.py
CHANGED
|
@@ -31,7 +31,7 @@ language_detector = None
|
|
| 31 |
async def lifespan(app: FastAPI):
|
| 32 |
global kit, language_detector
|
| 33 |
kit = WhisperLiveKit()
|
| 34 |
-
language_detector = LanguageDetector(model_name="
|
| 35 |
yield
|
| 36 |
|
| 37 |
app = FastAPI(lifespan=lifespan)
|
|
@@ -68,14 +68,15 @@ async def detect_language(file: UploadFile = File(...)):
|
|
| 68 |
|
| 69 |
# Use the language detector with the saved file
|
| 70 |
if language_detector:
|
| 71 |
-
detected_lang, confidence = language_detector.detect_language_from_file(file_path)
|
| 72 |
|
| 73 |
# Clean up - remove the temporary file
|
| 74 |
os.remove(file_path)
|
| 75 |
|
| 76 |
return JSONResponse({
|
| 77 |
"language": detected_lang,
|
| 78 |
-
"confidence": float(confidence)
|
|
|
|
| 79 |
})
|
| 80 |
else:
|
| 81 |
return JSONResponse(
|
|
|
|
| 31 |
async def lifespan(app: FastAPI):
|
| 32 |
global kit, language_detector
|
| 33 |
kit = WhisperLiveKit()
|
| 34 |
+
language_detector = LanguageDetector(model_name="turbo")
|
| 35 |
yield
|
| 36 |
|
| 37 |
app = FastAPI(lifespan=lifespan)
|
|
|
|
| 68 |
|
| 69 |
# Use the language detector with the saved file
|
| 70 |
if language_detector:
|
| 71 |
+
detected_lang, confidence, probs = language_detector.detect_language_from_file(file_path)
|
| 72 |
|
| 73 |
# Clean up - remove the temporary file
|
| 74 |
os.remove(file_path)
|
| 75 |
|
| 76 |
return JSONResponse({
|
| 77 |
"language": detected_lang,
|
| 78 |
+
"confidence": float(confidence),
|
| 79 |
+
"probabilities": {lang: float(prob) for lang, prob in probs.items()}
|
| 80 |
})
|
| 81 |
else:
|
| 82 |
return JSONResponse(
|