File: mgclsp2mgc

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 (97 lines) | stat: -rwxr-xr-x 1,881 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
#!/bin/sh

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

set -e;

usage()
{
    cat<<EOF

$cmnd - mgc-lsp to mgc

  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) 
       -i i          : input format                          [0]
                       0 (normalized frequency [0...pi])
                       1 (normalized frequency [0...0.5])
                       2 (frequency [kHz])
                       3 (frequency [Hz])
       -s s          : sampling frequency                     [10kHz]
       -l            : output log gain rater than linear gain [FALSE]
       -h            : print this message
  infile(s):
       mgc-lsp (float)
  output:
       mel-grneralized cepstrum (float)                       [stdin]

 Replacement of the SPTK mgclsp2mgc command

EOF
}

a=0.35
g=-1
m=25
lg=" "
in=0
s=10
c=""
# Parse options
while getopts a:c:g:m:li:s:h OPT; do
    case "$OPT" in
	a)
	    a="$OPTARG"
	    ;;
	c)
	    c="$OPTARG"
	    ;;
	g)
	    g="$OPTARG"
	    ;;
	m)
	    m="$OPTARG"
	    ;;
	l)
	    lg="-l"
	    ;;
	i)
	    in="$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
        lsp2lpc -m $m -s $s -i $in $lg $file |\
        mgc2mgc -m $m -M $m -a $a -A $a -c $c -C $c -n -u
else
        lsp2lpc -m $m -s $s -i $in $lg $file |\
        mgc2mgc -m $m -M $m -a $a -A $a -g $g -G $g -n -u
fi