21 votes

Raccourcis Text to Speech en deux langues

J'utilise beaucoup la fonction Text to Speech de Mac. Sous Paramètres > Parole > Synthèse vocale, j'ai également défini une "clé" pour un accès rapide.

Comme je souhaite également que la synthèse vocale lise l'allemand et qu'OS Lion propose des voix pour d'autres langues, j'aimerais disposer d'un deuxième raccourci pour l'allemand.

Quelqu'un sait-il où je peux régler cela ? Ou bien est-ce que le seul moyen est de changer constamment la voix du système avant de vouloir lire un texte en allemand (et de remettre la voix sur Alex pour les textes en anglais) ? Et qu'en est-il des textes en français ?

Quelles options existent pour ce problème général ?

1voto

Felix Andersen Points 604

Utilisation d'un service personnalisé avec le service standard Speak Text qui consiste à prononcer un texte sélectionné avec une voix alternative spécifique présente un inconvénient majeur, comme le montre le document suivant La réponse de Mikofox :

Vous ne pouvez pas facilement arrêter playback comme vous le pouvez avec le service TTS intégré en appuyant simplement sur le raccourci clavier à nouveau.

Il y a deux solutions :

Divulgation : j'ai créé les services préemballés et les voices CLI

  • Construire un service personnalisé avec un Run Shell Script action à la place, dans laquelle vous utiliser le say CLI qui permet de mettre en œuvre une bascule de lecture (arrêt de la parole si elle est invoquée alors qu'elle est encore en train de parler depuis l'invocation précédente).

    • Vous trouverez ci-dessous une mise en œuvre simple qui fonctionne, mais qui n'honorera pas les taux d'élocution personnalisés (mots par minute) que vous avez pu configurer pour les voix individuelles via les préférences système.
    • Une solution qui honore les tarifs des conférences personnalisées demande un peu plus de travail. service préemballé ici ; ou utilisez le lien de téléchargement direct (restera à jour)..
  • Alternativement, créer un service qui commute le par défaut voix sur demande qui vous permet ensuite d'utiliser le service TTS intégré avec sa fonction de lecture alternée.

    • Bien qu'OSX n'offre pas de moyen programmatique pour changer la voix par défaut, vous pouvez utiliser une fonction service préemballé construit sur le voices CLI :
      Suivez les instructions ici ou utiliser le lien de téléchargement direct (restera à jour).

Mise en œuvre simple d'un service avec bascule de lecture :

Comme indiqué, cela n'honorera pas les tarifs personnalisés configurés pour la voix choisie.

  • Créer un nouveau service dans Automator
  • Laissez les valeurs par défaut (le service reçoit du texte dans n'importe quelle application)
  • Ajouter un Run Shell Script action et coller ce qui suit :

    ------- BEGIN: CUSTOMIZE

    Specify the voice to speak with.

    voice=Vicki

    ------- END: CUSTOMIZE

    If say is running, we assume that a previous invocation is still speaking

    and speaking should be stopped.

    Caveat: This will only work if either the original app from which speaking was initiated is still

    frontmost with text selected, or, coincidentally, a now different frontmost app also has

    text selected. Otherwise, this service won't be active.

    pgrep -x say && { pkill -x say; exit; }

    Read the text to speak into a variable.

    txt=$(</dev/stdin)

    Speak, using the standard say CLI.

    say -v "$voice" "$txt"

0voto

Comme Mikofox l'a mentionné, vous pouvez créer un service Automator pour le texte parlé :

Dans les versions 10.8 et 10.7, les raccourcis des services Automator ne fonctionnent pas toujours tant que vous ne survolez pas le menu des services dans la barre de menu.
WorkflowServiceRunner peut également utiliser plus de 100% du CPU lors de la lecture de texte.

J'ai utilisé FastScripts pour attribuer un raccourci à ce script :

try -- if the clipboard is empty, trying to get it results in an error
    set old to the clipboard as record
end try
try
    tell application "System Events" to keystroke "c" using command down
    delay 0.05
    set input to the clipboard
    try
        set the clipboard to old
    end try
    say input using "Kyoko"
end try

Une autre option est d'exécuter quelque chose comme pbpaste | say -v kyoko .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X