Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,59 +1,51 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
import
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
# Function to translate text from English to Hindi
|
32 |
-
def translate_text(text):
|
33 |
inputs = tokenizer(text, return_tensors="pt", padding=True)
|
34 |
-
translated =
|
35 |
-
translated_text = tokenizer.
|
36 |
return translated_text
|
37 |
|
38 |
-
|
39 |
-
def is_after_6pm_ist():
|
40 |
-
ist = pytz.timezone('Asia/Kolkata')
|
41 |
-
current_time = datetime.now(ist)
|
42 |
-
return current_time.hour >= 18
|
43 |
-
|
44 |
-
@app.route('/translate', methods=['POST'])
|
45 |
-
def translate_audio():
|
46 |
-
if not is_after_6pm_ist():
|
47 |
-
return jsonify({'error': 'Service available only after 6 PM IST'}), 403
|
48 |
|
49 |
-
|
50 |
-
|
|
|
|
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
return
|
56 |
|
57 |
-
|
58 |
-
|
|
|
|
|
59 |
|
|
|
1 |
+
import librosa
|
2 |
+
import numpy as np
|
3 |
+
import tensorflow as tf
|
4 |
+
|
5 |
+
def load_audio(file_path):
|
6 |
+
audio, sr = librosa.load(file_path, sr=16000)
|
7 |
+
return audio, sr
|
8 |
+
|
9 |
+
def extract_features(audio, sr):
|
10 |
+
mfccs = librosa.feature.mfcc(y=audio, sr=sr, n_mfcc=13)
|
11 |
+
return mfccs
|
12 |
+
|
13 |
+
# Load pre-trained model (example: DeepSpeech)
|
14 |
+
model = tf.keras.models.load_model('deepspeech_model.h5')
|
15 |
+
|
16 |
+
def speech_to_text(audio):
|
17 |
+
features = extract_features(audio, 16000)
|
18 |
+
features = np.expand_dims(features, axis=0) # Model expects batch dimension
|
19 |
+
text = model.predict(features)
|
20 |
+
return text
|
21 |
+
|
22 |
+
from transformers import MarianMTModel, MarianTokenizer
|
23 |
+
|
24 |
+
# Load pre-trained translation model
|
25 |
+
model_name = 'Helsinki-NLP/opus-mt-en-hi'
|
26 |
+
tokenizer = MarianTokenizer.from_pretrained(model_name)
|
27 |
+
translation_model = MarianMTModel.from_pretrained(model_name)
|
28 |
+
|
29 |
+
def translate_text(text, tokenizer, model):
|
|
|
|
|
|
|
30 |
inputs = tokenizer(text, return_tensors="pt", padding=True)
|
31 |
+
translated = model.generate(**inputs)
|
32 |
+
translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
|
33 |
return translated_text
|
34 |
|
35 |
+
import datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
+
def process_audio_for_translation(audio_file_path):
|
38 |
+
current_time = datetime.datetime.now().time()
|
39 |
+
if current_time < datetime.time(18, 0):
|
40 |
+
return "Translation service is available only after 6 PM IST"
|
41 |
|
42 |
+
audio, sr = load_audio(audio_file_path)
|
43 |
+
english_text = speech_to_text(audio)
|
44 |
+
hindi_text = translate_text(english_text, tokenizer, translation_model)
|
45 |
+
return hindi_text
|
46 |
|
47 |
+
# Example usage
|
48 |
+
audio_file_path = 'path_to_audio_file.wav'
|
49 |
+
translated_text = process_audio_for_translation(audio_file_path)
|
50 |
+
print(translated_text)
|
51 |
|