Deixe-me primeiro explicar algumas abreviações e alguns termos básicos que vamos usar neste post.
Para quem não sabe o que significa TTS, significa Text To Speech.
O que queremos fazer é dar algum pedaço de texto ao nosso programa e ele converterá esse texto em fala e lerá isso para nós.
É, em outras palavras, fazer o computador ler para nós.
Agora, existem várias maneiras de fazer esse TTS, mas aqui discutiremos uma biblioteca, que usei pessoalmente e obtive bons resultados.
Nós vamos usar pyttsx3
.
pyttsx3
pyttsx3 é uma biblioteca Python que nos permite converter texto em fala. Então, estaremos fornecendo nosso texto e ele converterá esse texto em áudio.
É um wrapper em torno de vários mecanismos de conversão de texto em fala, incluindo o mecanismo de conversão de texto em fala (TTS) da Microsoft.
Agora vamos ver como usamos esta biblioteca para TTS.
A primeira e mais importante coisa que precisamos fazer é instalar esta biblioteca e podemos fazer isso usando o pip
, que vem junto com a instalação do python.
A sintaxe dessa instalação é semelhante a todas as pip installs
.
pip install pyttsx3
Se no caso desta instalação lhe der um erro cmd not found
, tente usar pip3
em vez de pip
como:
pip3 install pyttsx3
Após a instalação, vamos verificar se foi instalado com sucesso ou não, executando este comando:
pip3 freeze
Ele retornará uma lista de todos os pacotes instalados em nosso env. Se você encontrar pyttsx3
nesta lista, então instalamos pyttsx3
com sucesso e estamos prontos para usá-lo em nosso projeto.
Após a conclusão da instalação, precisamos importar esta biblioteca para o nosso projeto e, em seguida, inicializar o mecanismo de conversão de texto em fala. Este motor é a parte mais importante, e é este motor que vai realizar o TTS para nós.
Importing pyttsx3 and initializing the text-to-speech engine:
import pyttsx3
engine = pyttsx3.init()
.init()
é o método que precisa ser chamado para inicializar o mecanismo.
Agora, como nosso mecanismo é inicializado, podemos usá-lo para nosso TTS chamando o método say(text)
.
engine.say(text)
engine.runAndWait()
Essa velocidade e volume do texto falado será o padrão e podemos alterá-los das seguintes maneiras.
Tudo o que precisamos é definir alguns valores para o nosso mecanismo. É como dizer ao motor o que usar.
Então, temos que fazer isso da seguinte maneira:
getProperty(name)
setProperty(name, value)
Vamos definir a taxa e também o volume do motor.
Configurando a velocidade e o volume da fala:
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-100)
Por padrão, a taxa é 200, então vamos reduzi-la para 100. A rate
é a taxa de fala e 200 é alta para nós. Então nós baixamos.
A taxa é simplesmente, o ritmo em que o locutor falará o texto passado.
Depois de definir a taxa, alteraremos ou definiremos o volume primeiro obtendo a propriedade de volume e, em seguida, definindo-a.
volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.50)
O volume padrão é 1, ou seja, 100%, vamos aumentá-lo para 150% adicionando 0,50 ao valor recebido da leitura da propriedade do volume.
Agora que terminamos de configurar essas duas propriedades, vamos chamar say()
e a fala agora terá nosso parâmetro, ou seja, 1x
velocidade e 1.50
volume.
engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()
Agora este runAndWait
é importante para nós. Queremos executar este mecanismo e continuar funcionando até que ele conclua o TTS do texto passado.
Além disso, alterando o volume, também podemos alterar a voz que está sendo falada. Agora há 2 vozes aqui. Um é para a voz feminina e outro para a voz masculina.
Usaremos a mesma sintaxe para definir nossa propriedade como fizemos anteriormente.
Tenha em mente:
voices[0]
é para a voz masculina.voices[1]
é para a voz feminina.
Vamos mudar a voz:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
Precisamos chamar a propriedade id
da voz selecionada e então estamos prontos.
Podemos copiar o código superior e desta vez a voz será feminina ao invés da padrão que é masculina.
Depois de concluir a configuração dos parâmetros e testar o TTS, agora podemos salvar o arquivo de áudio do TTS gerado.
Ao invés de chamar .say()
vamos chamar, desta vez, .save_to_file
e passar o texto e também o nome do arquivo de saída, onde queremos que nosso áudio TTS seja salvo.
Desta vez, ele não vai ler o texto em voz alta, mas sim salvá-lo no arquivo, cujo nome passamos.
engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")
engine.runAndWait()
Depois de executá-lo, teremos um arquivo chamado test.mp3
com o TTS gerado.
Além disso, esse pyttsx3 tem vários outros métodos e propriedades que você pode usar para personalizar a saída de conversão de texto em fala, como definir o tom, o idioma etc. Você pode encontrar mais informações sobre isso na documentação do pyttsx3 .
Veja, como é fácil gerar TTS a partir de um texto ou mesmo do arquivo que contém o texto?
Podemos usar esses TTS gerados para vários fins e cabe a você.
Eu sei, agora você será capaz de executar este TTS com facilidade e fará projetos incríveis usando isso.
Agora, faça uma coisa, siga-me no Twitter , se gostar do conteúdo e quiser ficar conectado.
Obrigado por ler, aproveite o conteúdo.