Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b0d5ad4f27 | ||
|
9346b26d09 | ||
|
8c295935c7 | ||
|
de91f18a68 | ||
|
462c39936c | ||
|
c5dec4c83b | ||
|
9bc20638ba | ||
|
692616a1c3 | ||
|
7508a4e283 |
20
Dockerfile
20
Dockerfile
@ -1,19 +1,25 @@
|
||||
# THIS IS ONLY A TEST, NOT READY FOR PRODUCTION
|
||||
|
||||
FROM ubuntu:21.04
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV ENV_STATUS=${NODE_ENV:-production}
|
||||
|
||||
WORKDIR /jarvis-server
|
||||
# For suport set local time zone.
|
||||
RUN apt-get update -y && apt-get upgrade -y
|
||||
|
||||
RUN apt update && apt upgrade -y
|
||||
WORKDIR /jarvis
|
||||
|
||||
RUN apt install python3.9 python3-pip python3.9-dev python3.9-distutils python3-fann2 libfann-dev swig git python3-levenshtein -y
|
||||
RUN apt install python3.9 python3-pip python3.9-dev python3.9-distutils python3-fann2 libfann-dev swig git python3-levenshtein curl -y
|
||||
|
||||
RUN git clone --progress --verbose https://github.com/M4TH1EU/jarvis-server.git .
|
||||
RUN git clone --branch $(curl --silent "https://api.github.com/repos/m4th1eu/jarvis-server/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")') --progress --verbose https://github.com/M4TH1EU/jarvis-server.git .
|
||||
|
||||
RUN python3 -m pip install -r requirements.txt
|
||||
|
||||
RUN apt-get clean -y
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
ENTRYPOINT ["python3", "run.py"]
|
||||
COPY start.sh /jarvis/
|
||||
|
||||
RUN chmod +x start.sh
|
||||
|
||||
CMD "./start.sh"
|
29
Dockerfile.alpine
Normal file
29
Dockerfile.alpine
Normal file
@ -0,0 +1,29 @@
|
||||
# ALPINE VERSION OF THE DOCKER FILE, NOT WORKING ATM.
|
||||
# TRYING TO SEE IF THERE IS A DIFFERENCE USING AN UBUNTU IMAGE OR AN ALPINE
|
||||
|
||||
FROM alpine:latest
|
||||
|
||||
ENV ENV_STATUS=${NODE_ENV:-production}
|
||||
|
||||
# For suport set local time zone.
|
||||
RUN apk update && apk upgrade
|
||||
|
||||
RUN apk add --no-cache --upgrade grep
|
||||
|
||||
WORKDIR /jarvis
|
||||
|
||||
RUN apk add build-base python3 python3-dev py3-pip py3-distutils-extra py3-fann2 fann-dev swig git curl
|
||||
|
||||
RUN git clone --branch $(curl --silent "https://api.github.com/repos/m4th1eu/jarvis-server/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")') --progress --verbose https://github.com/M4TH1EU/jarvis-server.git .
|
||||
|
||||
RUN python3 -m pip install -r requirements.txt
|
||||
|
||||
RUN apt cache clean
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
COPY start.sh /jarvis/
|
||||
|
||||
RUN chmod +x start.sh
|
||||
|
||||
CMD "./start.sh"
|
@ -47,6 +47,10 @@ Common errors than I personally encoured during this project, hope this can help
|
||||
|
||||
#### Linux :
|
||||
|
||||
First be sure to have all those packages installed :
|
||||
```
|
||||
sudo apt-get install libfann-dev swig libfann-dev python3-fann2
|
||||
```
|
||||
I actually don't know how I solved this but I tried building myself FANN following the instruction
|
||||
from [here](https://github.com/libfann/fann#from-source). Here is some links I found trying to solve the error :
|
||||
https://stackoverflow.com/questions/51367972/lib-fann2-failed-to-install
|
||||
|
@ -1,7 +1,5 @@
|
||||
{
|
||||
"PORT": 5000,
|
||||
"12HOURS-FORMAT": false,
|
||||
"LANGUAGE": "fr-fr",
|
||||
"TTS_VOICE": "marytts:upmc-pierre-hsmm",
|
||||
"PAUSE_MUSIC_AFTER_HOTWORD": true
|
||||
"TTS_VOICE": "marytts:upmc-pierre-hsmm"
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ def start():
|
||||
# Supported : English French German Hungarian Italian Portuguese Swedish
|
||||
lingua_franca.load_language(lang=languages_utils.get_language_only_country())
|
||||
|
||||
# Tests
|
||||
# Register all skills
|
||||
WikipediaSkill().register()
|
||||
JokesSkill().register()
|
||||
SpotifySkill().register()
|
||||
@ -29,7 +29,6 @@ def start():
|
||||
HomeAssistantSkill().register()
|
||||
MovieMaster().register()
|
||||
|
||||
# TODO: movies master skill
|
||||
# TODO: calculator skill
|
||||
# TODO: google/ddg help skill
|
||||
# TODO: unit converter skill
|
||||
|
@ -1,4 +1,5 @@
|
||||
import json
|
||||
import tempfile
|
||||
|
||||
import flask
|
||||
import speech_recognition as sr
|
||||
@ -21,6 +22,7 @@ def process_text_request():
|
||||
request.headers.get('Client-Port')))
|
||||
|
||||
|
||||
# RAW REQUEST
|
||||
@app.route("/process_audio_request", methods=['POST'])
|
||||
def process_audio_request():
|
||||
frame_data = request.data
|
||||
@ -30,8 +32,27 @@ def process_audio_request():
|
||||
r = sr.Recognizer()
|
||||
audio = sr.AudioData(frame_data, sample_rate, sample_width)
|
||||
|
||||
return recognition(r, audio)
|
||||
|
||||
|
||||
# .WAV (i.e.) FILE REQUEST
|
||||
@app.route("/process_audio_request_file", methods=['POST'])
|
||||
def process_audio_request_android():
|
||||
temp = tempfile.NamedTemporaryFile(prefix='audio_', suffix='_android')
|
||||
temp.write(request.data)
|
||||
|
||||
# use the audio file as the audio source
|
||||
r = sr.Recognizer()
|
||||
with sr.AudioFile(temp.name) as source:
|
||||
audio = r.record(source) # read the entire audio file
|
||||
|
||||
temp.close()
|
||||
|
||||
return recognition(r, audio)
|
||||
|
||||
def recognition(recognizer, audio):
|
||||
try:
|
||||
result_stt = r.recognize_google(audio, language=languages_utils.get_language_only_country())
|
||||
result_stt = recognizer.recognize_google(audio, language=languages_utils.get_language_only_country())
|
||||
|
||||
return jsonify(
|
||||
intent_manager.recognise(result_stt, request.headers.get('Client-Ip'), request.headers.get('Client-Port')))
|
||||
|
@ -21,11 +21,11 @@ def get_language_only_country():
|
||||
|
||||
def get_language_full_name(name=None):
|
||||
"""
|
||||
Return for exemple french for fr-fr, english for en-en, etc (savec in languages.json in the config folder)
|
||||
Return for exemple french for fr-fr, english for en-en, etc (saved in languages.json in the config folder)
|
||||
|
||||
Return english if the language isn't found in the languages.json file
|
||||
"""
|
||||
config_json = json.load(open(path + "/config/languages.json", encoding='utf-8', mode='r'))
|
||||
config_json = json.load(open(path + "/utils/config/languages.json", encoding='utf-8', mode='r'))
|
||||
|
||||
if name is None:
|
||||
name = get_language()
|
||||
@ -37,7 +37,7 @@ def get_language_full_name(name=None):
|
||||
|
||||
|
||||
def get_spacy_model(language=None):
|
||||
spacy_model = json.load(open(path + "/config/spacy.json", encoding='utf-8', mode='r'))
|
||||
spacy_model = json.load(open(path + "/utils/config/spacy.json", encoding='utf-8', mode='r'))
|
||||
|
||||
if language is None:
|
||||
language = get_language()
|
||||
|
47
todo_ideas_google.txt
Normal file
47
todo_ideas_google.txt
Normal file
@ -0,0 +1,47 @@
|
||||
Ok Google souviens-toi que j’ai mis les clés [ou n’importe quel objet] à l’entrée [ou n’importe quel autre endroit]
|
||||
Ok Google, où sont mes clés ?
|
||||
|
||||
|
||||
|
||||
Ok Google, où se trouve mon smartphone / iPhone ?
|
||||
|
||||
|
||||
|
||||
Ok Google, rappelle-moi de rappeler ma mère à 18 heures
|
||||
|
||||
|
||||
|
||||
Ok Google, comment dit-on merci en Chinois mandarin ?
|
||||
Ok Google, traduis “je t’aime” en japonais
|
||||
|
||||
|
||||
Ok Google, appairage Bluetooth
|
||||
Ok Google, déconnecte le Bluetooth
|
||||
|
||||
|
||||
Ok Google, mets le minuteur sur 5 minutes
|
||||
Ok Google, combien de temps reste-t-il sur le minuteur ?
|
||||
Ok Google, arrête/annule le minuteur
|
||||
Ok Google, stop (lorsque le minuteur sonne)
|
||||
|
||||
|
||||
|
||||
Ok Google, mets une alarme à [heure]
|
||||
Ok Google, annule l’alarme
|
||||
|
||||
|
||||
|
||||
Ok Google, quelle est la définition de [mot]
|
||||
|
||||
|
||||
|
||||
Ok Google, raconte-moi quelque chose d’intéressant
|
||||
|
||||
|
||||
|
||||
Ok Google, parle à Akinator
|
||||
|
||||
|
||||
|
||||
Ok Google, raconte-moi une histoire
|
||||
|
Reference in New Issue
Block a user