Raspberry Pi : Créez un serveur vocal pour jouer aux devinettes au téléphone

Imaginez un téléphone qui ne se contente pas de passer des appels, mais qui vous propose aussi de jouer à des devinettes, le tout piloté par une simple Raspberry Pi. Ce projet DIY, inspiré par la chaîne À vous la science, transforme votre micro-ordinateur en un serveur vocal interactif, accessible depuis n’importe quel téléphone. Plus besoin de smartphone ou d’application dédiée : un appel suffit pour s’amuser. Une idée qui marie innovation, simplicité et créativité, parfaite pour les passionnés de domotique et de bricolage high-tech.

Un serveur vocal maison : comment ça marche ?

Le principe est simple : votre Raspberry Pi héberge un serveur vocal qui répond aux appels entrants. Grâce à des bibliothèques Python comme Flask ou Twilio, il est possible de créer une interface interactive. Le téléphone se connecte via le réseau téléphonique classique (RTC) ou via VoIP (Voice over IP), et le serveur reconnaît les touches pressées (DTMF) pour déclencher des actions. Dans ce cas précis, le projet utilise un script personnalisé pour poser des devinettes et analyser les réponses vocales ou textuelles. L’utilisateur peut ainsi jouer en temps réel, sans avoir besoin d’un écran ou d’un clavier.

Pour que cela fonctionne, il faut configurer un numéro de téléphone virtuel (via des services comme Twilio, Plivo ou OVH Télécom) qui redirige les appels vers votre Raspberry Pi. Une fois le numéro obtenu, vous paramétrez le serveur pour qu’il réponde automatiquement et gère les interactions. Le projet présenté dans la vidéo utilise un Raspberry Pi 4 (ou un modèle supérieur) pour garantir une bonne réactivité, mais un Pi 3 ou même un Pi Zero 2 W peut suffire pour des usages légers.

Matériel et logiciels nécessaires

Pour reproduire ce projet, voici les éléments indispensables :

  • Une Raspberry Pi (modèle 3B+, 4 ou 5 recommandé) avec son alimentation et une carte microSD.
  • Un numéro de téléphone virtuel (Twilio, Plivo, etc.) pour recevoir les appels.
  • Un microphone et un haut-parleur (intégrés ou externes) pour les interactions vocales.
  • Un câble Ethernet (recommandé pour une connexion stable) ou du Wi-Fi.
  • Des bibliothèques Python comme Flask, python-dtmf (pour gérer les tonalités DTMF), et speech_recognition (pour la reconnaissance vocale).
  • Un script personnalisé pour gérer la logique des devinettes (exemple : poser une question, attendre une réponse, donner un feedback).

Côté logiciel, le projet repose sur un serveur web local qui écoute les requêtes entrantes. Vous pouvez utiliser Nginx comme reverse proxy pour sécuriser l’accès, et Certbot pour obtenir un certificat SSL (indispensable si vous utilisez VoIP). Pour la reconnaissance vocale, Google Speech-to-Text ou Mozilla DeepSpeech sont des options populaires, bien que certaines bibliothèques open source comme Vosk offrent une alternative locale et respectueuse de la vie privée.

Étapes clés pour configurer votre serveur vocal

La mise en place du serveur vocal se fait en plusieurs étapes. D’abord, installez votre système d’exploitation sur la Raspberry Pi (Raspberry Pi OS recommandé). Ensuite, configurez les dépendances Python avec pip et clonez le dépôt Git contenant le script du projet (ou écrivez le vôtre). Voici un exemple de workflow simplifié :

  1. Configurer le numéro virtuel : Achetez un numéro via Twilio ou un autre fournisseur, puis redirigez-le vers l’adresse IP publique de votre Raspberry Pi (ou via un service comme ngrok pour les tests locaux).
  2. Installer les bibliothèques : Exécutez sudo apt update && sudo apt install python3-pip, puis installez les packages nécessaires avec pip install flask python-dtmf speechrecognition.
  3. Écrire le script principal : Créez un fichier Python qui écoute les appels entrants, détecte les tonalités DTMF ou les commandes vocales, et répond avec des devinettes. Par exemple :
    from flask import Flask, request
    import speech_recognition as sr
    
    app = Flask(__name__)
    
    @app.route('/call', methods=['POST'])
    def handle_call():
        recognizer = sr.Recognizer()
        with sr.AudioFile('response.wav') as source:
            audio = recognizer.record(source)
            try:
                text = recognizer.recognize_google(audio)
                return f"Vous avez dit : {text}"
            except Exception as e:
                return "Désolé, je n'ai pas compris."
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    
  4. Tester et déployer : Lancez le serveur avec python3 app.py et appelez votre numéro virtuel pour vérifier que tout fonctionne. Pour un déploiement permanent, utilisez systemd pour lancer le script au démarrage de la Raspberry Pi.

N’oubliez pas de sécuriser votre serveur en limitant l’accès aux IP autorisées et en chiffrant les communications (SSL/TLS).

Personnalisation et idées d’évolution

Ce projet de serveur vocal est une excellente base pour explorer d’autres fonctionnalités. Vous pouvez, par exemple, ajouter un système de score pour suivre les performances des joueurs, ou intégrer une base de données SQLite pour stocker les devinettes et les statistiques. Une autre idée : transformer le jeu en un quiz thématique (cinéma, géographie, sciences) ou en un assistant vocal capable de répondre à des questions générales.

Pour les plus avancés, pourquoi ne pas connecter votre Raspberry Pi à d’autres appareils domotiques ? Par exemple, déclencher l’allumage des lumières ou la lecture d’une musique quand un joueur gagne. Avec des modules comme Home Assistant, les possibilités sont quasi illimitées. Vous pouvez aussi ajouter une interface web pour gérer les devinettes à distance, ou même créer un bot Discord qui synchronise les scores entre le téléphone et le PC.

Enfin, ce projet est une porte d’entrée idéale pour apprendre les bases de la programmation réseau, des API REST et de l’interaction homme-machine. Une fois maîtrisé, vous pourrez l’adapter à d’autres usages : un répondeur vocal personnalisé, un système d’alerte pour la maison, ou même un serveur de messagerie vocale.

Pourquoi ce projet est-il si intéressant ?

Au-delà du côté ludique, ce serveur vocal maison illustre parfaitement comment la Raspberry Pi peut servir de plateforme polyvalente pour des projets DIY. Il montre aussi l’importance de l’accessibilité : un simple téléphone suffit pour interagir, sans besoin d’un smartphone ou d’une application dédiée. C’est une solution économique (le coût se limite à l’achat du numéro virtuel et de la Raspberry Pi) et respectueuse de la vie privée, car vos données restent locales.

De plus, ce type de projet encourage l’apprentissage continu. Que vous soyez débutant ou expert, vous serez amené à explorer des concepts comme la reconnaissance vocale, la gestion des appels VoIP, ou l’automatisation. Et avec la communauté open source, vous trouverez toujours de l’aide pour résoudre les problèmes ou améliorer votre code. En somme, c’est un projet qui allie technologie, créativité et divertissement, tout en restant accessible à tous.

Alors, prêt à transformer votre Raspberry Pi en un serveur vocal interactif ? Lancez-vous, expérimentez, et pourquoi pas, partagez vos créations avec la communauté. Qui sait, votre jeu de devinettes pourrait bien devenir le prochain phénomène viral !

Et vous, quel projet domotique ou DIY aimeriez-vous réaliser avec une Raspberry Pi ? Dites-le nous en commentaire !


Source : https://youtube.com/watch?v=phBH4ezKoeM&is=Rges7DrKBnBrjdNH

Publications similaires