Comparative-Analysis-of-Speech-Synthesis-Models
/
TensorFlowTTS
/examples
/cpptflite
/src
/VocoderTF.cpp
| std::vector<float> VocoderTF::infer(const MelGenData mel) | |
| { | |
| std::vector<float> audio; | |
| interpreter->ResizeInputTensor(inputIndex, mel.melShape); | |
| TFLITE_MINIMAL_CHECK(interpreter->AllocateTensors() == kTfLiteOk); | |
| float* melDataPtr = interpreter->typed_input_tensor<float>(inputIndex); | |
| memcpy(melDataPtr, mel.melData, mel.bytes); | |
| TFLITE_MINIMAL_CHECK(interpreter->Invoke() == kTfLiteOk); | |
| TfLiteTensor* audioTensor = interpreter->tensor(outputIndex); | |
| float* outputPtr = interpreter->typed_output_tensor<float>(0); | |
| int32_t audio_len = audioTensor->bytes / float_size; | |
| for (int i=0; i<audio_len; ++i) | |
| { | |
| audio.push_back(outputPtr[i]); | |
| } | |
| return audio; | |
| } | |