|
add comment
( 13 views )
| 0 trackbacks
| permalink
| 



( 3 / 25 )




( 3 / 25 )
|
|
Tuesday, August 23, 2011, 15:52
Posted by Administrator
Caros,Posted by Administrator
Fiz um post no Google+ e Twitter, sobre como enviar um texto para ser "narrado" pelo google translator.
$ mensagem="teste" && lynx --source "http://translate.google.com.br:80/translate_tts?ie=UTF-8&q=$mensagem&tl=pt&prev=input" > arquivo.wav
Só que resolví fazer variações do mesmo tema.
Pré requisito:
$ sudo apt-get install mpg321 lynx
Opção 1: Via funçõesZZ http://funcoeszz.net
$ svn checkout http://funcoeszz.googlecode.com/svn/trunk/ funcoeszz-svn
$ cd funcoeszz-svn
$ ./funcoeszz zzzz --bashrc
$ source ~/.bashrc
$ zznarrativa Eu adoro antepasto de berinjela e tenho uma receita bem saborosa
Opção 2: Fazendo o seu próprio script
$ cat > ./muleh_do_google << .EOF.
#!/bin/bash
texto=$(echo "$*" | sed 's| |+|g;s|&|%26|g;s|@|%40|g')
url='http://translate.google.com.br'
audio_file="/tmp/$$.WAV"
play_cmd='mpg123 -q'
# Narrativa
audio="translate_tts?ie=UTF-8&q=$texto&tl=pt&prev=input"
lynx --source "\$url/\$audio" > $audio_file && $play_cmd $audio_file && rm -rf $audio_file
.EOF.
$ chmod +x muleh_do_google
$./muleh_do_google Eu adoro antepasto de berinjela e tenho uma receita bem saborosa
Acho que já dá uma boa diversão....
Se voces olharem bem, eu estou criando um arquivo .wav que é apagado no final da execução do script, mas nada impede de voce salvar vários arquivos e depois organiza-los usando o Audacity.
É isso ...
sds
Kl0nEz
ps.: Eu não gosto de antepasto de berinjela... ;)
|
|
Tuesday, August 23, 2011, 14:30
Posted by Administrator
Caros,Posted by Administrator
Fiz este post originalmente no site http://www.ubuntudicas.com.br , mas como o VLC é mais universal (não está restrito somente ao ubuntu) resolvi fazer um cross-posting aqui no meu blog.
Imagine muitas pessoas acessando a UD webradio numa rede local. Isso gasta banda num é? Então que tal criarmos um meio de todos ouvirem, gastando menos banda de download?
Opção 1: Utilizando um grupo multicast, a vantagem deste método é que existirão somente 2 fluxos de áudio passando pela rede, sendo o primeiro para você receber o áudio do site da Rádio Ubuntu Dicas e o segundo fluxo é você enviando para a sua rede local em um grupo multicast (239.239.239.239) e também *TODOS* estarão sincronizados (tocando exatamente a mesma parte da mesma música). A desvantagem é que nem todos os players conseguem reproduzir fluxos UDP ou RTP.
A partir de um computador da sua rede, execute o seguinte comando:
$ cvlc http://74.222.1.197:13588 --sout '#std{access=udp,dst=239.239.239.239:1234}'
Agora, todas as estações do mesmo segmento de rede podem ouvir a Rádio Ubuntu Dicas, das seguintes formas:
VLC linha de comando
$ cvlc udp://@239.239.239.239:1234
VLC
Mídia -> Abrir Fluxo de Rede -> udp://@239.239.239.239:1234
Mplayer
$ mplayer udp://239.239.239.239:1234
Opção 2: Criando um novo fluxo para cada conexão, a vantagem é que praticamente todos os players existentes conseguirão acessar o fluxo e inclusive podem estar em outro segmento de rede. A desvantagem é que haverá um fluxo de áudio para cada cliente conectado e haverá diferenças de alguns segundos entre as músicas tocadas em computadores diferentes.
Apartir de um computador da sua rede, execute o seguinte comando:
$ cvlc http://74.222.1.197:13588 --sout '#http{mux=raw,dst=:8080 /}'
Agora, todas as estações do mesmo segmento de rede podem ouvir a Rádio Ubuntu Dicas, das seguintes formas:
VLC linha de comando
$ cvlc http://ip.do.servidor.de.mídia:8080/
VLC
Mídia -> Abrir Fluxo de Rede -> http://ip.do.servidor.de.mídia:8080/
Mplayer
$ mplayer http://ip.do.servidor.de.mídia:8080/
Reprodutor de Filmes
Filme -> Abrir Localização -> http://ip.do.servidor.de.mídia:8080/
Obviamente, este conceito pode ser extendido para qualquer fluxo de áudio ou vídeo que esteja presente na internet, use a sua criatividade.
É isso,
sds
Kl0nEz
|
|
Tuesday, July 26, 2011, 15:58
Posted by Administrator
Caros,Posted by Administrator
Agora sim, acho que saem as diversões com o AVR. Vou começar pelos agradecimentos aos que me ajudaram neste start-up.
Nailson, tks pelo atmega8, por acertar o bixinho na minha protoboard e pelo "help for noobie"... ;)
Fred, pelo auxílio ao trilhar os obscuros caminhos dos "bit is myth" ...
Estou usando um atmega8 e uma interface de programação chamada USBASP.
http://www.fischl.de/usbasp/
Tools
Hardware
E-bay : Algo em torno de USD 6.89, mas precisa ver o frete
http://shop.ebay.com/i.html?_nkw=usbasp ... Categories
Goodluckbuy : 12,70 freeshipping
http://www.goodluckbuy.com/avr-usbasp-p ... ga168.html
Software
Se você usa MAC OS/X + macports
sudo port install gcc-avr avr-libc avrdude
Se você usa LINUX (Debian like) eu testei no Ubuntu
$ sudo apt-get install avrdude gcc-avr avr-libc
Se você usa Windows
procure no windows update, vai que tem né ... ;)
Testando
$ sudo avrdude -p m8 -c usbasp
sudo: cannot get working directory
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9307
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Possíveis falhas:
$ avrdude -p m8 -c usbasp
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc
Causa: Falta permissão para acessar o dispositivo USB
Solução:
$ sudo avrdude -p m8 -c usbasp
$ sudo avrdude -p m8 -c usbasp
sudo: cannot get working directory
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Causa: Falha nas conexões entre o USBASP e o atmega8
Solução: Cheque as conexões.
Antes de fazer um makefile decente, eu fiz um script pra compilar e gravar o meu código.
#!/bin/bash
avr-gcc -O3 -mmcu=atmega8 -Wall -o $1.elf $1.c
avr-objcopy -j .text -O ihex $1.elf $1.hex
avrdude -p m8 -c usbasp -e -U flash:w:$1.hex
Blinkenleds, meu código de luzes piscantes
/* Example code
tks for Fred
*/
#define F_CPU 8000000UL /* 8 MHz CPU clock */
#include <util/delay.h>
#include <avr/io.h>
#define OUTPUT_BIT 0x02 /* 00000010 = PB1 */
int main(void)
{
/* Initialize SFIOR with PUD putting inputs in HIGH impendance state
saving energy and less heat
*/
SFIOR |= PUD;
/* Initialize PortB for output on OUTPUT_BIT using binary OR
0 OR X = X
1 OR X = 1
Preserving state of others BITS
DDRB = xxxxxxxx OR 00000010 = xxxxxx1x
*/
DDRB |= OUTPUT_BIT;
/* Initialize only OUTPUT_BIT with 0 (low) state with AND ~OUTPUT_BIT
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
PORTB = xxxxxxxx & 11111101 = xxxxxx0x
Preserving state of others BITS
*/
PORTB &= ~OUTPUT_BIT;
while (1)
{
/* XOR Port B pin to change only OUTPUT_BIT
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
PORTB = xxxxxx0x ^ 00000010 = xxxxxx1x
PORTB = xxxxxx1x ^ 00000010 = xxxxxx0x
Preserving state of others BITS
*/
_delay_ms(100);
PORTB ^= OUTPUT_BIT;
}
return (0);
}
É isso aí....
Já já, novidades...
sds
Kl0nez
|
|
Friday, July 15, 2011, 17:51
Posted by Administrator
Caros,Posted by Administrator
Muito bacana a iniciativa do Tabajara, em compartilhar um pouco de conhecimento em um vídeocast. Este é o videocast#0 ... que venham outros.
sds
Kl0nEz
|

Calendar





