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, ...?

Foi útil?

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:

http://wolfpaulus.com/jounal/mac/ttsserver/

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!

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top