-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the mema3 wiki!
This probably won't completely 'work', but I'll keep it updated. It will need an Ubuntu system with camera, microphone and speakers. Probably a USB webcam + microphone will work for some of it.
First git clone https://github.com/hbarnard/mema.git
Next Docker Installs for Rhasspy, Mimic3 and Node-Red. We are using the host network rather than container network. This means that all the component connections can be configured as localhost
and, in principle, everything except external AI will work without any network present. Also, the names are now mema_<something>
for docker ps -a
convenience etc. etc.
docker run -d --network host --name mema_rhasspy --restart unless-stopped -v "$HOME/.config/rhasspy/profiles:/profiles" -v "/etc/localtime:/etc/localtime:ro" --device /dev/snd:/dev/snd rhasspy/rhasspy --user-profiles /profiles --profile en
This is the 'better' text to speech rather than, for example, espeak. It must be configured in Rhasspy as MaryTTS, a cheat, external http.
sudo docker run --network host -d --restart unless-stopped --network host --name mema_mimic3 -v "${HOME}/.local/share/mycroft/mimic3:/home/mimic3/.local/share/mycroft/mimic3" 'mycroftai/mimic3'
Now works on the laptop, speech api is at http://localhost:59125/process
some confusion in the documentation about this.
Docker install is broken on Raspberry Pi but should be OK elsewhere:
docker run -d --network host -v node_red_data:/data --restart unless-stopped --name mema_nodered nodered/node-red
General Docker note: You only want -it if debugging otherwise -d. `
apt install mosquitto mosquitto-client
Started to use an external instance of this, rather than the one in Rhasspy. Gives more flexbility and also offloads some tasks from the centre. Also can examine and tune messages. Bit more complexity though.
I'll put these into a requirements file at some stage, but they haven't stabilised yet. Please use the classic method of letting Python complain about things that are missing. Some may also be surplus to requirements now, but there are no big libraries currently. ntlk
may get used soon though.
import sys
import subprocess
import requests
import sqlite3
from pathlib import Path
from time import sleep
import board
import datetime
#import threading
import replicate
from picamera import PiCamera
# FastApi
from fastapi import FastAPI, Request
from fastapi import UploadFile, File, Form
from fastapi import APIRouter, Query, HTTPException
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware