Tagged: 

Viewing 13 reply threads
  • Author
    Posts
    • #8056
      Dominique
      Participant

      Salut,

      Je suis en train d’expérimenter l’utilisation des voix Microsoft, ceux utiliser pour la synthèse vocale, pas Cortana qui n’a rien à voir.

      Si vous êtes tenté, voici la procédure à suivre:

      1) Télécharger et installer Jampal pour windows à cette adresse: https://sourceforge.net/projects/jampal/files/

      2) Ajouter le path d’installation C:\Program Files\Jampal dans les variables d’environnement de windows.

      3) Ensuite, il faut flouer MRL. Pour cela j’utilise l’initialisation de la voix MaryTTS, qui fait appel à la fonction talk déclaré comme ceci:

      htmlFilter.addListener("publishText", python.name, "talk")

      Dans talk, je remplace ceci :

      mouth.speak(unicode(data,'utf-8'))

      par cela :

      fichier = open("data.txt", "w")
      					
      try:
        fichier.write(unicode(data,'utf-16le'))
      finally:
        fichier.close()
      						
      os.system('ptts -u data.txt')

      4) C’est Activator qui donne à MRL les événements de début et fin de la parole, du coup, ceci

      python.subscribe(mouth.getName(),"publishStartSpeaking")
      python.subscribe(mouth.getName(),"publishEndSpeaking")

      n’est plus néccessaire.

      ce sont les événements données par Activator qui appel les fonctions :

      onStartSpeaking(text):
      onEndSpeaking(text):

      Voilà, les débuts sont prometteur car cela fonctionne la plupart du temps. J’ai parfois une erreur d’exception dans MRL, notamment quand je demande la météo. Je ne sais pas encore pourquoi mais ça va venir.

      Je cherche aussi une voix masculine pour mon Jarvis car la voix d’Hortense ça la fait pas, si vous avez une idée, je suis preneur.

      A+

    • #8062
      steve
      Participant

      salut Dominique
      j’aime bien ton idée d’utiliser les voix de Windows.

      par contre je ne comprends pas le point 2.
      pourrais tu détailler un peux plus la procédure pour l’ajout du path dans les variables d’environnement de windows.

      merci trop cool

    • #8063
      Dominique
      Participant

      Il faut ouvrir la fenêtre “système”, puis cliquer sur “paramètres système avancés”, puis sur “variables d’environnements”.

      La tu va trouver “path” dans les variables utilisateurs. Tu clique sur modifier et à la fin tu ajoute “;C:\Program Files\Jampal”

      Enfin OK et c’est fini.

      Le but est de pouvoir accéder à Jampal de n’importe où dans Windows.

    • #8064
      lecagnois
      Participant

      Super Dominique
      Une piste de plus pour avoir une voix perenne.

    • #8090
      steve
      Participant

      je vais tester ca se soir si j’arrive

    • #8194
      Dominique
      Participant

      Voici quelques petites nouvelles de mes avancées sur les voix Microsoft.

      Je suis en train de finaliser un plug in à mettre dans les librairies JAR de MRL.
      Les points 1 et 2 du tuto devront rester.

      Il suffit ensuite de faire comme d’habitude :

      mouth = Runtime.createAndStart("Voice", "MicrosoftSpeech");

      pas de setVoice ou autre car tout est gérer par Windows lui même.

      Ensuite, le reste est automatique comme avant.

      Pour donner l’eau à la bouche, voici les possibilités que ça ouvre :
      https://best-of-vox.com/windows

      Merci à Vincent pour le lien.

    • #8195
      Dominique
      Participant

      Bon, voici le plug in, en version BETA.

      Juste un petit soucis, pas très grave. Le début et la fin arrive en même temps. Je ne sais pas encore pourquoi.

      Il faut donc mettre en commentaire

      #python.subscribe(mouth.getName(),"publishStartSpeaking")

      et être sur d’appeler ear.pauseListening() avant le speak.

      Pour le reste, ça marche nickel.

    • #8196
      Dominique
      Participant

      a décompresser…

      Attachments:
      You must be logged in to view attached files.
    • #8198
      steve
      Participant

      Joli l ami je fais le test demain sans faute

    • #8206
      lecagnois
      Participant

      Hello Dominique

      J’ai donc testé cela fonctionne avec une voix féminine assez agréable
      Test avec ancienne config de Antony = ok

      Test avec la dernière version problèmes exception NUL

      Anthony Peut tu intégrer dans la dernière version (avoir le choix de MarySpeech ou MicrosoftSpeech ou NaturalReaderSpeech)

      dans le fichier de config

    • #8223
      johnn
      Participant

      Hello, pourriez vous me faire un exemple bien précis sur la façon d’installer MicrosoftSpeech dans le fichier config,histoire d’avoir une voix correcte dans l’ancienne version d’Anthony mrl 1803,j’ai beau faire les manips expliquer par Dominique,ça ne fonctionne pas.
      merci pour vos retours

      Jean

    • #8224
      Dominique
      Participant

      Bon, tout d’abord il faut mettre MicrosoftSpeech.jar dans le répertoire …\libraries\jar

      Je suppose que jampal est bien installé avec le path correctement mis dans les variables d’environnements de windows.

      ensuite tu remplace ta déclaration de mouth par celui ci:

      mouth = Runtime.createAndStart("Voice", "MicrosoftSpeech");

      et c’est fini…

    • #8225
      johnn
      Participant

      Merci Dominique,le truc s’est que je bloque au 3) du tuto le 1 et 2 j’ai bien compris car tu l’a très bien expliqué ci-dessus mon problème est a quelle endroit je doit mettre ca #python.subscribe(mouth.getName(),”publishStartSpeaking”)

      et être sur d’appeler ear.pauseListening() avant le speak dans le fichier config ou bien ….

    • #8260
      Dominique
      Participant

      Juste pour vous signaler que le service MicrosoftSpeech est maintenant intégré à la dernière version de MyRobotLab.

      Petites précisions : la fonction speak lance la synthèse vocale, ne pas oublié de stopper l’écoute sinon le robot va répondre 2 fois, enfin c’est un phénomène aléatoire. Vaux mieux donc appeler ear.pauseListening() avant le speak. Normalement c’est la fonction onStartSpeaking qui est appelé automatiquement.
      Malheureusement, dans la fonction speak de MicrosoftSpeech les 2 évenements onStartSpeaking et onEndSpeaking arrive en même temps, donc inutilisable tel quel.

      Solution 1: appeler ear.pauseListening(), puis speak, puis lancer un timer qui, lorsqu’il a terminé, relance l’écoute avec resume.pauseListening().

      Solution 2: utiliser les événements de Activator pour le début et fin de parole. C’est évidemment la solution que j’ai adopté.

      J’ai aussi ajouté la possibilité de spécifier l’endroit où doit être situé le fichier texte que le service écrit. Cela me permet de le mettre dans un RAMDISK Windows. Grog de MRL en a fait de même pour le fichier myrobotlab.log. Ainsi, la mémoire flash n’est plus sollicité.

      Comme vous le savez, le nombre d’écritures en flash est limitées, surtout pour les mémoires bon marché. Du coup, je conseil fortement l’utilisation d’un RAMDISK qui simule un lecteur de disque en RAM qui elle est inusable.
      Evidemment, cela est utile pour les tablettes et lattepanda. Pour les disques durs classique, pas besoin.

      • This reply was modified 7 years, 8 months ago by Dominique.
      • This reply was modified 7 years, 8 months ago by Dominique.
Viewing 13 reply threads
  • You must be logged in to reply to this topic.