-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdo_projection_str
More file actions
151 lines (127 loc) · 6.07 KB
/
Copy pathdo_projection_str
File metadata and controls
151 lines (127 loc) · 6.07 KB
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/bash
#####################################################-*-mode:shell-script-*-
## ##
## Carnegie Mellon University ##
## Copyright (c) 2005-2006 ##
## All Rights Reserved. ##
## ##
## Permission is hereby granted, free of charge, to use and distribute ##
## this software and its documentation without restriction, including ##
## without limitation the rights to use, copy, modify, merge, publish, ##
## distribute, sublicense, and/or sell copies of this work, and to ##
## permit persons to whom this work is furnished to do so, subject to ##
## the following conditions: ##
## 1. The code must retain the above copyright notice, this list of ##
## conditions and the following disclaimer. ##
## 2. Any modifications must be clearly marked as such. ##
## 3. Original authors' names are not deleted. ##
## 4. The authors' names are not used to endorse or promote products ##
## derived from this software without specific prior written ##
## permission. ##
## ##
## CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ##
## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
## SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE ##
## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
## THIS SOFTWARE. ##
## ##
###########################################################################
## ##
## Author: Sai Krishna (srallaba@andrew.cmu.edu) Aug 2017 ##
## ##
###########################################################################
## ##
## Tries to achieve frame replacement ##
## ##
###########################################################################
LANG=C; export LANG
if [ ! "$ESTDIR" ]
then
echo "environment variable ESTDIR is unset"
echo "set it to your local speech tools directory e.g."
echo ' bash$ export ESTDIR=/home/awb/projects/speech_tools/'
echo or
echo ' csh% setenv ESTDIR /home/awb/projects/speech_tools/'
exit 1
fi
if [ ! "$FESTVOXDIR" ]
then
echo "environment variable FESTVOXDIR is unset"
echo "set it to your local festvox directory e.g."
echo ' bash$ export FESTVOXDIR=/home/awb/projects/festvox/'
echo or
echo ' csh% setenv FESTVOXDIR /home/awb/projects/festvox/'
exit 1
fi
if [ "$SIODHEAPSIZE" = "" ]
then
SIODHEAPSIZE=20000000
export SIODHEAPSIZE
fi
HEAPSIZE=$SIODHEAPSIZE
if [ "$CLUSTERGENDIR" = "" ]
then
export CLUSTERGENDIR=$FESTVOXDIR/src/clustergen
fi
if [ "$1" = "kdtree" ]
then
#### We can project using any other methods as well. I am using KDTree datastructure as it seemed to be performing a decent job at a good pace. But please note that I am wrong.
##### Make a copy
if [ ! -d f0_otherspeaker ]
then
mkdir mcep_deltas_otherspeaker
mkdir mcep_deltas_ascii
mkdir f0_otherspeaker f0_ascii
mkdir v_otherspeaker
mkdir str_otherspeaker str_ascii str_replaced_ascii
mkdir mcep_deltas_replaced_ascii
fi
cp -r mcep_deltas mcep_deltas_backup
cp -r str str_backup
cp -r f0 f0_backup
PROMPTFILE="etc/txt.done.data"
cat $PROMPTFILE | awk '{print $2}' | while read i
do
fname=$i
echo $fname
ch_track -s 0.005 mcep_deltas/$fname.mcep -otype ascii -o mcep_deltas_ascii/$fname.mcep
ch_track -s 0.005 str/$fname.str -otype ascii -o str_ascii/$fname.str
ch_track -s 0.005 f0/$fname.f0 | awk '{print $1}' > f0_ascii/$fname.f0
#cp f0/$fname.f0 f0_otherspeaker/$fname
#cp v/$fname.v v_otherspeaker/$fname
#cp str/$fname.str str_otherspeaker/$fname
done
#### Prepare for projection
cat mcep_deltas_ascii/tam* > tamil_frames_mcep
cat str_ascii/tam* > tamil_frames_str
#cat v/* > telugu_frames_v
#cat str_otherspeaker/* > english_frames_str
#cat f0/* > telugu_frames_f0
#paste -d ' ' english_frames_v english_frames_mcep > english_frames
cp tamil_frames_mcep tamil_frames
python ./bin/replace_frames_str.py
# Convert to binary
for file in mcep_deltas_replaced_ascii/*.mcep ;
do
fname=$(basename "$file")
echo $fname "Mapping MCEP"
ch_track -s 0.005 mcep_deltas/$fname -otype est_binary -o mcep_deltas/$fname
done
for file in str_replaced_ascii/*.str ;
do
fname=$(basename "$file")
echo $fname "Mapping STR"
## ch_track -s 0.005 $file -otype est_binary -o str/$fname
cp $file str/$fname
done
# Map the f0 to mimic the original speaker characteristics
cat f0_ascii/tam* > tamil_f0
cat f0_ascii/arc* > english_f0
python ./bin/replace_f0.py
for file in f0_replaced_ascii/*; do fname=$(basename "$file" .f0); echo $fname; paste -d ' ' $file v/$fname.v > f0_v_replaced_ascii/$fname.f0; done
for file in f0_v_replaced_ascii/*; do fname=$(basename "$file"); echo $fname; ch_track -s 0.005 $file -otype est_binary -o f0/$fname; done
fi