quarta-feira, 7 de outubro de 2015

Gambiarra para ter voz sapi 5 no orca

O que vou dizer a baixo vai animar algumas pessoas que, como eu, sempre
buscou alternativas para se ter voz de melhor qualidade no linux, pois
bem, vamos lá.
Uma pequena história antes.
Houve um projeto que foi descontinuado que visava poder usar qualquer
voz sapi 5 devidamente instalada no wine, se chamava open-sapi, que
fazia uso do speech-dispatcher, mas não deu prosseguimento, eu consegui
usar o orca falando com a voz sapi 5 que tenho aqui instalada no meu
dosvox no wine, mas era inicio de projeto e travava demais, mas acabaram
totalmente com ele.
Desde então fiquei me perguntando de um modo de usar a voz sapi que uso
no dosvox no orca, mas sem obter uma luz, mas hoje, ao ler o comentario
do Josevan sobre o telnetd, me lembrei que ainda nao o tinha instalado,
instalei e rodou beleza, daí nasceu uma antiga dubvida, e se eu
conseguisse enviar um texto pro terminal aberto no telnetvox? passei a
fazer testes, que se seguem a baixo:
Primeiro, identifiquei em que porta de terminal ele foi aberto com o
comando who:
$ who
Apareceu o tty7 que é onde o modo grafico ta rodando, depois apareceu em
baixo o pts/0 com a data a hora e quem ta logado, no meu caso aqui o
zax.local, ou seja, o telnetvox.
Resolvi dar o comando:
$ echo "testando" > /dev/pts/0
E, acreditem, ouvi o telnetvox dizer testando com a voz sapi 5 que uso
no dosvox, quase dei um pulo da cadeira, consegui enviar a palavra
"testando" pro terminal aberto no telnetvox, mas só pude ouvir pois o
telnetvox encontrava-se no modo verborragico.
Bem, ja descobri que posso enviar texto para o terminal e o sintetizador
habilitado no dosvox dentro do wine vai ler, mas como faria pra o orca
usar esse recurso? então fiz o seguinte:
Primeiro adicionei um modulo fictício no speech-dispatcher com o nome de
sapi:
No diretorio /etc/speech-dispatcher no arquivo speechd.conf adicionei na
parte dos AddModules o seguinte:
AddModules "sapi" "sd_generic" "sapi.conf"
Claro que copiei uma linha acmia no caso a espeak-mbrola-generic risos,
pra adiantar e fiz as mudanças, no lugar de espeak-mbrola-generic
coloquei sapi e no lugar de espeak-mbrola-generic.conf coloquei
sapi.conf
Pronto, agora fui criar o tal arquivo sapi.conf no diretorio modules do
speech-dispatcher.
Copiei o arquivo espeak-mbrola-generic.conf para sapi.conf
$ cp espeak-mbrola-generic.conf sapi.conf
Editei o arquivo sapi.conf
$ sudo gedit sapi.conf
Fui em GenericExecute Synth e deixei só o inicio que é echo '/$DATA$/' ,
apaguei tudo que tava nessa linha, e adicionei:
> > /dev/pts/0
Conferi se tem abaixo a linha GenericLanguage "pt" "pt" "utf-8"
Pronto, salvei o arquivo, e parei o speech-dispatcher e reiniciei ele de
novo:
$ sudo /etc/init.d/speech-dispatcher stop
$ speech-dispatcher
Depois fui fazer o teste.
Com o telnetvox ativo e logado em modo verborragico, fiz o seguinte
teste:
Abri um terminal e digitei o seguinte comando:
$ spd-say -o sapi testando
Quando dei enter, tomei outro susto risos, falou lá no telnetvox, quando
fui la olhar, ativando o leitor de telas do telnetvox verifiquei que a
palavra testando tinha sido colada lá.
Bem agora faltava testar no orca, abri as preferencias do orca, fui na
aba voz, em sintetizador fui descendo e estava lá sapi, deixei nele, fui
dando tab até chegar a aplicar, outro susto, falou o que fala sempre, só
que com um probleminha, os acentos ficou soletrando, e como resolver
isso, mas deixei pra depois, fui testar mas deixei a tela das
preferencias abertas por garantia, leu tudinho, voltei ao sintetizador
antigo e saí das preferencias do orca.
Liguei pro fabiano e contei a novidade, fui almoçar e fiquei matutando
de como resolver o problema da acentuação.
Depois de barriguinha cheia, veio a luz, fiz o seguinte, no arquivo
sapi.conf em GenericLanguage "pt" "pt" "utf-8" mudei de utf-8 para
"iso-8859-1", salvei o arquivo, parei o speech-dispatcher e o reiniciei
e abri um terminal e digitei:
$ spd-say -o sapi configuração
Que pena, nao deu certo, mas lembrei que o spd-say voce pode selecionar
a language foi o que fiz:
$ spd-say -o sapi -l pt configuração
Aleluia, falou certinho, testei uma frase logo, daí tive de colocar
aspas:
$ spd-say -o sapi -l pt "teste de configuração"
Falou legal novamente. Partí pro teste com o orca, abri as preferencias
do orca, escolhi o sintetizador sapi dei aplicar, e falou ceertinho
agora.
Pronto, a única coisa encomoda é que o telnetvox nao corta a fala quando
uma nova frase chega, ele termina a primeira depois lê a seguinte, isso
deixa a navegação no pidgin por exemplo um pouco lenta, mas como diz o
título: Gambiarra, risos.
Gostaria que o pessoal da intervox criasse no telnetvox um modo tipo
verborragico, mas que cortasse a fala assim que uma nova informação
surgisse na tela, assim ficará mais dinamica a leitura no orca.
O fabiano ouviu o orca falando com voz sapi 5 pelo telefone, até
brinquei com ele se não estaria duvidando, ele me disse que não, que só
queria ouvir mesmo.
Eu tenho aqui um wine com sapi 5 instalado antigo, pois depois não
consegui mais instalar o motor de voz sapi 5, até consegui instalar, mas
não aparece na lista de sapi do dosvox, quando escolhia tipo sapi 5 no
sapiutil ele travava.
Créditos ao "Gilmar Fagundes"

Nenhum comentário:

Postar um comentário