Question

Je ne suis pas aveugle, je veux juste avoir un moyen d'avoir ma machine Windows lire le contenu d'un tampon outloud. Voici les exigences de base:

  • Lire tout tampon texte anglais.
  • Pause la lecture à tout moment et de reprendre à tout moment (ne pas attendre quelques minutes pour un grand tampon pour finir quand quelqu'un entre dans mon bureau).
  • Régler la vitesse de lecture de retour au jeu à temps.
  • Sélectionnez le texte en cours de lecture (en option)

J'ai trouvé quelques solutions possibles:

  • Emacspeak : Conçu pour les aveugles. On dirait un plug-in programme autonome, pas un Emacs
  • festival.el : Nécessite festival. Je ne peux pas trouver Binaires Windows pour festival. Quelqu'un at-il eux?
  • Je pourrais aussi écrire mon propre. Text-To-Speech bibliothèques (TTS) sont beaucoup ces jours-ci. La pause interactive peut être le plus grand truc, mais il doit y avoir des bibliothèques qui peuvent le faire.

Quelle est l'option est le meilleur plan? Je ne veux pas d'un projet d'une semaine ici. Festival de Windows Compiler a été une expérience douloureuse. Emacspeak ressemble trop pour ce que je veux.

Était-ce utile?

La solution

Festival pour Windows est disponible . Je ne peux pas garantir que festival.el fonctionnera avec ces binaires. J'ai une expérience de travail avec ces binaires, cependant, donc si vous avez des problèmes les amener à travailler en dehors d'Emacs, je peux être en mesure d'aider.

Je ne pense pas que vous avez le contrôle sur la vitesse de lecture avec le festival, mais je peux me tromper. En ce qui conservant la maîtrise de, je dirais que le mieux est de le programmer pour qu'il envoie uniquement de petites portions à la fois pour festival. Dans le cas contraire, il n'y a vraiment aucun moyen de l'empêcher de lire jusqu'à faire.

En fait, je ne pense pas qu'il y ait quelque chose là-bas qui répondra à vos exigences minimales sans un certain travail.

Edit: après avoir regardé en arrière sur vos besoins, je dirais que la meilleure approche serait de pirater festival.el d'envoyer une phrase à la fois au festival. Ensuite, vous pouvez programmer une combinaison de touches qui le tuera, de sorte qu'il ne terminer la phrase en cours. En même temps, votre script pourrait mettre en évidence la phrase qui est en cours d'envoi au festival.

Autres conseils

J'ai une solution simple basée sur Python pyttsx module. Cela commence un script python comme un processus emacs et l'envoie chaînes à lire.

(defvar tts nil "text to speech process")

(defun tts-up ()
  (interactive)
  (and (not (null tts))
       (eq (process-status tts) 'run)))

(defun tts-start ()
  (interactive)
  (if (not (tts-up))
      (setq tts
            (start-process "tts-python"
                           "*tts-python*"
                           "python" "speak.py"))))

(defun tts-end ()
  (interactive)
  (delete-process tts)
  (setq tts nil))

(defun tts-say (text)
  (interactive)
  (tts-start)
  (process-send-string tts (concat text "\n")))

Le fichier python speak.py:

import pyttsx

engine = pyttsx.init()

def say(data):
    engine.say(data)
    engine.runAndWait()

while True:
    say(raw_input())
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top