Fazendo seu Linux falar com espeak

Neste artigo faremos um tour pelo espeak, em minha opinião o melhor sintetizador de voz para a plataforma GNU/Linux em 2020.

[ Hits: 1.324 ]

Por: Fábio Berbert de Paula em 17/06/2020 | Blog: https://youtube.com/c/cotidianohackeado


Introdução



Já começando com treta... de todos os que testei, fico com o espeak como o melhor sintetizador de voz para Linux. Se tiver opinião diferente, comente qual é o teu predileto.

Vou demonstrar a instalação em Ubuntu, Debian, Mint e derivados. Os nomes dos pacotes em outras distribuições não deve variar.

Gravei uma versão em vídeo deste artigo para o canal Cotidiano Hackeado, então fica a seu critério assistir o vídeo ou seguir com a leitura:
Instalar o espeak:

sudo apt install espeak

O espeak vem com suporte nativo a Português do Brasil. Para determinar uma voz diferente da padrão (Inglês), use a opção -v[VOZ], conforme exemplo abaixo:

espeak -vpt-br "Fábio é muito bonito"

Para listar as vozes disponíveis:

espeak --voices
Pty Language Age/Gender VoiceName          File          Other Languages
 5  af             M  afrikaans            other/af
 5  an             M  aragonese            europe/an
 5  bg             -  bulgarian            europe/bg
 5  bs             M  bosnian              europe/bs
 5  ca             M  catalan              europe/ca
 5  cs             M  czech                europe/cs
 5  cy             M  welsh                europe/cy
 5  da             M  danish               europe/da
 5  de             M  german               de
 5  el             M  greek                europe/el
 5  en             M  default              default
 2  en-gb          M  english              en            (en-uk 2)(en 2)
 5  en-sc          M  en-scottish          other/en-sc   (en 4)
 5  en-uk-north    M  english-north        other/en-n    (en-uk 3)(en 5)
 5  en-uk-rp       M  english_rp           other/en-rp   (en-uk 4)(en 5)
 5  en-uk-wmids    M  english_wmids        other/en-wm   (en-uk 9)(en 9)
 2  en-us          M  english-us           en-us         (en-r 5)(en 3)
 5  en-wi          M  en-westindies        other/en-wi   (en-uk 4)(en 10)
 5  eo             M  esperanto            other/eo
 5  es             M  spanish              europe/es
 5  es-la          M  spanish-latin-am     es-la         (es-mx 6)(es 6)
 5  et             -  estonian             europe/et
 5  fa             -  persian              asia/fa
 5  fa-pin         -  persian-pinglish     asia/fa-pin
 5  fi             M  finnish              europe/fi
 5  fr-be          M  french-Belgium       europe/fr-be  (fr 8)
 5  fr-fr          M  french               fr            (fr 5)
 5  ga             -  irish-gaeilge        europe/ga
 5  grc            M  greek-ancient        other/grc
 5  hi             M  hindi                asia/hi
 5  hr             M  croatian             europe/hr     (hbs 5)
 5  hu             M  hungarian            europe/hu
 5  hy             M  armenian             asia/hy
 5  hy-west        M  armenian-west        asia/hy-west  (hy 8)
 5  id             M  indonesian           asia/id
 5  is             M  icelandic            europe/is
 5  it             M  italian              europe/it
 5  jbo            -  lojban               other/jbo
 5  ka             -  georgian             asia/ka
 5  kn             -  kannada              asia/kn
 5  ku             M  kurdish              asia/ku
 5  la             M  latin                other/la
 5  lfn            M  lingua_franca_nova   other/lfn
 5  lt             M  lithuanian           europe/lt
 5  lv             M  latvian              europe/lv
 5  mk             M  macedonian           europe/mk
 5  ml             M  malayalam            asia/ml
 5  ms             M  malay                asia/ms
 5  ne             M  nepali               asia/ne
 5  nl             M  dutch                europe/nl
 5  no             M  norwegian            europe/no     (nb 5)
 5  pa             -  punjabi              asia/pa
 5  pl             M  polish               europe/pl
 5  pt-br          M  brazil               pt            (pt 5)
 5  pt-pt          M  portugal             europe/pt-pt  (pt 6)
 5  ro             M  romanian             europe/ro
 5  ru             M  russian              europe/ru
 5  sk             M  slovak               europe/sk
 5  sq             M  albanian             europe/sq
 5  sr             M  serbian              europe/sr
 5  sv             M  swedish              europe/sv
 5  sw             M  swahili-test         other/sw
 5  ta             M  tamil                asia/ta
 5  tr             M  turkish              asia/tr
 5  vi             M  vietnam              asia/vi
 5  vi-hue         M  vietnam_hue          asia/vi-hue
 5  vi-sgn         M  vietnam_sgn          asia/vi-sgn
 5  zh             M  Mandarin             asia/zh
 5  zh-yue         M  cantonese            asia/zh-yue   (yue 5)(zhy 5)

Após o último comando deu para notar que a voz "pt-br" nativa não é lá grandes coisas né? Vamos melhorar isso instalando as vozes do projeto mbrola:

sudo apt install mbrola-br*

No meu Debian 10 Buster foram encontrados/instalados 4 pacotes:

apt search mbrola-br*
mbrola-br1/stable,stable,now 2.021+repack2-4 all [installed]
Brazilian Portuguese male voice for Mbrola

mbrola-br2/stable,stable,now 2.021+repack2-4 all [installed]
Brazilian Portuguese female voice for Mbrola

mbrola-br3/stable,stable,now 2.021+repack2-5 all [installed]
Brazilian Portuguese male voice for Mbrola

mbrola-br4/stable,stable,now 1.0+repack2-4 all [installed]
Brazilian Portuguese fsampale voice for Mbrola


Vamos então listar as vozes disponíveis do projeto mbrola:

espeak --voices=mbrola | grep brazil
7  pt             M  brazil-mbrola-1      mb/mb-br1    
7  pt             M  brazil-mbrola-3      mb/mb-br3    
7  pt             F  brazil-mbrola-4      mb/mb-br4


E testar cada uma das vozes BR:

espeak -vbrazil-mbrola-1 "Fábio é muito inteligente"
espeak -vbrazil-mbrola-3 "Fábio é um script kiddie malvado"
espeak -vbrazil-mbrola-4 "Oi Fábio, vamos passear?"

Eu particularmente gosto da mbrola-4, que é feminina e da mbrola-3, que parece a voz do Mr. Robot.

Se você quiser gravar o áudio em um arquivo WAV:

espeak -vbrazil-mbrola-3 "Canal Cotidiano Hackeado" -w welcome.wav

Testar:

aplay welcome.wav

Para ler um arquivo texto use a opção -f:

espeak -vbrazil-mbrola-4 -f texto.txt

Para maiores informações, consulte a página de manual do sintetizador:

man espeak

Até a próxima!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

cpulimit - Limitando o uso da CPU por processo

Como baixar fotos e vídeos do Instagram com Python

Como criar VIEWS no MySQL

Rodando ASP em servidores web Linux

Instalando um sistema tradutor de línguas no seu Linux

Leitura recomendada

FFMPEG para conversão em MP4 - Uso básico

Áudio Profissional no GNU/Linux

Instalação do Jack Audio Connection Kit

Criar um Servidor TeamSpeak no Ubuntu Server

Convertendo arquivo de vídeo em áudio via ffmpeg (incluindo metadados)

  
Comentários
[1] Comentário enviado por ricardogroetaers em 18/06/2020 - 01:38h

Valeu. O pior é que espeak já estava instalado de fábrica no Mint 18.3 e eu nunca havia percebido.
Tem interface gráfica para ele e para mbrola, ela se chama Gespeaker.
Se cavucar vai achar até um editor de fonemas (eSpeakEdit) e um daemon (Espeakup) que liga os módulos speakup do kernel ao software de sintetização de voz espeak através do dispositivo /dev/softsynth.
É um prato feito para quem gosta de brincar com isso.

[2] Comentário enviado por thiagorb em 29/08/2020 - 06:50h

Estranho que o pacote mbrola-br2 parece não estar funcionando. Pra minha "sorte" foi o primeiro dos 4 que eu tentei usar, e após uns 20 minutos sem saber o que estava errado decidi tentar um dos outros. :(


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts