Configurare program

ESP32 Offline Voice Recognition

Offline voice recognition on the ESP32 enables devices to understand spoken commands without an internet connection. This is critical for low-latency response, privacy-sensitive applications, and battery-powered or remote systems.

Typical use cases include smart switches, robotics, industrial controls, toys, and assistive devices. This guide focuses on keyword spotting (KWS) and command recognition, which are the only practical forms of offline voice recognition on ESP32-class microcontrollers.

1. Understanding ESP32 Constraints

Hardware Limitations

  • Dual-core Xtensa LX6 CPU up to 240 MHz
  • ~520 KB shared SRAM
  • 4–16 MB external flash (typical)
  • No hardware floating-point unit

These constraints mean full speech-to-text is not feasible. ESP32-based systems are limited to small vocabularies (usually 5–50 commands) using highly optimized models.

2. Voice Recognition Approaches

Keyword Spotting (KWS)

Keyword spotting detects predefined words or phrases such as “Hey Device” or “Turn on light”.

  • Low memory usage
  • Fast and reliable
  • Always-on capable

Command Classification

Command classification selects one command from a known set (e.g., start, stop, left, right). It is often triggered after a wake word.

3. Audio Capture Fundamentals

Microphone Selection

I2S MEMS microphones are strongly recommended for ESP32 voice projects.

  • INMP441
  • SPH0645
  • ICS-43434

Analog microphones are discouraged unless paired with high-quality external ADC and filtering.

Audio Configuration

  • Sample rate: 16 kHz
  • Bit depth: 16-bit PCM
  • Channels: Mono

4. Audio Preprocessing Pipeline

Accurate voice recognition depends heavily on audio preprocessing.

  • Audio framing (20–30 ms)
  • Windowing (Hamming)
  • FFT
  • Feature extraction

MFCC Features

  • Frame length: 25 ms
  • Frame stride: 10 ms
  • FFT size: 512
  • MFCC count: 10–20

ESP32 implementations typically use fixed-point MFCCs for performance.

5. Machine Learning Models

Model Accuracy Speed Memory
DNN Medium Fast Low
CNN High Medium Medium
DS-CNN Very High Fast Low

Depthwise Separable CNNs (DS-CNN) are the industry standard for embedded keyword spotting.

6. ESP32 Voice Recognition Frameworks

ESP-SR (Espressif)

  • Wake word detection
  • Command recognition
  • Fully offline
  • Pre-trained models

Memory usage typically ranges from 300–600 KB RAM and 1–2 MB flash.

TensorFlow Lite for Microcontrollers

  • Custom-trained models
  • INT8 quantization
  • Higher flexibility

7. Training a Custom Model

  • 100–300 samples per keyword
  • Multiple speakers
  • Noise and silence samples

Target model size should remain under 250 KB, with inference RAM usage below 100 KB.

8. Firmware Architecture

  • Audio capture task
  • Feature extraction task
  • Inference task
  • Application logic task

Pin inference to a single core and avoid dynamic memory allocation for real-time stability.

9. Wake Word + Command Flow

  • Always-on wake word detection
  • Switch to command recognition
  • Timeout and return to wake mode

10. Power Optimization

  • Disable Wi-Fi and Bluetooth
  • Lower CPU frequency
  • Use light sleep
  • Optimize audio frame rate

11. Debugging and Testing

  • Log confidence scores
  • Monitor audio energy levels
  • Test with background noise

12. Security and Privacy

Offline voice recognition ensures no audio data is transmitted or stored externally, improving privacy and predictability.

[mai mult...]

AutoArhivare Outlook pe MAC OS

AutoArhivarea:

  • mută automat emailurile vechi într-un fișier .PST

  • păstrează inboxul „curat”

  • NU șterge emailurile (decât dacă alegi asta)

  • funcționează automat, la intervale stabilite

METODA 1 – ARHIVARE MANUALĂ (cea mai simplă)

Pasul 1: Deschide Outlook pe Mac

  • Pornește Outlook

  • Selectează contul de email

Pasul 2: Selectează emailurile vechi

Poți:

  • click pe un email → Shift → click pe ultimul

  • sau Cmd + A (selectează toate)

Pasul 3: Arhivează

Ai 3 variante:

  • Click pe butonul Archive

  • Sau din meniu: Message → Archive

  • Sau drag & drop în folderul Archive

Outlook mută mesajele în folderul Archive

Unde sunt emailurile?

  • În stânga → Archive

  • Structura rămâne intactă

Aceasta NU este automată

METODA 2 – „AUTOARHIVARE” CU REGULI (RECOMANDATĂ)

Simulează autoarhivarea automată

Pasul 1: Creează folder de arhivă

  1. Click dreapta pe cont

  2. New Folder

  3. Denumește:
    Arhiva 2024 (sau după an)

Pasul 2: Mergi la Rules

  1. Sus în meniu → Outlook

  2. Settings

  3. Rules

 Pasul 3: Creează o regulă nouă

  1. Click + (Add Rule)

  2. Setează astfel:

Condiții:

  • Date Receivedis before → alege o dată
    (ex: 01.01.2024)

Acțiune:

  • Move messageArhiva 2024

Pasul 4: Salvează regula

  • Click OK / Save

  • Rulează regula manual prima dată

 De acum, emailurile mai vechi vor fi mutate automat

METODA 3 – ARHIVARE COMPLETĂ (EXPORT)

 Cea mai sigură metodă (backup + arhivă)

 Pasul 1: Export emailuri

  1. Meniu sus → File

  2. Export

  3. Selectează:

    • Mail

    • Calendar (opțional)

  4. Continue

Pasul 2: Alege locația

  • Salvează fișierul .olm

  • Recomandat:

    Documents / Outlook Arhiva

 Acest fișier conține TOATE emailurile

Pasul 3: Șterge din Outlook

După export:

  • poți șterge emailurile vechi

  • Outlook va fi mai rapid

 Cum deschizi arhiva ulterior

  1. File → Import

  2. Selectezi fișierul .olm

  3. Emailurile apar în Outlook.

[mai mult...]

Cum se elimină fișierele de dump ale memoriei erorilor de sistem în Windows 10

Dacă PC-ul tău primește o eroare critică (cum ar fi BlueScreen of Death ) în Windows 10, sistemul creează un fișier numit fișier imagine memorie. Aceste fișiere stochează date care conțin informații despre motivul exact al erorii critice. Te pot ajuta să diagnostichezi și să determini motivul din spatele problemei.

Ștergeți fișierele de eroare de sistem cu Revo Uninstaller Pro

  1. Deschideți Revo Uninstaller Pro
  2. Navigați la Instrumente
    Instrumente
  3. Faceți click pe Curățător de istoric
    Curățător de istorie
  4. Selectați Curățător Windows
  5. Selectați „Ștergeți fișierele de dump ale memoriei de blocare”
  6. Faceți clic pe Ștergeți
    Curățător de geamuri

Curățați fișierele de eroare de sistem cu Disk Cleanup

  1. Deschideți meniul Start
  2. În bara de căutare, tastați „Curățire disc” și faceți click pe primul rezultat pentru a-l deschide.
  3. Selectați unitatea pe care doriți să o curățați (fișierele de eroare de sistem sunt stocate în C:)
  4. Bifați opțiunea Fișiere de dump memorie erori de sistem și opțiunea Fișiere minidump erori de sistem
    Curățarea discului
  5. Faceți click pe butonul OK

După finalizarea procesului, fișierele de imagine de memorie și minidump vor fi eliminate de pe computer.

Eliminați fișierele de eroare de sistem cu Setările Windows

  1. Deschideți meniul Start și faceți clic pe Setări PC
    Setări PC
  2. Faceți click pe Sistem
    Sistem
  3. Faceți click pe Stocare
    Depozitare
  4. În secțiunea Stocare, selectați Fișiere temporare
    Fișiere temporare
  5. Bifați opțiunea Fișier de imagine memorie eroare sistem
  6. Din nou, opțional, puteți bifa opțiunea Fișiere minidump cu erori de sistem
    Fișiere de imagine a memoriei cu erori de sistem
  7. Faceți click pe butonul Eliminare fișiere

Ștergeți fișierele de eroare de sistem cu ajutorul promptului de comandă

  1. Deschideți meniul Start
  2. Căutați Prompt de comandă. Faceți click dreapta pe rezultatul de sus și selectați opțiunea Executare ca administrator
    Executare ca administrator
  3. Tastați următoarele comenzi în Windows și apăsați Enter:
    del /f /s /q %systemroot%\memory.dmp
  4. Pentru a șterge opțional fișierele minidump cu erori de sistem, tastați această comandă și apăsați Enter:
    del /f /s /q %systemroot%\Minidump\*.*
    comandă del prompt

Ștergeți fișierele de imagine de memorie din locația fișierului

  1. Deschideți meniul Start și tastați „Panou de control” în bara de căutare
  2. Faceți clic pe rezultatul de sus și navigați la Sistem și securitate
    Sistem și securitate
  3. Faceți click pe categoria Sistem
    Sistem
  4. Deschideți setările avansate de sistem
    Setări avansate de sistem
  5. Faceți click pe butonul Setări din secțiunea Pornire și recuperare
    Pornire și recuperare
  6. Navigați la Scrieți informații de depanare. Faceți click pe meniul derulant și selectați un tip de fișier dump. Acum puteți vedea unde sunt stocate fișierele.
  7. Copiați locația fișierului dump
    Scrieți informații de depanare
  8. Deschideți Run apăsând tasta Win + R și lipiți locația fișierului dump și apăsați Enter
    Comandă de rulare
  9. Selectați fișierul MEMORY.dmp și ștergeți-l definitiv
    fișierul memory.dmp
  10. Reporniți computerul și fișierele dump vor fi eliminate.

Dezactivați dump-urile de erori

  1. Deschideți meniul Start și în bara de căutare tastați Setări
  2. Faceți clic pe rezultatul de sus și apoi pe Sistem
  3. Faceți clic pe opțiunea „Despre”
  4. În secțiunea „Setări conexe”, faceți clic pe opțiunea „Setări avansate de sistem”
  5. După ce se deschide fereastra „Proprietăți sistem”, navigați la fila „Avansat”
  6. Faceți clic pe „Setări” în secțiunea „Pornire și recuperare”
  7. Sub secțiunea „Scrieți informații de depanare”, utilizați meniul derulant și selectați opțiunea „(niciuna)”.

După ce finalizați procesul, sistemul nu va mai stoca fișierele de imagine a erorilor de sistem. Dacă vă răzgândiți, puteți oricând să reveniți la setări.

[mai mult...]

Cum remediezi eroarea:„Dependency conflict” în Linux

Sistemele de operare Linux folosesc un mecanism avansat de gestionare a pachetelor software, care permite instalarea, actualizarea și eliminarea aplicațiilor într-un mod organizat și sigur. Acest mecanism este bazat pe manageri de pachete precum APT, DNF, YUM, Pacman sau Zypper.

Una dintre cele mai frecvente probleme întâlnite în procesul de instalare sau actualizare a programelor este eroarea:

Error: Dependency conflict

Această eroare apare atunci când un pachet software nu poate fi instalat deoarece există conflicte între bibliotecile sau pachetele de care acesta depinde. În acest referat vor fi analizate cauzele apariției acestei erori, tipurile de dependențe, metodele de rezolvare și modalitățile de prevenire.

2. Ce sunt dependențele în Linux

2.1 Definiția dependențelor

O dependență este un pachet software necesar pentru ca un alt pachet să funcționeze corect. De exemplu, o aplicație poate avea nevoie de:

  • o anumită versiune a unei biblioteci,

  • un alt program deja instalat,

  • un serviciu de sistem activ.

Managerul de pachete verifică automat aceste dependențe înainte de instalare.

2.2 Tipuri de dependențe

Există mai multe tipuri de dependențe:

  • Dependențe obligatorii (Depends) – fără ele, programul nu pornește

  • Dependențe recomandate (Recommends) – îmbunătățesc funcționalitatea

  • Dependențe opționale (Suggests) – oferă funcții suplimentare

  • Conflicts – pachete care nu pot exista simultan

3. Ce înseamnă „Dependency conflict”

Un dependency conflict apare atunci când:

  • două pachete necesită versiuni diferite ale aceleiași biblioteci;

  • un pachet instalat intră în conflict cu unul nou;

  • o dependență cerută nu există în depozite;

  • versiunea cerută este mai veche sau mai nouă decât cea disponibilă.

Managerul de pachete refuză instalarea pentru a proteja stabilitatea sistemului.

4.1 Versiuni incompatibile de pachete

Un program poate necesita o versiune specifică:

libexample >= 2.0

dar sistemul are instalată versiunea:

libexample 1.8

4.2 Depozite software diferite sau incompatibile

  • amestecarea depozitelor stabile cu cele de testare;

  • utilizarea PPA-urilor sau surselor externe;

  • depozite dezactivate sau indisponibile.

4.3 Pachete blocate (held packages)

Unele pachete pot fi marcate ca „hold” și nu pot fi actualizate, ceea ce provoacă conflicte.

4.4 Dezinstalări incomplete

Fișiere rămase sau dependențe rupte pot crea conflicte între pachete.

5. Mesaje de eroare frecvente

Exemple de mesaje întâlnite:

Error: Dependency conflict: package A requires package B >= 3.0
Unable to correct problems, you have held broken packages.
Conflicting requests

6. Metode de rezolvare a erorii

6.1 Actualizarea listei de pachete

sudo apt update

Aceasta sincronizează informațiile cu depozitele oficiale.

6.2 Actualizarea completă a sistemului

sudo apt upgrade
sudo apt full-upgrade

Acest pas rezolvă multe conflicte de versiuni.

6.3 Repararea dependențelor rupte

sudo apt --fix-broken install

Această comandă încearcă să instaleze sau să repare dependențele lipsă.

6.4 Identificarea pachetelor blocate

apt-mark showhold

Pentru deblocare:

sudo apt-mark unhold nume_pachet

6.5 Dezinstalarea pachetelor problematice

sudo apt remove nume_pachet
sudo apt autoremove

6.6 Rezolvarea conflictelor în alte distribuții

Fedora / RHEL (DNF)

sudo dnf install pachet --allowerasing

Arch Linux (Pacman)

sudo pacman -Syu
[mai mult...]

Rezolvarea erorii:„Host key verification failed” în Linux

Sistemele de operare Linux sunt larg utilizate pentru administrarea serverelor și pentru conectarea securizată la alte sisteme prin intermediul protocolului SSH (Secure Shell). SSH permite accesul la distanță într-un mod criptat, asigurând confidențialitatea și integritatea datelor transmise.

Una dintre cele mai frecvente erori întâlnite la utilizarea SSH este:

Error: Host key verification failed

Această eroare apare atunci când mecanismul de securitate SSH detectează o problemă legată de cheia de identificare a serverului la care se încearcă conectarea. În acest referat vor fi explicate cauzele apariției erorii, modul de funcționare al verificării cheii gazdă (host key) și pașii necesari pentru rezolvarea problemei.

Ce este SSH și ce reprezintă „host key”

Protocolul SSH

SSH (Secure Shell) este un protocol de rețea care permite:

  • autentificarea securizată,

  • executarea comenzilor la distanță,

  • transferul de fișiere (prin SCP sau SFTP).

SSH folosește criptografia cu chei publice pentru a preveni atacurile de tip man-in-the-middle.

Ce este „host key”

Un host key este o cheie criptografică unică a serverului SSH. Aceasta este generată la instalarea serviciului SSH pe server și este utilizată pentru:

  • identificarea serverului,

  • verificarea autenticității acestuia la fiecare conexiune.

Pe calculatorul client, aceste chei sunt salvate într-un fișier special.

Fișierul known_hosts

În Linux, cheile serverelor cunoscute sunt stocate în fișierul:

~/.ssh/known_hosts

Acest fișier conține:

  • adrese IP sau nume de domenii,

  • tipul cheii (RSA, ECDSA, ED25519),

  • amprenta criptografică a cheii serverului.

La fiecare conexiune SSH:

  1. clientul verifică dacă serverul există în known_hosts;

  2. compară cheia primită cu cea salvată;

  3. dacă acestea diferă, conexiunea este blocată.

Cauzele apariției erorii „Host key verification failed”

Această eroare apare în principal din următoarele motive:

Schimbarea cheii serverului

  • serverul a fost reinstalat;

  • serviciul SSH a fost reconfigurat;

  • cheia host a fost regenerată.

Schimbarea adresei IP sau a serverului

  • un IP este reutilizat pentru un alt server;

  • domeniul indică acum spre o altă mașină.

Atac de tip „man-in-the-middle” (caz rar, dar critic)

SSH consideră diferența de chei ca un posibil atac, motiv pentru care refuză conexiunea.

  • Mesaj de eroare tipic

Un mesaj complet poate arăta astfel:

 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 
 Error: Host key verification failed.

Acest mesaj indică faptul că cheia serverului nu mai corespunde celei salvate anterior.

Metode de rezolvare a erorii

  1. Ștergerea manuală a cheii din known_hosts

Aceasta este metoda cea mai utilizată.

Pași:

  1. Deschide terminalul

  2. Editează fișierul:

    nano ~/.ssh/known_hosts
  3. Găsește linia care conține IP-ul sau domeniul problematic

  4. Șterge linia respectivă

  5. Salvează fișierul și reconectează-te

La următoarea conexiune, SSH va cere confirmarea noii chei.

Utilizarea comenzii ssh-keygen

Metodă rapidă și sigură:

ssh-keygen -R adresa_serverului

Exemplu:

ssh-keygen -R 192.168.1.10

Această comandă:

  • elimină automat cheia veche din known_hosts,

  • previne erori de editare manuală.

 Ștergerea completă a fișierului known_hosts (nerecomandat)

rm ~/.ssh/known_hosts

⚠️ Atenție:
Această metodă șterge toate cheile serverelor cunoscute și reduce nivelul de securitate.

Verificarea cheii serverului (măsură de securitate)

Pentru servere critice, este recomandată verificarea amprentei cheii:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

Amprenta obținută trebuie comparată cu cea afișată la conectare.

Prevenirea apariției erorii

Pentru a evita apariția frecventă a acestei erori:

  • nu regenera cheile SSH fără motiv;

  • documentează schimbările de server;

  • folosește DNS stabil și IP-uri fixe;

  • menține fișierul known_hosts actualizat.

[mai mult...]

Utilizare ridicată a procesorului în Dropbox: cum o repari definitiv

Problema de High CPU Usage la Dropbox apare de obicei din cauza sincronizării intense, fișierelor problematice sau unei versiuni vechi a aplicației.

 Rezolvare permanentă – pas cu pas

 Lasă sincronizarea să se termine

Dropbox poate consuma mult CPU cât timp:

  • scanează multe fișiere

  • sincronizează pentru prima dată

 Așteaptă până apare mesajul „Up to date”.

 Exclude folderele mari (Selectiv Sync)

  1. Click dreapta pe iconița Dropbox

  2. Settings → Sync → Selective Sync

  3. Debifează:

  • backup-uri

  • foldere cu mii de fișiere mici

  • arhive mari

 Reduce imediat consumul de CPU

 Dezactivează Backup-ul automat

  1. Settings → Backups

  2. Dezactivează:

  • Desktop

  • Documents

  • Pictures

 Folosește doar sincronizare manuală.

Șterge fișierele problematice

Anumite fișiere pot bloca procesarea:

  • nume foarte lungi

  • caractere speciale

  • fișiere temporare (.tmp, .log)

 Mută-le în afara folderului Dropbox.

 Actualizează Dropbox

Versiunile vechi pot consuma excesiv CPU:

  • Settings → About → Check for updates

 Repornește Dropbox

  • Exit Dropbox complet

  • Redeschide aplicația

 Reinstalare curată (soluție definitivă)

 Recomandat dacă problema persistă

 Dezinstalează Dropbox
 Repornește PC-ul
 Șterge manual:

C:\Users\NumeUser\AppData\Roaming\Dropbox
C:\Users\NumeUser\AppData\Local\Dropbox

 Instalează ultima versiune

 Limitează resursele folosite

  • Settings → Bandwidth

  • Setează limite pentru Upload / Download.

[mai mult...]