View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Programmer le pcDuino : Audio : Tester la synthese vocale dans la langue... de Molière !

Par X. HINAULT - Juin 2013

Ce que l'on va faire ici

  • Dans ce code, je donne un exemple original de synthèse vocale utilisant les 2 synthétiseurs vocaux implémentés sur le pcDuino, à l'aide la librairie Pyduino. A l'aide de la voix métallique "espeak" et de la voix féminine "pico", la célèbre tirade "O belle marquise" sera "jouée" par votre pcDuino !
  • Le but ici est de montrer la possibilité de lire de longues chaînes de texte en synthèse vocale sans problème.
  • Pour plus de détails sur la synthese vocale, voir l'instruction Pyduino speak()

Pré-requis

Schéma fonctionnel

  • La synthèse vocale est entendue sur la sortie audio :

Matériel nécessaire

Système

  • Le pcDuino
  • une sortie son opérationnelle :
    • soit la sortie audio HDMI connectée à un écran HDMI
    • soit la sortie audio jack intégrée si elle existe (raspberryPi)
    • soit une carte son USB disposant d'une sortie audio

E/S

  • aucun matériel

Instructions de montage

  • Connecter la sortie son soit sur un écran (HDMI) soit sur des enceintes.

Le montage à réaliser

Le fichier *.py

Copier/coller ce code dans l'éditeur Geany :


#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juin 2013 - Tous droits réservés - GPLv3
# voir : https://github.com/sensor56/pyDuino

# test speak dans la langue de moliere !

from pyduinoMultimedia import * # importe les fonctions Arduino pour Python

# entete declarative
noLoop=True

#--- setup ---
def setup():

        speak(""" je ne veux que ce que je vous ai dit :
        Belle Marquise, vos beaux yeux me font mourir damour."""
, ESPEAK)

        speak("""Il faut bien étendre un peu la chose.
        """
,PICO)

        speak(""" Non, vous dis-je, je ne veux que ces seules paroles-la
        dans le billet ; mais tournez a la mode ; bien arrangez comme il faut.
        Je vous prie de me dire un peu, pour voir, les diverses maniaires dont on les peut mettre.
        """
, ESPEAK)

        speak("""On les peut mettre premiairement comme vous avez dit.
        Belle Marquise, vos beaux yeux me font mourir damour.
        Ou bien : damour mourir me font, belle Marquise, vos beaux yeux.
        Ou bien : Vos yeux beaux damour me font, belle Marquise, mourir.
        Ou bien : Mourir vos beaux yeux, belle Marquise, damour me font.
        Ou bien : Me font vos yeux beaux mourir, belle Marquise, damour.
        """
,PICO)

        speak(""" Mais de toutes ces fassons-la,
        laquelle est la meilleure ?"""
, ESPEAK)

        speak("""Celle que vous avez dite : Belle Marquise, vos beaux yeux me font mourir damour.""", PICO)

# -- fin setup --

# -- loop --
def loop():
        return  # si vide

# -- fin loop --

#--- obligatoire pour lancement du code --
if __name__=="__main__": # pour rendre le code executable
        setup() # appelle la fonction main
        while not noLoop: loop() # appelle fonction loop sans fin
 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Voice/SpeakObellemarquise.py

Utilisation

  • Vérifier au besoin le bon fonctionnement de la sortie audio au préalable (par exemple en générant un son avec Audacity...)
  • Appuyer sur le bouton exécuter dans Geany
  • Une fenêtre de Terminal doit apparaître : vous devez entendre la tirade "O belle Marquise !" en synthèse vocale.

Discussion technique

  • La qualité de la voix "pico" est tout de même très correcte !