File: mgc2mgclsp

package info (click to toggle)
sptk 3.9-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 8,376 kB
  • sloc: ansic: 38,342; sh: 4,834; makefile: 1,403
file content (103 lines) | stat: -rwxr-xr-x 1,982 bytes parent folder | download | duplicates (3)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/sh

cmnd=$0;
SPTK_PATH=/usr/lib/sptk/bin
PATH="$SPTK_PATH":"$PATH"

set -e;

usage()
{
    cat<<EOF

 $cmnd - mgc to mgc-lsp

  usage:
       $cmnd [ option ] [ infile ] > stdout
  option:
       -m m          : order of mel-generalized cepstrum      [25]
       -a a          : alpha of mel-generalized cepstrum      [0.35]
       -g g          : gamma of mel-generalized cepstrum      [-1]
       -c c          : gamma of mel-generalized cepstrum = -1 / (int) c (input) 
       -o o          : output format                          [0]
                       0 (normalized frequency [0...pi])
                       1 (normalized frequency [0...0.5])
                       2 (frequency [kHz])
                       3 (frequency [Hz])
       -s s          : sampling frequency                     [10kHz]
       -k            : do not output gain                     [FALSE]
       -l            : output log gain rater than linear gain [FALSE]
       -h            : print this message
  infile(s):
       mel-grneralized cepstrum (float)                       [stdin]
  output:
       mgc-lsp (float)

 Replacement of the SPTK mgc2mgclsp command

EOF
}


a=0.35
g=-1
k=" "
m=25
lg=" "
o=0
s=10
c=""
# Parse options
while getopts a:c:g:km:lo:s:h OPT; do
    case "$OPT" in
	a)
	    a="$OPTARG"
	    ;;
	c)
	    c="$OPTARG"
	    ;;
	g)
	    g="$OPTARG"
	    ;;
	k)
	    k="-k"
	    ;;
	m)
	    m="$OPTARG"
	    ;;
	l)
	    lg="-l"
	    ;;
	o)
	    o="$OPTARG"
	    ;;
	s)
	    s="$OPTARG"
	    ;;

        h)
            usage >&2;
            exit 0;
            ;;
    esac
done
shift $(($OPTIND - 1))

file="$1"

if [ ! -f "$file" ]
then
    echo "$cmnd: Cannot open file $file!" >&2;
    usage >&2;
    exit 0;
fi


if test x"$c" != x""
then
        mgc2mgc -m $m -M $m -a $a -A $a -c $c -C $c -N -U $file |\
        lpc2lsp -m $m -s $s -o $o $k $lg 
else
        mgc2mgc -m $m -M $m -a $a -A $a -g $g -G $g -N -U $file |\
        lpc2lsp -m $m -s $s -o $o $k $lg 
fi