Skip to content

Commit

Permalink
Merge pull request #3 from TheFloatingString/feature/elevenlabs
Browse files Browse the repository at this point in the history
Add translation
  • Loading branch information
TheFloatingString authored Feb 9, 2025
2 parents 1a9e2bb + 148ad77 commit 16b87f0
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,12 @@
import threading
import time

import speech_recognition as sr
from deep_translator import GoogleTranslator

from src import motor_funcs


app = Flask(__name__)

# Global variable to store the camera object
Expand Down Expand Up @@ -52,6 +56,7 @@ def video_feed():
)



@app.route("/motor/forward")
def motor_forward():
motor_funcs.motor_forward()
Expand Down Expand Up @@ -89,6 +94,34 @@ def cleanup():
camera.release()


def recognize_and_translate():
recognizer = sr.Recognizer()
microphone = sr.Microphone()

with microphone as source:
recognizer.adjust_for_ambient_noise(source)
while True:
try:
audio = recognizer.listen(source)
french_text = recognizer.recognize_google(audio, language="fr-FR")
english_text = GoogleTranslator(source="fr", target="en").translate(
french_text
)
yield f"data: French: {french_text}\nEnglish: {english_text}\n\n"
except sr.UnknownValueError:
yield "data: Could not understand audio\n\n"
except sr.RequestError as e:
yield f"data: Could not request results; {e}\n\n"
except Exception as e:
yield f"data: Error: {e}\n\n"


@app.route("/stream")
def stream():
return Response(recognize_and_translate(), mimetype="text/event-stream")



if __name__ == "__main__":
# Start ngrok tunnel
# public_url = ngrok.connect(5000)
Expand All @@ -100,4 +133,5 @@ def cleanup():
atexit.register(cleanup)

# Run Flask app
app.run(host="0.0.0.0", port=5000)
app.run(host="0.0.0.0", port=5000, threaded=True)

0 comments on commit 16b87f0

Please sign in to comment.