-
Notifications
You must be signed in to change notification settings - Fork 55
/
speech2text.sh
executable file
·78 lines (57 loc) · 2.23 KB
/
speech2text.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
BASEDIR=$(dirname $0)
echo "$0 $@" # Print the command line for logging
txt=""
trs=""
ctm=""
sbv=""
srt=""
json=""
with_compounds_ctm=""
clean=true
nthreads=1
do_language_id=
. $BASEDIR/utils/parse_options.sh || exit 1;
if [ $# -ne 1 ]; then
echo "Usage: speech2text [options] <audiofile>"
echo "Options:"
echo " --nthreads <n> # Use <n> threads in parallel for decoding"
echo " --do-language-id <yes|no> # Turn language detection on or off"
echo " --txt <txt-file> # Put the result in a simple text file"
echo " --json <json-file> # Put the result in JSON file"
echo " --trs <trs-file> # Put the result in trs file (XML file for Transcriber)"
echo " --ctm <ctm-file> # Put the result in CTM file (one line pwer word with timing information)"
echo " --srt <srt-file> # Put the result in SRT file (subtitles for e.g. VLC)"
echo " --with-compounds-ctm <ctm-file> # Put the result in CTM file (with compound break symbols)"
echo " --clean (true|false) # Delete intermediate files generated during decoding (true by default)"
exit 1;
fi
cp -u $1 $BASEDIR/src-audio
filename=$(basename "$1")
basename="${filename%.*}"
nthreads_arg="nthreads=${nthreads}"
do_language_lid_arg=""
if [ ! -z "${do_language_id}" ]; then
do_language_lid_arg="DO_LANGUAGE_DETECTION=${do_language_id}"
fi
(cd $BASEDIR; make $nthreads_arg $do_language_lid_arg build/output/$basename.{txt,json,trs,ctm,srt,with-compounds.ctm} || exit 1; if $clean ; then make .$basename.clean; rm src-audio/$filename; fi)
echo "Finished transcribing, result is in files $BASEDIR/build/output/${basename%.*}.{txt,json,trs,ctm,srt,with-compounds.ctm}"
if [ ! -z $txt ]; then
cp $BASEDIR/build/output/${basename}.txt $txt
echo $txt
fi
if [ ! -z $trs ]; then
cp $BASEDIR/build/output/${basename}.trs $trs
fi
if [ ! -z $json ]; then
cp $BASEDIR/build/output/${basename}.json $json
fi
if [ ! -z $ctm ]; then
cp $BASEDIR/build/output/${basename}.ctm $ctm
fi
if [ ! -z $srt ]; then
cp $BASEDIR/build/output/${basename}.srt $srt
fi
if [ ! -z $with_compounds_ctm ]; then
cp $BASEDIR/build/output/${basename}.with-compounds.ctm $with_compounds_ctm
fi