Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
TensorSpeech
GitHub Repository: TensorSpeech/TensorFlowTTS
Path: blob/master/examples/cpptflite/demo/main.cpp
1559 views
1
#include <iostream>
2
#include <iterator>
3
#include <vector>
4
#include "VoxCommon.h"
5
#include "TTSFrontend.h"
6
#include "TTSBackend.h"
7
8
typedef struct
9
{
10
const char* mapperJson;
11
unsigned int sampleRate;
12
} Processor;
13
14
int main(int argc, char* argv[])
15
{
16
if (argc != 3)
17
{
18
fprintf(stderr, "demo text wavfile\n");
19
return 1;
20
}
21
22
const char* cmd = "python3 ../demo/text2ids.py";
23
24
Processor proc;
25
#if LJSPEECH
26
proc.mapperJson = "../../../tensorflow_tts/processor/pretrained/ljspeech_mapper.json";
27
proc.sampleRate = 22050;
28
#elif BAKER
29
proc.mapperJson = "../../../tensorflow_tts/processor/pretrained/baker_mapper.json";
30
proc.sampleRate = 24000;
31
#endif
32
33
const char* melgenfile = "../models/fastspeech2_quan.tflite";
34
const char* vocoderfile = "../models/mb_melgan.tflite";
35
36
// Init
37
TTSFrontend ttsfrontend(proc.mapperJson, cmd);
38
TTSBackend ttsbackend(melgenfile, vocoderfile);
39
40
// Process
41
ttsfrontend.text2ids(argv[1]);
42
std::vector<int32_t> phonesIds = ttsfrontend.getPhoneIds();
43
44
ttsbackend.inference(phonesIds);
45
MelGenData mel = ttsbackend.getMel();
46
std::vector<float> audio = ttsbackend.getAudio();
47
48
std::cout << "********* Phones' ID *********" << std::endl;
49
50
for (auto iter: phonesIds)
51
{
52
std::cout << iter << " ";
53
}
54
std::cout << std::endl;
55
56
std::cout << "********* MEL SHAPE **********" << std::endl;
57
for (auto index : mel.melShape)
58
{
59
std::cout << index << " ";
60
}
61
std::cout << std::endl;
62
63
std::cout << "********* AUDIO LEN **********" << std::endl;
64
std::cout << audio.size() << std::endl;
65
66
VoxUtil::ExportWAV(argv[2], audio, proc.sampleRate);
67
std::cout << "Wavfile: " << argv[2] << " creats." << std::endl;
68
69
return 0;
70
}
71