Skip to content

Instantly share code, notes, and snippets.

@kokoye2007
Created March 28, 2016 19:06
Show Gist options
  • Save kokoye2007/cebb9ccaacc0a24af03c to your computer and use it in GitHub Desktop.
Save kokoye2007/cebb9ccaacc0a24af03c to your computer and use it in GitHub Desktop.
#!/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