Como fazer Python falar
-
06-07-2019 - |
Pergunta
Como eu poderia fazer Python dizer algum texto?
Eu poderia usar Festival com subprocess mas eu não será capaz de controlá-lo (ou talvez no modo interativo, mas não vai ser limpo).
Existe uma biblioteca Python TTS? Como uma API para Festival, eSpeak, ...?
Solução
Por favor, note que isso só trabalho com python 2.x
Você deve tentar usar o pacote PyTTSx desde PyTTS está desatualizado. PyTTSx trabalha com a mais recente versão do python.
http://pypi.python.org/pypi/pyttsx/1.0 - > O pacote
Hope isso ajuda
Outras dicas
A extravagante pouco, mas se você usar um Mac você pode passar um comando de terminal para o console de python.
Tente digitar o seguinte no terminal:
$ say 'hello world'
E haverá uma voz do mac que vai falar isso. De python tal coisa é relativamente fácil:
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
Como ouvir a voz de PC no Windows
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice")
speak.Speak("Ciao")
Usando a API do Google text-to-speech para criar um mp3 e aqui
Depois de instalado os gtts módulo em cmd: pip instalar gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
Um simples Google me levou a pyTTS , e alguns documentos sobre o assunto . Parece não mantido e específico para motor de voz da Microsoft, no entanto.
Em pelo menos Mac OS X, você pode usar subprocess
para chamar ao comando say
, que é bastante divertido para brincar com seus colegas de trabalho, mas pode não ser muito útil para suas necessidades.
Parece Festival tem algumas APIs públicas, também:
Festival oferece uma interface baseada em soquete BSD. Isso permite Festival para ser executado como um servidor e permitir que os programas cliente para acessá-lo. Basicamente, o servidor oferece um novo interpretador de comandos para cada cliente que atribui a ele. O servidor é bifurcada para cada cliente, mas este é muito mais rápido do que ter que esperar por um processo Festival de começar do zero. Além disso, o servidor pode ser executado em uma máquina maior, oferecendo muito mais rápido síntese. linky
Há também um full-featured C ++ API , que você pode ser capaz de fazer um Python módulo para fora (é divertido!). Festival também oferece uma API C pared-down - manter a rolagem nesse documento -. Que você pode ser capaz de lançar ctypes
em um one-off
Talvez você tenha identificado um buraco no mercado?
Há uma série de maneiras de fazer Python falar tanto Python3 e python2, dois grandes métodos são:
- usando o OS
Se você estiver no Mac, você terá a módulo os construído em seu computador. Você pode importar o módulo os usando:
import os
Você pode então usar sistema operacional para executar comandos do terminal usando o comando os.system:
os.system("Your terminal")
No terminal, a maneira como você fazer seu computador falar é usando o comando "dizer", para assim tornar o computador falar basta usar:
os.system("say 'some text'")
Se você quiser usar isso para falar uma variável que você pode usar:
os.system("say " + myVariable)
A segunda maneira de obter python para falar é usar
- O pyttsx módulo
Você terá que instalar este usando
pip isntall pyttsx3
ou para Python3
pip3 install pyttsx3
Você pode usar o código a seguir para obtê-lo a falar:
import pyttsx3
engine = pyttsx3.init()
engine.say("Your Text")
engine.runAndWait()
Espero que isso ajude! :)
Pode não haver nada 'Python específica', mas o KDE e GNOME desktops oferta text-to-speech, como parte de seu suporte de acessibilidade, e também oferecer ligações de biblioteca Python. Pode ser possível usar os vínculos python para controlar as bibliotecas de desktop para texto em fala.
Se estiver usando a implementação Jython de Python na JVM, o href="http://freetts.sourceforge.net/docs/index.php" rel="nofollow noreferrer"> sistema pode ser utilizável.
Finalmente, OSX e o Windows têm APIs nativas para texto em fala. Pode ser possível usá-los a partir de python via ctypes ou outros mecanismos, tais como COM.
Você pode usar espeak usando python para conversor de texto para fala.
Aqui está um exemplo de código python
from subprocess import call speech="Hello World!" call(["espeak",speech])
P.S:. Se espeak não está instalado em seu sistema linux, então você precisa instalá-lo primeiro
Abra o terminal (usando ctrl + alt + T) e tipo
sudo apt install espeak
Se você estiver usando python 3 e Windows 10, a melhor solução que eu encontrei para trabalhar é de Giovanni Gianni. Este tocou para mim na voz masculina:
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
speak.Speak("This is the pc voice speaking")
Eu também encontrei este vídeo no youtube por isso, se você realmente quiser, você pode obter alguém que você conheça e faça a sua própria voz DIY tts.
Este é o que você está procurando. Uma solução TTS completa para o Mac. Você pode usar este independente ou como um co-localização do servidor Mac para aplicações web:
PYTTSX3 !
THE COMPLETE SOLUTION TO ALL YOU PYTHON TEXT-TO-SPEECH NEEDS
O QUE:
Pyttsx3 é um módulo python que é um clone do pyttsx módulo para Python 2.x, exceto modificado para funcionar perfeitamente bem nas últimas versões do Python 3!
- Python Package Index para downloads: https://pypi.python.org
- GitHub para a fonte, bugs, e Q & A: https://github.com / nateshmbhat / pyttsx3
- Leia a documentação completa em : https://pyttsx3.readthedocs.org
Por:
É 100% MULTI-PLATAFORMA e Funciona offline e ainda está sendo / ACTIVE DESENVOLVIDO e funciona com qualquer PYTHON VERSÃO
COMO:
Ele pode ser facilmente instalado com pip install pyttsx3
e uso é o mesmo que pyttsx:
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();
CONCLUSÃO:
Ele funciona de forma fácil e sem falhas, então eu acho que essa é a melhor solução