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.162 ]

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

Transferindo arquivos com o rsync

Filtros do Instagram no Gimp

Tasker - Cotação do dólar usando Javascript

Criando um contador de downloads com PHP e MySQL

Viva o Linux 2008 - Site com cara e recursos novos!

Leitura recomendada

Criar um Servidor TeamSpeak no Ubuntu Server

Como está o meu bebê?

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

Computador e Placas Antigas Nvidia em Pleno 2019

Instalação do Jack Audio Connection Kit

  
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