Update app.py
Browse files
app.py
CHANGED
@@ -132,6 +132,9 @@ LANGUAGE_NAME_TO_CODE = {
|
|
132 |
# Reverse mapping of language codes to full language names
|
133 |
CODE_TO_LANGUAGE_NAME = {v: k for k, v in LANGUAGE_NAME_TO_CODE.items()}
|
134 |
|
|
|
|
|
|
|
135 |
def detect_language(audio_file):
|
136 |
"""Detect the language of the audio file."""
|
137 |
# Load the Whisper model (use "base" for faster detection)
|
@@ -182,10 +185,16 @@ def transcribe_audio(audio_file, language="Auto Detect", model_size="Base (Faste
|
|
182 |
detected_language = language
|
183 |
else:
|
184 |
# Use the selected Whisper model
|
185 |
-
if model_size == "Systran
|
186 |
# Use faster-whisper for the Systran model
|
187 |
-
model = WhisperModel(model_size, device=
|
188 |
-
segments, info = model.transcribe(
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
transcription = " ".join([segment.text for segment in segments])
|
190 |
detected_language_code = info.language
|
191 |
detected_language = CODE_TO_LANGUAGE_NAME.get(detected_language_code, "Unknown Language")
|
|
|
132 |
# Reverse mapping of language codes to full language names
|
133 |
CODE_TO_LANGUAGE_NAME = {v: k for k, v in LANGUAGE_NAME_TO_CODE.items()}
|
134 |
|
135 |
+
# Device and compute type for faster-whisper
|
136 |
+
device, torch_dtype = ("cuda", "float32") if torch.cuda.is_available() else ("cpu", "int8")
|
137 |
+
|
138 |
def detect_language(audio_file):
|
139 |
"""Detect the language of the audio file."""
|
140 |
# Load the Whisper model (use "base" for faster detection)
|
|
|
185 |
detected_language = language
|
186 |
else:
|
187 |
# Use the selected Whisper model
|
188 |
+
if model_size == "Systran Faster Whisper Large v3":
|
189 |
# Use faster-whisper for the Systran model
|
190 |
+
model = WhisperModel(MODELS[model_size], device=device, compute_type=torch_dtype)
|
191 |
+
segments, info = model.transcribe(
|
192 |
+
processed_audio_path,
|
193 |
+
task="transcribe",
|
194 |
+
word_timestamps=True,
|
195 |
+
repetition_penalty=1.1,
|
196 |
+
temperature=[0.0, 0.1, 0.2, 0.3, 0.4, 0.6, 0.8, 1.0],
|
197 |
+
)
|
198 |
transcription = " ".join([segment.text for segment in segments])
|
199 |
detected_language_code = info.language
|
200 |
detected_language = CODE_TO_LANGUAGE_NAME.get(detected_language_code, "Unknown Language")
|