Spaces:
Sleeping
Sleeping
File size: 5,235 Bytes
3356369 dc74557 0e1d7d8 3356369 0e1d7d8 3356369 a1592a0 3356369 dc74557 b4c6ab5 3356369 7ceef69 3356369 dc74557 b4c6ab5 3356369 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 b4c6ab5 dc74557 0e1d7d8 dc74557 |
1 2 3 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
import speech_recognition as sr
from googletrans import Translator
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
recognizer = sr.Recognizer()
translator = Translator()
# Language settings mapping
language_mapping = {
1: ('ta-IN', 'ta', 'en'), # Tamil: Recognize Tamil and translate to English
2: ('en-US', 'en', 'en'), # English: Recognize English and translate to English
3: ('hi-IN', 'hi', 'en') # Hindi: Recognize Hindi and translate to English
}
@app.route("/")
def index():
return render_template("index.html")
@app.route("/translate", methods=["POST"])
def translate():
# Get user input for language selection (1: Tamil, 2: English, 3: Hindi)
user_input = int(request.form.get("language"))
# Check if user input is valid
if user_input in language_mapping:
recognition_lang, src_lang, dest_lang = language_mapping[user_input]
# Start speech recognition and process the audio
with sr.Microphone() as source:
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
# Recognize speech in the selected language
try:
ori_text = recognizer.recognize_google(audio, language=recognition_lang)
translated_text = translator.translate(ori_text, src=src_lang, dest=dest_lang)
print(f"Translated Text: {translated_text.text}")
return jsonify({"original": ori_text, "translation": translated_text.text})
except Exception as e:
return jsonify({"error": str(e)})
else:
return jsonify({"error": "Invalid input! Please enter 1, 2, or 3."})
if __name__ == "__main__":
app.run(debug=True)
# from flask import Flask, request, jsonify
# import speech_recognition as sr
# app = Flask(__name__)
# @app.route('/')
# def index():
# return '''
# <!DOCTYPE html>
# <html lang="en">
# <head>
# <meta charset="UTF-8">
# <meta name="viewport" content="width=device-width, initial-scale=1.0">
# <title>Speech Recognition with Python</title>
# </head>
# <body>
# <h1>Speech Recognition with Python</h1>
# <button onclick="startRecording()">Start Recording</button>
# <div id="transcription"></div>
# <script>
# function startRecording() {
# const button = document.querySelector('button');
# button.disabled = true;
# button.textContent = "Recording...";
# // Create a new form data object to send audio
# let formData = new FormData();
# navigator.mediaDevices.getUserMedia({ audio: true })
# .then(stream => {
# let mediaRecorder = new MediaRecorder(stream);
# mediaRecorder.start();
# mediaRecorder.ondataavailable = function(event) {
# formData.append('audio', event.data);
# fetch('/recognize', {
# method: 'POST',
# body: formData
# })
# .then(response => response.json())
# .then(data => {
# document.getElementById('transcription').textContent = data.transcript;
# button.disabled = false;
# button.textContent = "Start Recording";
# })
# .catch(err => {
# console.error('Error during recognition:', err);
# button.disabled = false;
# button.textContent = "Start Recording";
# });
# };
# })
# .catch(err => {
# console.error('Permission denied:', err);
# button.disabled = false;
# button.textContent = "Start Recording";
# });
# }
# </script>
# </body>
# </html>
# '''
# @app.route('/recognize', methods=['POST'])
# def recognize():
# if 'audio' not in request.files:
# return jsonify({'error': 'No audio file found in request'}), 400
# audio_file = request.files['audio']
# recognizer = sr.Recognizer()
# try:
# # Use SpeechRecognition to process the audio
# with sr.AudioFile(audio_file) as source:
# audio = recognizer.record(source)
# transcript = recognizer.recognize_google(audio) # Google Web Speech API
# return jsonify({'transcript': transcript})
# except Exception as e:
# return jsonify({'error': str(e)}), 500
# if __name__ == '__main__':
# app.run(debug=True)
|