forked from React-Group/interstellar_ai
Compare commits
3 commits
edc7260966
...
4e878b28f3
Author | SHA1 | Date | |
---|---|---|---|
4e878b28f3 | |||
|
6d03e1fafc | ||
|
42b12f73b4 |
4 changed files with 25 additions and 4 deletions
|
@ -6,6 +6,7 @@ from ai import AI
|
|||
from db import DB
|
||||
from weather import Weather
|
||||
from voice import VoiceRecognition
|
||||
from tts import TTS
|
||||
|
||||
|
||||
class API:
|
||||
|
@ -17,6 +18,7 @@ class API:
|
|||
self.db = DB()
|
||||
self.weather = Weather()
|
||||
self.voice = VoiceRecognition()
|
||||
self.tts = TTS()
|
||||
self.db.load_database()
|
||||
self.ai_response_lock = threading.Lock()
|
||||
CORS(self.app)
|
||||
|
@ -98,7 +100,7 @@ class API:
|
|||
@self.app.route('/interstellar_ai/api/voice_recognition', methods=['POST'])
|
||||
def voice_recognition():
|
||||
recognition_type = request.args.get('type')
|
||||
audio = request.args.get('audio_data')
|
||||
audio = request.files['audio']
|
||||
option = request.args.get('option')
|
||||
if recognition_type == "basic":
|
||||
return jsonify({'status': 200, 'response': self.voice.basic_recognition(audio, option)})
|
||||
|
@ -113,6 +115,11 @@ class API:
|
|||
|
||||
self.app.run(debug=True, host='0.0.0.0', port=5000)
|
||||
|
||||
@self.app.route('/interstellar_ai/api/tts', methods=['POST'])
|
||||
def tts():
|
||||
text = request.args.get('text')
|
||||
return jsonify({'status': 200, 'response': self.tts.gen_tts(text)})
|
||||
|
||||
|
||||
api = API()
|
||||
api.run()
|
||||
|
|
|
@ -10,4 +10,6 @@ PocketSphinx
|
|||
google-cloud-speech
|
||||
google-generativeai
|
||||
python-weather
|
||||
pycouchdb
|
||||
pycouchdb
|
||||
pyttsx3
|
||||
pip-licenses
|
10
py/tts.py
Normal file
10
py/tts.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
import pyttsx3
|
||||
|
||||
|
||||
class TTS:
|
||||
@staticmethod
|
||||
def gen_tts(text):
|
||||
engine = pyttsx3.init()
|
||||
engine.setProperty('rate', 70)
|
||||
engine.say(text)
|
||||
engine.runAndWait()
|
|
@ -6,8 +6,10 @@ class VoiceRecognition:
|
|||
def basic_recognition(audio, option):
|
||||
r = sr.Recognizer()
|
||||
if option == "online":
|
||||
return r.recognize_google_cloud(audio)
|
||||
with audio as source:
|
||||
return r.recognize_google_cloud(source)
|
||||
elif option == "offline":
|
||||
return r.recognize_sphinx(audio)
|
||||
with audio as source:
|
||||
return r.recognize_sphinx(source)
|
||||
|
||||
return False
|
||||
|
|
Loading…
Reference in a new issue