sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Aggiungere in fondo al file le credenziali della rete wifi:
network={ ssid="nome rete" psk="password" }
ssh pi@192.168.0.x
La password di default è “mycroft”
Aggiornamento della configurazione
Dal terminale del raspberry:
cd ~ rm .mycroft/mycroft.conf rm .mycroft_cli.conf sudo apt update -y sudo apt upgrade -y sudo apt autoremove -y pip install --upgrade pip cd mycroft-core pip install --upgrade .
Impostare lingua italiana
nano .config/mycroft/mycroft.conf
Aggiungere:
{ ... "lang": "it-it", "system_unit": "metric", "time_format": "full", "date_format": "DMY" // TODO aggiungere "lang": "it-it" al componente tts }
Scheda audio modello ReSpeaker 2 Mics Pi HAT (seeedstudio o keyestudio)
deactivate git clone https://github.com/respeaker/seeed-voicecard cd seeed-voicecard sudo ./install.sh
Disattivare la scheda audio integrata:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Scrivere in fondo al file:
blacklist snd_bcm2835
Chiudere e salvare
Impostare il sample-rate utilizzato da mycroft
sudo nano /etc/pulse/daemon.conf
Scrivere in fondo al file:
default-sample-rate = 48000 alternate-sample-rate = 44100
sudo reboot
Dal terminale del raspberry
mycroft-stop systemctl --user stop pulseaudio arecord -f cd -Dhw:0 test.wav // Registrare audio, poi premere ctrl+c aplay -Dhw:0 test.wav // Verificare che venga riprodotto l'audio registrato
Regolazione del mixer
Backup della configurazione iniziale:
cd /etc/voicecard sudo cp wm8960_asound.state wm8960_asound.state.save alsamixer
sudo alsactl -f /etc/voicecard/wm8960_asound.state store sudo reboot
Aprire alsamixer e verificare che le modifiche non siano state cancellate
Nota: il volume di master viene regolato direttamente da mycroft
Dal terminale del raspberry:
pip install quantulum3 mycroft-msm install homeassistant cd ~/mycroft-core/skills/homeassistant.mycroftai git pull
DeepSpeech è il motore STT di Mozilla
Scaricare ed estrarre questo modello basato su DeepSpeech:
https://coqui.ai/italian/jaco-assistant/v0.0.1
Dal terminale del raspberry:
sudo apt update sudo apt install gfortran libatlas-base-dev libpcap-dev libpq-dev pip install deepspeech==0.9.3 scipy av mkdir deepspeech cd deepspeech # copiare in questa cartella il modello tflite e lo scorer scaricati git clone https://github.com/MainRo/deepspeech-server cd deepspeech-server pip install . cp config.sample.json config.json nano config.json
Aggiungere a config.json: (assicurarsi che le path siano corrette)
... "deepspeech": { "model" :"/home/pi/deepspeech/model.tflite", "scorer" :"/home/pi/deepspeech/kenlm_it.scorer" }, ...
sudo nano .config/mycroft/mycroft.conf
Aggiungere a mycroft.conf:
... "stt": { "deepspeech_server": { "uri": "http://localhost:8080/stt" }, "module": "deepspeech_server" }, ...
Creare il servizio deepspeech-server
sudo nano /etc/systemd/system/deepspeech-server.service
Scrivere nel file:
[Unit] Description=Deepspeech server [Service] User=pi Type=simple ExecStart=/home/pi/mycroft-core/.venv/bin/deepspeech-server --config /home/pi/deepspeech/deepspeech-server/config.j$ Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
Attivare il servizio:
sudo systemctl enable deepspeech-server sudo systemctl start deepspeech-server
Work in progress
ATTENZIONE
Prosegui solo se non vuoi usare il modello già addestrato e vuoi addestrare manualmente una rete neurale DeepSpeech.
Requisiti: PC Desktop con scheda grafica nvidia Assicurarsi che il sistema operativo supporti CUDA 10.0.0. Non usare versioni più recenti di cuda. (Testato con Ubuntu 18.04)
Verificare se i driver nvidia sono installati:
nvidia-smi
Questo comando dovrebbe mostrare una tabella con alcune proprietà della gpu
Installare Cuda 10.0.0, potrebbe essere necessario disinstallare i driver nvidia e reinstallarli dopo cuda
https://developer.nvidia.com/cuda-downloads
Installare docker e nvidia-docker: seguire una guida specifica per il proprio sistema operativo
https://docs.docker.com/engine/install/
https://github.com/NVIDIA/nvidia-docker
Prima di proseguire è consigliato fare un test per assicurarsi che docker riesca a vedere la gpu
Scaricare il dataset più recente di CommonVoice
https://commonvoice.mozilla.org/it/datasets
Dovrebbe essere un file chiamato it.tar.gz
Posizionate l'archivio nella home e lanciate questi comandi:
cd $HOME mkdir -p data/sources chmod a+rwx -R data mv it.tar.gz data/sources chmod a+r data/sources/it.tar.gz
Ho preso un tool di Mozilla-Italia che semplifica l'addestramento, ne ho risolto alcuni bug
cd $HOME git clone https://github.com/danieltinazzi/DeepSpeech-Italian-Model cd DeepSpeech-Italian-Model/DeepSpeech
chmod +x generate_base_dockerfile.sh ./generate_base_dockerfile.sh docker build . -f Dockerfile.train -t deepspeech/base:0.9.3 docker build . -f Dockerfile_it.train -t deepspeech/it
docker run -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it
Se il processo occupa troppa memoria della gpu potrebbe essere necessario ridurre il BATCH_SIZE, esempio:
docker run -e "BATCH_SIZE=32" -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it