Created
March 28, 2016 19:06
-
-
Save kokoye2007/cebb9ccaacc0a24af03c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Voice-over translator for SRT subtitles | |
# Copyright (C) 2012 Zoltan Kovacs <[email protected]> | |
# This is a GPL3+ free software. | |
# Version 0.1 (2012-02-28) | |
WORKDIR=/tmp/voiceover-work | |
if [ $# != 5 -a $# != 7 ]; then | |
echo "Voice-over translator for SRT subtitles" | |
echo "Copyright (C) 2012 Zoltan Kovacs <[email protected]>" | |
echo | |
echo "Usage: $0 subtitles speed language encoding output [video volume]" | |
echo | |
echo " subtitles SRT subtitles file" | |
echo " speed number of words per minute (try between 150 and 250)" | |
echo " language language for the subtitles (see 'espeak --voices')" | |
echo " encoding encoding of the subtitles file (see 'recode --list')" | |
echo " output name for the voice-over audio or the mixed video (if 7 options are given)" | |
echo " video the video file to mix the voice-over translation (optional)" | |
echo " volume the volume for the original audio (optional, try between 0.5 and 1)" | |
echo | |
echo "Make sure the administrator allocated enough open files for you (check 'ulimit -n')" | |
echo "and you have enough disk space for conversion." | |
exit 1 | |
fi | |
THISDIR=`pwd` | |
FILE="$1" | |
export SPEED=$2 | |
export VOICE=$3 | |
ENC="$4" | |
OUTPUT="$5" | |
VIDEO="$6" | |
VOLUME="$7" | |
cleanup () { | |
cd "$THISDIR" | |
rm -fR $WORKDIR | |
} | |
# Step 0: Checking prerequisities | |
for i in awk base64 bunzip2 dos2unix mencoder mplayer recode espeak sox soxi; do | |
which $i >/dev/null || (echo "$i is unavailable, please install it first"; exit 2) | |
done | |
test -d $WORKDIR && rm -fR $WORKDIR | |
mkdir -p $WORKDIR | |
# Step 1: Creating silence | |
# FIXME: This .aiff file was generated by running when no microphone audio was present: | |
# "sleep 2; rec -r22050 -c 1 silence1.aiff trim 0 00:01" | |
# There must be a better and safer way, maybe the "-n" option should help somehow. | |
echo " | |
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 | |
" | base64 -d | bunzip2 > $WORKDIR/silence1.aiff | |
# Step 2: Creating WAV files | |
cat "$FILE" | recode $ENC..utf8 | dos2unix | (cd $WORKDIR; awk ' | |
function toseconds(string) { | |
h=substr(string,1,2) | |
m=substr(string,4,2) | |
s=substr(string,7,2) | |
ms=substr(string,10,3) | |
return ((h*60+m)*60)+s+ms/1000 | |
} | |
{ | |
if (thisstart=="") thisstart=0 | |
if (tooslownr=="") tooslownr=0 | |
if (tooslowtime=="") tooslowtime=0 | |
if ($0=="") { | |
state="-" | |
cmdline="cat subtitle-" seq " | espeak -s " ENVIRON["SPEED"] " -v " ENVIRON["VOICE"] " --stdin -w sentence-" seq ".wav" | |
system(cmdline) | |
lengthfile="sentence-" seq "-length" | |
cmdline="soxi -D sentence-" seq ".wav > " lengthfile | |
system(cmdline) | |
getline thislength <lengthfile | |
} | |
if (($0==$1) && length($0)>0 && ((state=="-") || (state==""))) state="n" | |
if (state=="n") { | |
seq=$1 | |
state="w" | |
system("echo " seq " > maxseq") | |
} | |
if (state=="t") print $0 >"subtitle-" seq | |
if ($2=="-->") { | |
prevstart=thisstart | |
thisstart=toseconds($1) | |
silencebefore=thisstart-thislength-prevstart | |
if (silencebefore < 0) { | |
tooslownr++ | |
tooslowtime-=silencebefore | |
print "Speech too slow before #" seq " (extra " (-silencebefore) " secs, " tooslowtime " lagging due to " tooslownr " slow speeches)" | |
silencebefore=0 | |
} | |
else { | |
if (silencebefore <= tooslowtime) { | |
tooslowtime-=silencebefore | |
print "Lagging after #" seq " by " silencebefore " secs, still " tooslowtime " secs lagging" | |
} | |
else { | |
if (tooslowtime > 0) { | |
print "Lagging after #" seq " by " silencebefore " secs, but in sync then" | |
silencebefore-=tooslowtime | |
tooslowtime=0 | |
} | |
if (silencebefore > 0) | |
{ | |
speed=1/silencebefore | |
cmdline="sox silence1.aiff silencebefore-" seq ".aiff speed " speed | |
system(cmdline) | |
lengthfile="silencebefore-" seq "-length" | |
cmdline="soxi -D silencebefore-" seq ".aiff > " lengthfile | |
system(cmdline) | |
getline reallength <lengthfile | |
difference=reallength-silencebefore | |
tooslowtime+=difference | |
thislength+=difference | |
} | |
} | |
} | |
state="t" | |
} | |
}') | |
cd $WORKDIR | |
# Step 3: Concatenating WAV files | |
NR=0 | |
MAXNR=`cat maxseq` | |
CONCATCMDFILE=concat-cmd | |
echo -n "sox " > $CONCATCMDFILE | |
while [ $NR -lt $MAXNR ]; do | |
NR=`expr $NR + 1` | |
SILENCE=silencebefore-$NR.aiff | |
test -r $SILENCE && echo -n "$SILENCE " >> $CONCATCMDFILE | |
SENTENCE=sentence-$NR.wav | |
test -r $SENTENCE && echo -n "$SENTENCE " >> $CONCATCMDFILE | |
done | |
echo -n "final.wav" >> $CONCATCMDFILE | |
sh concat-cmd | |
# Step 4: Creating output | |
if [ $# = 5 ]; then | |
cd "$THISDIR" | |
mv $WORKDIR/final.wav "$OUTPUT" | |
cleanup | |
exit 0 | |
fi | |
OUTPUTBASENAME=`basename $OUTPUT` | |
mplayer "$VIDEO" -vc null -vo null -ao pcm:fast -srate 22050 -channels 1 | |
sox -m final.wav -v "$VOLUME" audiodump.wav mixedaudio.wav | |
mencoder -oac copy -ovc copy -o "$OUTPUTBASENAME" -audiofile mixedaudio.wav "$VIDEO" | |
mv "$OUTPUTBASENAME" "$THISDIR"/"$OUTPUT" | |
cleanup | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment