Converter texto em fala em Python

Manav Narula 30 janeiro 2023
  1. Use o módulo gTTS para converter texto em fala em Python
  2. Use o módulo pyttsx3 para converter texto em fala em Python
Converter texto em fala em Python

Devido ao avanço da tecnologia nas últimas décadas, temos muitos dispositivos equipados com reconhecimento de voz. Python tem uma grande variedade de módulos disponíveis que podem funcionar com objetos de áudio. Alguns módulos podem converter algum texto escrito em áudio.

Neste tutorial, discutiremos como converter texto em fala usando Python.

Use o módulo gTTS para converter texto em fala em Python

O Google criou uma API chamada Google Text-To-Speech, que eles usam para ler um texto e fornecer saída de áudio. Esta API é integrada a um módulo Python denominado gtts, que pode converter texto em fala, realizar manipulação de áudio, entre outras coisas, armazenando áudio em um objeto de tamanho de bytes e até mesmo salvar a saída final.

Usaremos a função gTTS para criar um objeto que irá ler o texto e convertê-lo em um objeto de áudio. Podemos usar muitos parâmetros com esta função. Podemos reduzir a velocidade da saída usando o argumento slow. A API do Google suporta diferentes idiomas, e podemos mencionar os idiomas suportados usando o parâmetro lang.

Implementaremos esse método no código a seguir.

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save("sample.mp3")
playsound("sample.mp3")

No código acima, criamos um objeto que lê o texto desejado. Salvamos este objeto que contém o áudio da fala usando a função save() e depois o reproduzimos usando a função playsound(). A função playsound() importada da biblioteca playsound pode reproduzir um arquivo de áudio.

Observe que, dado que este módulo usa a API do Google para converter texto em fala, ele exigirá uma conexão ativa com a Internet. Você pode considerar o método discutido abaixo se quiser que ele seja executado offline.

Use o módulo pyttsx3 para converter texto em fala em Python

O pyttsx3 é outro módulo que pode realizar tais conversões e funcionar sem conexão com a internet. Primeiro, criaremos um objeto que faz referência ao pyttsx3.Engine usando o construtor init() deste módulo. Em seguida, a função say() adiciona aqui o texto necessário para ser falado na fila. Em seguida, usamos a função runAndWait() para reproduzir o comando da fila.

Por exemplo,

import pyttsx3

s = pyttsx3.init()
data = "Sample Text"
s.say(data)
s.runAndWait()

Podemos definir as propriedades como a taxa de reprodução da saída final usando o método setProperty(). Este módulo é compatível com Python 2 e Python 3.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Python Audio