[Ubuntu-BR] Um shellscript para a criação de audiolivros
julio menezes
yjmenezes em yahoo.com.br
Sexta Agosto 5 14:43:37 UTC 2011
> 2011/8/4 Luciano de Souza<luchyanus em gmail.com>
>
>> Caros,
>>
>> Desejo converter um arquivo de texto em audiolivro. Para tanto criei um
>> shellscript, mas ele dá erro na linha: for file in "$tmp_shelf/*"
>>
>>
>> convert
>>
>> O que poderia estar errado. Não tenho dúvidas quanto à sintaxe de espeak e
>> de lame e, de qualquer modo, o Bash diz que o erro encontra-se na linha que
>> mencionei.
>>
>> Luciano
>>
Luciano,
Haviam pequenos erros de sintaxe e de interpretacao de como o Bash executa as funcoes.
Tomei a liberdade de dar uma arrumadinha, por alto.
Atencao para: *aspas* *apostrofes* , coloquei umas mensagens redirecionadas para stderr 1>&2.
espero que ajude
[]s
julio menezes
#!/bin/bash
#Audioshelf
speed=260
amplitude=140
voice="pt-br"
split=20
quality=128
# arquivos TXT de entrada a serem convertidos em audio, colocar aqui
entrada=/tmp/entrada/
# diretorio de saida
tmp_shelf="/tmp/audioshelf"
open()
{
mkdir $tmp_shelf
}
create()
{
echo "create" $1 1>&2
saida_wav=`echo $1 | sed s/\.txt/\.wav/`
echo $saida_wav 1>&2
espeak -f $1 -w $tmp_shelf/$saida_wav -v $voice -s $speed -a $amplitude --split=$split
}
# converte de txt e gera saida wav
convert()
{
for file in *txt
do
echo $file 1>&2
create $file
done
}
# converte de wav e gera saida em mp3
wav2mp3()
{
for file in *wav
do
echo $file 1>&2
saida_mp3=`echo $file | sed s/\.wav/\.mp3/`
echo $saida_mp3 1>&2
lame -b $quality $file $saida_mp3
done
}
#----------------------------------------------------------------------------------------------
echo "Aqui comeca a execucao do programa chamando as rotinas" 1>&2
echo "criando o diretorio de saida" 1>&2
open
ls -ltr /tmp/ 1>&2
echo "entra no diretorio contendo os arquivos TXT a serem convertidos em WAV" 1>&2
cd $entrada
convert
echo "entra no diretorio contendo os arquivos WAV a serem convertidos em MP3" 1>&2
cd $tmp_shelf
wav2mp3
exit 0
More information about the ubuntu-br
mailing list