Infra - Linux
Festival: O Sintetizador de Voz for Linux
Quem disse que o Linux não é capaz pronunciar textos? Embora este sintetizador de voz suporte apenas Ingles e Espanhol, vale a pena averiguar os recursos oferecido por este pacote.
por Alessandro de Oliveira FariaDownload e Instalação:
Podemos efetuar o download direto com o wget ou selecionar o pacote desejado a partir de uma lista.
wget ftp://ftp.univie.ac.at/systems/linux/suse/i386/9.1/suse/i586/festival-1.4.3-32.i586.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/1221772/com/festival-1.4.3-32.i586.rpm.html
Apenas para efeito de documentário, logo abaixo o comando de instalação:
# rpm -ivh festival-1.4.3-32.i586.rpm
Executando e testando o sintetizador.
No modo consolo digite festival para entrar no modo interativo de sintetizador. Se todos os passos acima foram concluído com sucesso, iremos obter a seguite tela:
cabelo@linux:~> festival Festival Speech Synthesis System 1.4.3:release Jan 2003 Copyright (C) University of Edinburgh, 1996-2003. All rights reserved. For details type `(festival_warranty)" festival>
Vamos agora ouvir as primeiras palavras do nosso servidor Linux, digitando o comando SayText e a constante a ser pronunciada entre parêntese:
festival> (SayText "Hi Linux System") #<Utterance 0x403972a8> festival>
Podemos também reproduzir um texto pré-definido em uma variável. No exemplo logo abaixo, a variável intro está definida em /etc/festival.conf.
festival> (intro) nil
O modo interativo pode fazer cálculos conforme o exemplo abaixo:
festival> (+ 34 52) 86
Agora vamos sair do festival com o comando (quit) e reproduzir um arquivo texto armazenado no disco:
festival> (quit) cabelo@linux:~> cd /usr/share/doc/packages/festival cabelo@linux:/usr/share/doc/packages/festival> ls addr-mode.scm benchmark.text ex1.email INSTALL README th-mode.scm webdemo.scm apml.dtd COPYING ex1.ogi intro.text spintro.text toksearch.scm
Vamos listar o conteúdo do arquivo intro.text e logo após executar a pronuncia do mesmo.
cabelo@linux:/usr/share/doc/packages/festival> cat intro.text This is a short introduction to the Festival Speech Synthesis System. Festival was developed by Alan Black and Paul Taylor, at the Centre for Speech Technology Research, University of Edinburgh.
Existem duas maneira de reproduzir este arquivo, no modo interativo e console. Para reproduzi-lo no modo interativo, vamos executar o festival novamente e executar o seguinte comando:
cabelo@linux:/usr/share/doc/packages/festival>festival Festival Speech Synthesis System 1.4.3:release Jan 2003 Copyright (C) University of Edinburgh, 1996-2003. All rights reserved. For details type `(festival_warranty)" festival> festival> (tts "intro.text" nil) nil festival>
Agora vamos executar a pronúncia no modo comando do console, assim possibilitando a criação de scripts.
festival> (quit) cabelo@linux:/usr/share/doc/packages/festival> festival --tts intro.text cabelo@linux:/usr/share/doc/packages/festival>
Agora para finalizar, vamos gerar um arquivo texto, executar a pronuncia e salva-lo em um arquivo de áudio tipo wave.
cabelo@linux:~> echo "My name is hair." > falar.txt cabelo@linux:~> text2wave falar.txt -o pronuncia.wav cabelo@linux:~> playsound pronuncia.wav Now playing [pronuncia.wav]... cabelo@linux:~>
Podemos usar API em C++ declarando as seguintes funções externas:
Em primeiro lugar, devemos inserir o arquivo .h
#include festival/src/include/festival.h
Função de inicialização da biblioteca.
void festival_initialize(int load_init_files,int heapsize);
Função para reprodução de um arquivo texto.
int festival_say_file(const EST_String &filename);
Função para reprodução de strings constantes.
int festival_say_text(const EST_String &text);
Função para leitura de arquivos de comandos.
int festival_load_file(const EST_String &filename);
Função execução comandos.
int festival_eval_command(const EST_String &expr);
Função para gerar Wave.
int festival_text_to_wave(const EST_String &text,EST_Wave &wave);
Veja um simples exemplo:
int main(int argc, char **argv) { EST_Wave wave; int heap_size = 210000; int load_init_files = 1; festival_initialize(load_init_files,heap_size); festival_say_file("/etc/motd"); festival_eval_command("(voice_ked_diphone)"); festival_say_text("hello world"); festival_text_to_wave("hello world",wave); wave.save("/tmp/wave.wav","riff"); festival_wait_for_spooler(); return 0; }
Com este documento tomamos conhecimento de mais uma ferramenta no universo Linux.
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware