php + text to speech

12 03 2007

Estava lendo RSS hoje e por acaso vi este post, onde o autor escreveu um pequeno programa em C# para ler RSSs. Achei interessante, afinal, acompanho diversos sites e blogs via rss.

A aplicacação que ele fez funciona somente em windows, visto que faz uso da “Microsoft Speech API”.

Anteriormente havia criado um script bem simples, que utilizava o festival para sintetização de voz, utilizando system(). Funcionava sem muitos problemas…

Ai pensei hoje em fazer um leitor de RSS no mesmo molde do citado acima, mas utilizando um outro sintetizador de voz, o espeak. A resultado final que se ouve é comparável ao do festival, e é relativamente mais simples instalar o espeak. E além disso, ele possui uma biblioteca compartilhada de uso bastante simples (não sei se a do festival é simples também), o que facilita o desenvolvimento de aplicações em C.

A idéia era criar uma extensão para o PHP que fizesse uso dessa biblioteca, para utilizar as funções nativamente em um script, e não usando system().

Depois de algumas horas escrevendo código, eis que tenho uma versão alpha e funcional (e com bugs, claro) da extensão. Ficou bem mais interessante utilizar tts agora. E o leitor de rss ficou bem simples, é basicamente isso:


<?php
dl
(‘espeak.so’);
$feeds simplexml_load_file (http://rss.terra.com.br/0,,EI4795,00.xml’)->channel->item;
espeak_initialize(ESPEAK_AUDIO_OUTPUT_PLAYBACK0);
espeak_setVoiceByName(“pt”);
espeak_setParameter(ESPEAK_VOLUME900);
foreach ( 
$feeds as $f ) {
    
espeak_synth($f->titlestrlen($f->title), 0ESPEAK_POS_CHARACTER000);
    
espeak_synchronize();
    
sleep(1);
}
espeak_terminate();
?>

Bem simples, assim como mostrado em um outro post, não é necessário muito código para obter uma lista de notícias de um feed.

Não é a primeira extensão que escrevo, mas é a primeira que estarei publicando… Enviei hoje a requisição de aprovação no sourceforge e acredito que até terça-feira já posso estar enviando o primeiro commit no repositório.

Pensei em enviar para o PECL, mas devido ao fato de o espeak utilizar licença GPL, o projeto não poderia ser enviado para lá, “incompatibilidade” de licenças…

Breve envio mais informações sobre o projeto.

Anúncios

Ações

Information

3 responses

15 03 2007
Rael Parker

E Silva, vc poderia escrever um artigo ensinando como fazer extensões para o PHP! :)

15 03 2007
E Silva

Até comecei a escrever já, mas não consigo ser muito didático e acho que consigo deixar mais complicado do que parece…

Escrever extensões é relativamente simples, tem um ótimo artigo introdutório aqui:

http://devzone.zend.com/node/view/id/1021

Mas de qualquer forma verei se consigo escrever de forma mais clara o que já iniciei : )

22 09 2007
Mauriio

Olá !

Fiquei contente de saber que há um código simples para que se possa colocar no site uma página que busque automaticamente novas notícias.

Porém, não domino totalmente o php, e tentei colocar só esse código no arquivo mudando o endereço do xml, mas dá erro na linha 3.

Acredito que eu não esteja sabendo aproveiá-lo.

Gostaria que me informasse, como devo montar a página, para que as notícias comecem aparecer automaticamente.

obrigado

Mauricio Baruffi

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: