projects:iotaiuto:mycroft

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
projects:iotaiuto:mycroft [2021/11/08 10:13] – created danielprojects:iotaiuto:mycroft [2021/12/15 13:10] (current) daniel
Line 34: Line 34:
   * Al termine dell'installazione delle skill, chiudere con ctrl+c   * Al termine dell'installazione delle skill, chiudere con ctrl+c
  
-**Aggiornamento della configurazione**+**Aggiornamento della configurazione**\\
 Dal terminale del raspberry: Dal terminale del raspberry:
 <code> <code>
Line 46: Line 46:
 cd mycroft-core cd mycroft-core
 pip install --upgrade . pip install --upgrade .
 +</code>
 +
 +**Impostare lingua italiana**
 +<code>
 +nano .config/mycroft/mycroft.conf
 +</code>
 +Aggiungere:
 +<code>
 +{
 +  ...
 +  "lang": "it-it",
 +  "system_unit": "metric",
 +  "time_format": "full",
 +  "date_format": "DMY"
 +  
 +  // TODO aggiungere "lang": "it-it" al componente tts
 +}
 </code> </code>
  
 ==== Installazione della scheda audio ==== ==== Installazione della scheda audio ====
-Modello della scheda: +Scheda audio modello ReSpeaker 2 Mics Pi HAT (seeedstudio keyestudio)
-https://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT/ +
-https://wiki.keyestudio.com/Ks0314_keyestudio_ReSpeaker_2-Mic_Pi_HAT_V1.0+
  
   * Inserire la scheda respeaker 2-mic nella socket del raspberry   * Inserire la scheda respeaker 2-mic nella socket del raspberry
Line 84: Line 99:
 </code> </code>
   * Chiudere e salvare   * Chiudere e salvare
-  * Riavviare e testare: 
 <code> <code>
 sudo reboot sudo reboot
 +</code>
  
 +==== Test scheda audio ====
 +Dal terminale del raspberry
 +<code>
 mycroft-stop mycroft-stop
 systemctl --user stop pulseaudio systemctl --user stop pulseaudio
Line 120: Line 138:
 Aprire alsamixer e verificare che le modifiche non siano state cancellate\\ Aprire alsamixer e verificare che le modifiche non siano state cancellate\\
 **Nota:** il volume di master viene regolato direttamente da mycroft **Nota:** il volume di master viene regolato direttamente da mycroft
 +
 +
 +==== Skill homeassistant ====
 +
 +Dal terminale del raspberry:
 +<code>
 +pip install quantulum3
 +mycroft-msm install homeassistant
 +cd ~/mycroft-core/skills/homeassistant.mycroftai
 +git pull
 +</code>
 +
 +  * Creare un long lived access token da home assistant
 +  * Andare su https://home.mycroft.ai/skills (o server locale) e inserire ip di home assistant e token
 +
 +==== Installazione DeepSpeech (pre addestrato) ====
 +
 +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:
 +<code>
 +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
 +</code>
 +
 +Aggiungere a config.json: (assicurarsi che le path siano corrette)
 +<code>
 +...
 +"deepspeech": {
 +  "model" :"/home/pi/deepspeech/model.tflite",
 +  "scorer" :"/home/pi/deepspeech/kenlm_it.scorer"
 +},
 +...
 +</code>
 +
 +<code>
 +sudo nano .config/mycroft/mycroft.conf
 +</code>
 +Aggiungere a mycroft.conf:
 +<code>
 +...
 + "stt": {
 +    "deepspeech_server": {
 +      "uri": "http://localhost:8080/stt"
 +    },
 +    "module": "deepspeech_server"
 +  },
 +...
 +</code>
 +
 +**Creare il servizio deepspeech-server**
 +
 +<code>
 +sudo nano /etc/systemd/system/deepspeech-server.service
 +</code>
 +
 +Scrivere nel file:
 +<code>
 +[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
 +</code>
 +
 +Attivare il servizio:
 +<code>
 +sudo systemctl enable deepspeech-server
 +sudo systemctl start deepspeech-server
 +</code>
  
 **Work in progress** **Work in progress**
 +
 +===== Addestramento manuale di una rete neurale =====
 +
 +**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:
 +<code>
 +nvidia-smi
 +</code>
 +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:
 +<code>
 +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
 +</code>
 +
 +=== Creare l'immagine Docker: ===
 +
 +Ho preso un tool di Mozilla-Italia che semplifica l'addestramento, ne ho risolto alcuni bug
 +<code>
 +cd $HOME
 +git clone https://github.com/danieltinazzi/DeepSpeech-Italian-Model
 +cd DeepSpeech-Italian-Model/DeepSpeech
 +</code>
 +
 +<code>
 +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
 +</code>
 +
 +
 +=== Avviare l'addestramento ===
 +
 +<code>
 +docker run -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it
 +</code>
 +
 +Se il processo occupa troppa memoria della gpu potrebbe essere necessario ridurre il BATCH_SIZE, esempio:
 +<code>
 +docker run -e "BATCH_SIZE=32" -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it
 +</code>
 +
  • projects/iotaiuto/mycroft.1636362801.txt.gz
  • Last modified: 2021/11/08 10:13
  • by daniel