> 2011/8/4 Luciano de Souza<luchya...@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


-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a