Update app.py
Browse files
app.py
CHANGED
@@ -2,6 +2,7 @@ from flask import Flask, render_template_string, request, jsonify
|
|
2 |
from datetime import datetime
|
3 |
import speech_recognition as sr # Import speech recognition
|
4 |
from tempfile import NamedTemporaryFile
|
|
|
5 |
import os
|
6 |
|
7 |
app = Flask(__name__)
|
@@ -141,16 +142,23 @@ def index():
|
|
141 |
def process_audio():
|
142 |
try:
|
143 |
audio_file = request.files['audio']
|
144 |
-
# Save the
|
145 |
temp_file = NamedTemporaryFile(delete=False, suffix=".wav")
|
146 |
audio_file.save(temp_file.name)
|
147 |
|
|
|
|
|
|
|
|
|
148 |
recognizer = sr.Recognizer()
|
149 |
-
with sr.AudioFile(
|
150 |
audio_data = recognizer.record(source)
|
151 |
command = recognizer.recognize_google(audio_data)
|
152 |
response = process_command(command)
|
153 |
-
|
|
|
|
|
|
|
154 |
return jsonify({"response": response})
|
155 |
except Exception as e:
|
156 |
return jsonify({"response": f"An error occurred: {str(e)}"})
|
|
|
2 |
from datetime import datetime
|
3 |
import speech_recognition as sr # Import speech recognition
|
4 |
from tempfile import NamedTemporaryFile
|
5 |
+
import ffmpeg
|
6 |
import os
|
7 |
|
8 |
app = Flask(__name__)
|
|
|
142 |
def process_audio():
|
143 |
try:
|
144 |
audio_file = request.files['audio']
|
145 |
+
# Save the uploaded file temporarily
|
146 |
temp_file = NamedTemporaryFile(delete=False, suffix=".wav")
|
147 |
audio_file.save(temp_file.name)
|
148 |
|
149 |
+
# Convert the file to PCM WAV format if necessary
|
150 |
+
converted_file = NamedTemporaryFile(delete=False, suffix=".wav")
|
151 |
+
ffmpeg.input(temp_file.name).output(converted_file.name, acodec='pcm_s16le', ac=1, ar='16000').run(overwrite_output=True)
|
152 |
+
|
153 |
recognizer = sr.Recognizer()
|
154 |
+
with sr.AudioFile(converted_file.name) as source:
|
155 |
audio_data = recognizer.record(source)
|
156 |
command = recognizer.recognize_google(audio_data)
|
157 |
response = process_command(command)
|
158 |
+
|
159 |
+
# Clean up temporary files
|
160 |
+
os.unlink(temp_file.name)
|
161 |
+
os.unlink(converted_file.name)
|
162 |
return jsonify({"response": response})
|
163 |
except Exception as e:
|
164 |
return jsonify({"response": f"An error occurred: {str(e)}"})
|