summaryrefslogtreecommitdiff
path: root/kaldi_io/tools
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/tools')
-rw-r--r--kaldi_io/tools/kaldi_to_nerv.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/kaldi_io/tools/kaldi_to_nerv.cpp b/kaldi_io/tools/kaldi_to_nerv.cpp
index f16de44..aadac53 100644
--- a/kaldi_io/tools/kaldi_to_nerv.cpp
+++ b/kaldi_io/tools/kaldi_to_nerv.cpp
@@ -4,6 +4,7 @@
#include <cstring>
#include <cassert>
#include <cstdlib>
+#include <map>
char token[1024];
char output[1024];
@@ -23,6 +24,18 @@ void free_matrix(double **mat, int nrow, int ncol) {
delete [] mat;
}
+int cnt0;
+std::map<std::string, int> param_cnt;
+int get_param_cnt(const std::string &key) {
+ std::map<std::string, int>::iterator it = param_cnt.find(key);
+ if (it == param_cnt.end())
+ {
+ param_cnt[key] = cnt0 + 1;
+ return cnt0;
+ }
+ return it->second++;
+}
+
int main(int argc, char **argv) {
FILE *fin;
std::ofstream fout;
@@ -30,13 +43,14 @@ int main(int argc, char **argv) {
fin = fopen(argv[1], "r");
fout.open(argv[2]);
assert(fin != NULL);
- int cnt = argc > 3 ? atoi(argv[3]) : 0;
+ cnt0 = argc > 3 ? atoi(argv[3]) : 0;
bool shift;
while (fscanf(fin, "%s", token) != EOF)
{
int nrow, ncol;
int i, j;
double **mat;
+ int cnt = get_param_cnt(token);
if (strcmp(token, "<AffineTransform>") == 0)
{
double lrate, blrate, mnorm;
@@ -91,7 +105,6 @@ int main(int argc, char **argv) {
sprintf(output, "[%13lu]\n", length);
fout << output;
fout.seekp(0, std::ios_base::end);
- cnt++;
}
free_matrix(mat, nrow, ncol);
}