Spaces:
Sleeping
Sleeping
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)}"})
|