diff --git a/Dockerfile b/Dockerfile index 5d8a853..941387e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,7 @@ COPY lib/ ./lib/ RUN mkdir -p /usr/local/include/onnxruntime && \ tar -C /usr/local/include/onnxruntime \ --strip-components 1 \ - -xvf "lib/onnxruntime-${TARGETARCH}${TARGETVARIANT}.tgz" + -xvf "lib/onnxruntime-linux-${TARGETARCH}${TARGETVARIANT}.tgz" # Build larynx binary COPY Makefile ./ @@ -50,10 +50,10 @@ RUN mkdir -p larynx && \ cp -dR /usr/share/espeak-ng-data ./larynx/ && \ cp -d /usr/local/include/onnxruntime/lib/libonnxruntime.so.* ./larynx/ && \ cp /build/build/larynx ./larynx/ && \ - tar -czf larynx.tar.gz larynx/ + tar -czf "larynx_${TARGETARCH}${TARGETVARIANT}.tar.gz" larynx/ # ----------------------------------------------------------------------------- FROM scratch -COPY --from=build /dist/larynx.tar.gz ./ +COPY --from=build /dist/larynx_*.tar.gz ./ diff --git a/README.md b/README.md index 1e66587..05f0a57 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Download a release: * [amd64](https://github.com/rhasspy/larynx2/releases/download/v0.0.1/larynx_amd64.tar.gz) (desktop Linux) * [arm64](https://github.com/rhasspy/larynx2/releases/download/v0.0.1/larynx_arm64.tar.gz) (Raspberry Pi 4) -If you want to build from source, see the [Makefile](Makefile) and [C++ source](src/cpp). +If you want to build from source, see the [Makefile](Makefile) and [C++ source](src/cpp). Last tested with [onnxruntime](https://github.com/microsoft/onnxruntime) 1.13.1. ## Usage diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..8acdd82 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.1 diff --git a/lib/onnxruntime-amd64.tgz b/lib/onnxruntime-amd64.tgz deleted file mode 120000 index daba011..0000000 --- a/lib/onnxruntime-amd64.tgz +++ /dev/null @@ -1 +0,0 @@ -onnxruntime-linux-x64-1.12.1.tgz \ No newline at end of file diff --git a/lib/onnxruntime-arm64.tgz b/lib/onnxruntime-arm64.tgz deleted file mode 120000 index 444a851..0000000 --- a/lib/onnxruntime-arm64.tgz +++ /dev/null @@ -1 +0,0 @@ -onnxruntime-linux-aarch64-1.12.1.tgz \ No newline at end of file diff --git a/lib/onnxruntime-armv7.tgz b/lib/onnxruntime-armv7.tgz deleted file mode 120000 index 2ad53b3..0000000 --- a/lib/onnxruntime-armv7.tgz +++ /dev/null @@ -1 +0,0 @@ -/home/hansenm/opt/mimic3-cpp/lib/onnxruntime-linux-armhf-1.12.0.tgz \ No newline at end of file diff --git a/lib/onnxruntime-linux-aarch64-1.12.1.tgz b/lib/onnxruntime-linux-aarch64-1.12.1.tgz deleted file mode 100644 index a580cc4..0000000 Binary files a/lib/onnxruntime-linux-aarch64-1.12.1.tgz and /dev/null differ diff --git a/lib/onnxruntime-linux-aarch64-1.13.1.tgz b/lib/onnxruntime-linux-aarch64-1.13.1.tgz new file mode 100644 index 0000000..410814a Binary files /dev/null and b/lib/onnxruntime-linux-aarch64-1.13.1.tgz differ diff --git a/lib/onnxruntime-linux-amd64.tgz b/lib/onnxruntime-linux-amd64.tgz new file mode 120000 index 0000000..524152b --- /dev/null +++ b/lib/onnxruntime-linux-amd64.tgz @@ -0,0 +1 @@ +onnxruntime-linux-x64-1.13.1.tgz \ No newline at end of file diff --git a/lib/onnxruntime-linux-arm64.tgz b/lib/onnxruntime-linux-arm64.tgz new file mode 120000 index 0000000..8a0a283 --- /dev/null +++ b/lib/onnxruntime-linux-arm64.tgz @@ -0,0 +1 @@ +onnxruntime-linux-aarch64-1.13.1.tgz \ No newline at end of file diff --git a/lib/onnxruntime-linux-armhf-1.12.0.tgz b/lib/onnxruntime-linux-armhf-1.12.0.tgz deleted file mode 100644 index 4d3fd33..0000000 Binary files a/lib/onnxruntime-linux-armhf-1.12.0.tgz and /dev/null differ diff --git a/lib/onnxruntime-linux-x64-1.12.1.tgz b/lib/onnxruntime-linux-x64-1.12.1.tgz deleted file mode 100644 index 9c11cd6..0000000 Binary files a/lib/onnxruntime-linux-x64-1.12.1.tgz and /dev/null differ diff --git a/lib/onnxruntime-linux-x64-1.13.1.tgz b/lib/onnxruntime-linux-x64-1.13.1.tgz new file mode 100644 index 0000000..43f6369 Binary files /dev/null and b/lib/onnxruntime-linux-x64-1.13.1.tgz differ diff --git a/src/cpp/model.hpp b/src/cpp/model.hpp index befdcfc..b82897b 100644 --- a/src/cpp/model.hpp +++ b/src/cpp/model.hpp @@ -12,8 +12,6 @@ const string instanceName{"larynx"}; struct ModelSession { Ort::Session onnx; - vector inputNames; - vector 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(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 diff --git a/src/cpp/synthesize.hpp b/src/cpp/synthesize.hpp index ad8cdf3..ef61aef 100644 --- a/src/cpp/synthesize.hpp +++ b/src/cpp/synthesize.hpp @@ -1,6 +1,7 @@ #ifndef SYNTHESIZE_H_ #define SYNTHESIZE_H_ +#include #include #include #include @@ -64,12 +65,16 @@ void synthesize(SynthesisConfig &synthesisConfig, ModelSession &session, speakerIdShape.size())); } + // From export_onnx.py + array inputNames = {"input", "input_lengths", "scales", + "sid"}; + array 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())) {