Note

Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder sur Facebook ! Approfondissez vos connaissances sur Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes post-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprenez et partagez : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Remises spéciales : Profitez de remises exclusives sur nos nouveaux produits.

  • Promotions festives et cadeaux : Participez à des concours et des promotions de vacances.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [here] et rejoignez-nous dès aujourd’hui !

16. STT avec Vosk (hors ligne)

Vosk est un moteur léger de reconnaissance vocale (STT) qui prend en charge de nombreuses langues et fonctionne entièrement hors ligne sur Raspberry Pi. Vous n’avez besoin d’un accès Internet qu’une seule fois pour télécharger un modèle de langue. Ensuite, tout fonctionne sans connexion réseau.

Dans cette leçon, nous allons :

  • Vérifier le microphone sur Raspberry Pi.

  • Installer et tester Vosk avec un modèle de langue de votre choix.

Avant de commencer

Assurez-vous d’avoir terminé :

1. Vérifier votre microphone

Avant d’utiliser la reconnaissance vocale, assurez-vous que votre microphone USB fonctionne correctement.

  1. Listez les périphériques d’enregistrement disponibles :

    arecord -l
    

    Recherchez une ligne comme card 1: ... device 0.

  2. Enregistrez un court échantillon (remplacez 1,0 par les numéros que vous avez trouvés) :

    arecord -D plughw:1,0 -f S16_LE -r 16000 -d 3 test.wav
    
    • Exemple : si votre périphérique est card 2, device 0, utilisez :

    arecord -D plughw:2,0 -f S16_LE -r 16000 -d 3 test.wav
    
  3. Écoutez-le pour confirmer l’enregistrement :

    aplay test.wav
    
  4. Ajustez le volume du microphone si nécessaire :

    alsamixer
    
    • Appuyez sur F6 pour sélectionner votre microphone USB.

    • Trouvez le canal Mic ou Capture.

    • Assurez-vous qu’il n’est pas muet ([MM] signifie muet, appuyez sur M pour activer le son → devrait afficher [OO]).

    • Utilisez les touches ↑ / ↓ pour modifier le volume d’enregistrement.

2. Tester Vosk

Étapes pour essayer :

  1. Créez un nouveau fichier :

    cd ~/pidog/examples
    sudo nano test_stt_vosk.py
    
  2. Copiez-y le code d’exemple. Appuyez sur Ctrl+X, puis Y, et Enter pour enregistrer et quitter.

    from pidog.stt import Vosk
    
    vosk = Vosk(language="en-us")
    
    print(vosk.available_languages)
    
    while True:
        print("Say something")
        result = vosk.listen(stream=False)
        print(result)
    
  3. Exécutez le programme :

    sudo python3 test_stt_vosk.py
    
  4. La première fois que vous exécutez ce code avec une nouvelle langue, Vosk téléchargera automatiquement le modèle de langue (par défaut, il téléchargera la version small). En même temps, il affichera également la liste des langues prises en charge. Ensuite, vous verrez :

    vosk-model-small-en-us-0.15.zip: 100%|███████████████████| 39.3M/39.3M [00:05<00:00, 7.85MB/s]
    ['ar', 'ar-tn', 'ca', 'cn', 'cs', 'de', 'en-gb', 'en-in', 'en-us', 'eo', 'es', 'fa', 'fr', 'gu', 'hi', 'it', 'ja', 'ko', 'kz', 'nl', 'pl', 'pt', 'ru', 'sv', 'te', 'tg', 'tr', 'ua', 'uz', 'vn']
    Say something
    

    Cela signifie :

    • Le fichier du modèle (vosk-model-small-en-us-0.15) a été téléchargé.

    • La liste des langues prises en charge a été affichée.

    • Le système écoute maintenant — dites quelque chose dans le microphone du Pidog, et le texte reconnu apparaîtra dans le terminal.

    Conseils :

    • Gardez le microphone à environ 15–30 cm de distance.

    • Choisissez un modèle qui correspond à votre langue et à votre accent.

Mode flux (streaming) (optionnel)

Vous pouvez également diffuser la parole en continu pour voir les résultats partiels pendant que vous parlez :

from pidog.stt import Vosk

vosk = Vosk(language="en-us")

while True:
    print("Say something")
    for result in vosk.listen(stream=True):
        if result["done"]:
            print(f"final:   {result['final']}")
        else:
            print(f"partial: {result['partial']}", end="\r", flush=True)

Dépannage

  • No such file or directory (lors de l’exécution de `arecord`)

    Vous avez peut-être utilisé un mauvais numéro de carte/périphérique. Exécutez :

    arecord -l
    

    et remplacez 1,0 par les numéros affichés pour votre microphone USB.

  • Le fichier enregistré n’a pas de son

    Ouvrez le mélangeur et vérifiez le volume du microphone :

    alsamixer
    
    • Appuyez sur F6 pour sélectionner votre microphone USB.

    • Assurez-vous que Mic/Capture n’est pas muet ([OO] au lieu de [MM]).

    • Augmentez le niveau avec ↑.

  • Vosk ne reconnaît pas la parole

    • Assurez-vous que le code de langue correspond à votre modèle (p. ex. en-us pour l’anglais, zh-cn pour le chinois).

    • Gardez le microphone à 15–30 cm et évitez le bruit de fond.

    • Parlez clairement et lentement.

  • Latence élevée / reconnaissance lente

    • Le téléchargement automatique par défaut est un petit modèle (plus rapide, mais moins précis).

    • Si c’est encore lent, fermez les autres programmes pour libérer du CPU.