paint-brush
Um tutorial essencial de conversão de texto em fala do Python usando a biblioteca pyttsx3por@shehzensidiq
37,703 leituras
37,703 leituras

Um tutorial essencial de conversão de texto em fala do Python usando a biblioteca pyttsx3

por M Shehzen Sidiq5m2023/01/03
Read on Terminal Reader

Muito longo; Para ler

Neste post vamos falar sobre uma biblioteca, que usei pessoalmente e obtive bons resultados. É uma biblioteca Python que nos permite converter texto em fala. Nós estaremos fornecendo isso, nosso texto e ele irá converter esse texto em um áudio. É um wrapper em torno de vários mecanismos de conversão de texto em fala.
featured image - Um tutorial essencial de conversão de texto em fala do Python usando a biblioteca pyttsx3
M Shehzen Sidiq HackerNoon profile picture

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 .

O que é 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.

as coisas divertidas

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:


  • Primeiro, obteremos essa propriedade usando getProperty(name)
  • Em seguida, definiremos essa propriedade usando 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 .

Palavras Finais

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.