Path: blob/master/examples/cpptflite/demo/main.cpp
1559 views
#include <iostream>1#include <iterator>2#include <vector>3#include "VoxCommon.h"4#include "TTSFrontend.h"5#include "TTSBackend.h"67typedef struct8{9const char* mapperJson;10unsigned int sampleRate;11} Processor;1213int main(int argc, char* argv[])14{15if (argc != 3)16{17fprintf(stderr, "demo text wavfile\n");18return 1;19}2021const char* cmd = "python3 ../demo/text2ids.py";2223Processor proc;24#if LJSPEECH25proc.mapperJson = "../../../tensorflow_tts/processor/pretrained/ljspeech_mapper.json";26proc.sampleRate = 22050;27#elif BAKER28proc.mapperJson = "../../../tensorflow_tts/processor/pretrained/baker_mapper.json";29proc.sampleRate = 24000;30#endif3132const char* melgenfile = "../models/fastspeech2_quan.tflite";33const char* vocoderfile = "../models/mb_melgan.tflite";3435// Init36TTSFrontend ttsfrontend(proc.mapperJson, cmd);37TTSBackend ttsbackend(melgenfile, vocoderfile);3839// Process40ttsfrontend.text2ids(argv[1]);41std::vector<int32_t> phonesIds = ttsfrontend.getPhoneIds();4243ttsbackend.inference(phonesIds);44MelGenData mel = ttsbackend.getMel();45std::vector<float> audio = ttsbackend.getAudio();4647std::cout << "********* Phones' ID *********" << std::endl;4849for (auto iter: phonesIds)50{51std::cout << iter << " ";52}53std::cout << std::endl;5455std::cout << "********* MEL SHAPE **********" << std::endl;56for (auto index : mel.melShape)57{58std::cout << index << " ";59}60std::cout << std::endl;6162std::cout << "********* AUDIO LEN **********" << std::endl;63std::cout << audio.size() << std::endl;6465VoxUtil::ExportWAV(argv[2], audio, proc.sampleRate);66std::cout << "Wavfile: " << argv[2] << " creats." << std::endl;6768return 0;69}7071