mirror of
https://github.com/pstrueb/piper.git
synced 2026-05-30 00:17:02 +00:00
Upgrade to onnxruntime 1.13.1
This commit is contained in:
@@ -12,8 +12,6 @@ const string instanceName{"larynx"};
|
||||
|
||||
struct ModelSession {
|
||||
Ort::Session onnx;
|
||||
vector<char *> inputNames;
|
||||
vector<char *> outputNames;
|
||||
Ort::AllocatorWithDefaultOptions allocator;
|
||||
Ort::SessionOptions options;
|
||||
Ort::Env env;
|
||||
@@ -48,19 +46,6 @@ void loadModel(string modelPath, ModelSession &session) {
|
||||
session.onnx = Ort::Session(session.env, modelPath.c_str(), session.options);
|
||||
auto endTime = chrono::steady_clock::now();
|
||||
auto loadDuration = chrono::duration<double>(endTime - startTime);
|
||||
|
||||
size_t numInputNodes = session.onnx.GetInputCount();
|
||||
size_t numOutputNodes = session.onnx.GetOutputCount();
|
||||
|
||||
for (size_t i = 0; i < numInputNodes; i++) {
|
||||
session.inputNames.push_back(
|
||||
session.onnx.GetInputName(i, session.allocator));
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < numOutputNodes; i++) {
|
||||
session.outputNames.push_back(
|
||||
session.onnx.GetOutputName(i, session.allocator));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace larynx
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef SYNTHESIZE_H_
|
||||
#define SYNTHESIZE_H_
|
||||
|
||||
#include <array>
|
||||
#include <chrono>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
@@ -64,12 +65,16 @@ void synthesize(SynthesisConfig &synthesisConfig, ModelSession &session,
|
||||
speakerIdShape.size()));
|
||||
}
|
||||
|
||||
// From export_onnx.py
|
||||
array<const char *, 4> inputNames = {"input", "input_lengths", "scales",
|
||||
"sid"};
|
||||
array<const char *, 1> outputNames = {"output"};
|
||||
|
||||
// Infer
|
||||
auto startTime = chrono::steady_clock::now();
|
||||
auto outputTensors =
|
||||
session.onnx.Run(Ort::RunOptions{nullptr}, session.inputNames.data(),
|
||||
inputTensors.data(), inputTensors.size(),
|
||||
session.outputNames.data(), session.outputNames.size());
|
||||
auto outputTensors = session.onnx.Run(
|
||||
Ort::RunOptions{nullptr}, inputNames.data(), inputTensors.data(),
|
||||
inputTensors.size(), outputNames.data(), outputNames.size());
|
||||
auto endTime = chrono::steady_clock::now();
|
||||
|
||||
if ((outputTensors.size() != 1) || (!outputTensors.front().IsTensor())) {
|
||||
|
||||
Reference in New Issue
Block a user