From 581515e094a00c73941fa7f42cc2d1df39dedf9e Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Wed, 8 Jan 2020 15:03:54 +0100 Subject: [PATCH] Add 8kHz training test coverage Fixes #2638 --- bin/run-tc-ldc93s1_new.sh | 4 +- bin/run-tc-ldc93s1_tflite.sh | 4 + data/smoke_test/LDC93S1_pcms16le_1_16000.wav | Bin 0 -> 93638 bytes taskcluster/.build.yml | 1 + taskcluster/darwin-opt-base.tyml | 6 +- taskcluster/linux-opt-base.tyml | 6 +- taskcluster/tc-android-apk-tests.sh | 3 + taskcluster/tc-android-ds-tests.sh | 3 + taskcluster/tc-cpp-ds-tests-prod.sh | 5 +- taskcluster/tc-cpp-ds-tests.sh | 3 + taskcluster/tc-cpp_tflite-ds-tests.sh | 3 + taskcluster/tc-cpp_tflite-tests-prod.sh | 5 +- taskcluster/tc-cpp_tflite_basic-ds-tests.sh | 3 + taskcluster/tc-cppwin-ds-tests.sh | 3 + taskcluster/tc-electron-tests.sh | 3 + taskcluster/tc-netframework-ds-tests.sh | 3 + taskcluster/tc-node-tests-prod.sh | 5 +- taskcluster/tc-node-tests.sh | 3 + taskcluster/tc-node_tflite-tests-prod.sh | 5 +- taskcluster/tc-node_tflite-tests.sh | 3 + taskcluster/tc-python-tests-prod.sh | 7 +- taskcluster/tc-python-tests.sh | 3 + taskcluster/tc-python_tflite-tests-prod.sh | 5 +- taskcluster/tc-python_tflite-tests.sh | 3 + taskcluster/tc-tests-utils.sh | 172 ++++++++++++------ taskcluster/tc-train-tests.sh | 25 ++- taskcluster/test-android-opt-base.tyml | 2 +- .../test-apk-android-24-x86_64-opt.yml | 5 +- .../test-apk-android-25-x86_64-opt.yml | 5 +- ...est-apk-android-26-x86_64-opt.yml.disabled | 2 +- ...est-apk-android-28-x86_64-opt.yml.disabled | 2 +- taskcluster/test-armbian-opt-base.tyml | 2 +- .../test-benchmark-linux-amd64-opt.yml | 3 +- taskcluster/test-cpp-android-24-arm64-opt.yml | 5 +- taskcluster/test-cpp-android-24-armv7-opt.yml | 5 +- taskcluster/test-cpp-android-25-arm64-opt.yml | 5 +- taskcluster/test-cpp-android-25-armv7-opt.yml | 5 +- taskcluster/test-cpp-armbian-arm64-opt.yml | 10 - .../test-cpp-linux-amd64-prod_pbmodel-opt.yml | 2 +- taskcluster/test-cpp-raspbian-rpi3-opt.yml | 10 - .../test-cpp_16k-armbian-arm64-opt.yml | 11 ++ ....yml => test-cpp_16k-darwin-amd64-opt.yml} | 9 +- taskcluster/test-cpp_16k-linux-amd64-opt.yml | 11 ++ .../test-cpp_16k-raspbian-rpi3-opt.yml | 11 ++ ...opt.yml => test-cpp_16k-win-amd64-opt.yml} | 9 +- ... test-cpp_16k_tflite-darwin-amd64-opt.yml} | 9 +- .../test-cpp_16k_tflite-linux-amd64-opt.yml | 11 ++ .../test-cpp_16k_tflite-win-amd64-opt.yml | 11 ++ ...pt.yml => test-cpp_8k-linux-amd64-opt.yml} | 9 +- ...=> test-cpp_8k_tflite-linux-amd64-opt.yml} | 9 +- .../test-cpp_tflite-linux-amd64-prod-opt.yml | 2 +- taskcluster/test-cpp_tflite-win-amd64-opt.yml | 10 - taskcluster/test-darwin-opt-base.tyml | 2 +- .../test-electronjs_v3.1-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v3.1-win-amd64-opt.yml | 5 +- ...st-electronjs_v3.1_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v3.1_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v4.0-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v4.0-win-amd64-opt.yml | 5 +- ...st-electronjs_v4.0_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v4.0_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v4.1-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v4.1-win-amd64-opt.yml | 5 +- ...st-electronjs_v4.1_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v4.1_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v4.2-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v4.2-win-amd64-opt.yml | 5 +- ...st-electronjs_v4.2_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v4.2_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v5.0-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v5.0-win-amd64-opt.yml | 5 +- ...st-electronjs_v5.0_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v5.0_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v6.0-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v6.0-win-amd64-opt.yml | 5 +- ...st-electronjs_v6.0_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v6.0_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v7.0-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v7.0-win-amd64-opt.yml | 5 +- ...st-electronjs_v7.0_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v7.0_8k-linux-amd64-opt.yml} | 9 +- .../test-electronjs_v7.1-darwin-amd64-opt.yml | 5 +- .../test-electronjs_v7.1-win-amd64-opt.yml | 5 +- ...st-electronjs_v7.1_16k-linux-amd64-opt.yml | 15 ++ ...st-electronjs_v7.1_8k-linux-amd64-opt.yml} | 9 +- taskcluster/test-linux-opt-base.tyml | 2 +- ...t-lite_benchmark_model-linux-amd64-opt.yml | 3 +- .../test-netframework-win-amd64-opt.yml | 5 +- .../test-nodejs_10x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_10x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_10x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_10x-win-amd64-opt.yml | 5 +- .../test-nodejs_10x_16k-linux-amd64-opt.yml | 15 ++ ..._10x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...js_10x_16k_tflite-linux-amd64-prod-opt.yml | 13 ++ .../test-nodejs_10x_8k-linux-amd64-opt.yml | 15 ++ ...s_10x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...js_10x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_11x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_11x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_11x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_11x-win-amd64-opt.yml | 5 +- .../test-nodejs_11x_16k-linux-amd64-opt.yml | 15 ++ ..._11x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...js_11x_16k_tflite-linux-amd64-prod-opt.yml | 13 ++ .../test-nodejs_11x_8k-linux-amd64-opt.yml | 15 ++ ...s_11x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...js_11x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_12x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_12x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_12x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_12x-win-amd64-opt.yml | 5 +- .../test-nodejs_12x_16k-linux-amd64-opt.yml | 15 ++ ..._12x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...js_12x_16k_tflite-linux-amd64-prod-opt.yml | 13 ++ .../test-nodejs_12x_8k-linux-amd64-opt.yml | 15 ++ ...s_12x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...js_12x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_13x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_13x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_13x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_13x-win-amd64-opt.yml | 5 +- .../test-nodejs_13x_16k-linux-amd64-opt.yml | 15 ++ ..._13x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...s_13x_16k_multiarchpkg-linux-amd64-opt.yml | 15 ++ ...iarchpkg-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...js_13x_16k_tflite-linux-amd64-prod-opt.yml | 13 ++ .../test-nodejs_13x_8k-linux-amd64-opt.yml | 15 ++ ...s_13x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...js_13x_8k_multiarchpkg-linux-amd64-opt.yml | 15 ++ ...iarchpkg-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...js_13x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- ...ejs_13x_multiarchpkg-armbian-arm64-opt.yml | 5 +- ...dejs_13x_multiarchpkg-darwin-amd64-opt.yml | 5 +- ...ejs_13x_multiarchpkg-raspbian-rpi3-opt.yml | 5 +- ...-nodejs_13x_multiarchpkg-win-amd64-opt.yml | 5 +- .../test-nodejs_4x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_4x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_4x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_4x-win-amd64-opt.yml | 5 +- .../test-nodejs_4x_16k-linux-amd64-opt.yml | 14 ++ ...s_4x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_4x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_4x_8k-linux-amd64-opt.yml | 14 ++ ...js_4x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_4x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_5x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_5x_16k-linux-amd64-opt.yml | 14 ++ ...s_5x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_5x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_5x_8k-linux-amd64-opt.yml | 14 ++ ...js_5x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_5x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_6x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_6x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_6x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_6x-win-amd64-opt.yml | 5 +- .../test-nodejs_6x_16k-linux-amd64-opt.yml | 14 ++ ...s_6x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_6x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_6x_8k-linux-amd64-opt.yml | 14 ++ ...js_6x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_6x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_7x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_7x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_7x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_7x-win-amd64-opt.yml | 5 +- .../test-nodejs_7x_16k-linux-amd64-opt.yml | 14 ++ ...s_7x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_7x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_7x_8k-linux-amd64-opt.yml | 14 ++ ...js_7x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_7x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_8x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_8x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_8x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_8x-win-amd64-opt.yml | 5 +- .../test-nodejs_8x_16k-linux-amd64-opt.yml | 14 ++ ...s_8x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_8x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_8x_8k-linux-amd64-opt.yml | 14 ++ ...js_8x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_8x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-nodejs_9x-armbian-arm64-opt.yml | 5 +- .../test-nodejs_9x-darwin-amd64-opt.yml | 5 +- .../test-nodejs_9x-raspbian-rpi3-opt.yml | 5 +- taskcluster/test-nodejs_9x-win-amd64-opt.yml | 5 +- .../test-nodejs_9x_16k-linux-amd64-opt.yml | 14 ++ ...s_9x_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- ...ejs_9x_16k_tflite-linux-amd64-prod-opt.yml | 12 ++ .../test-nodejs_9x_8k-linux-amd64-opt.yml | 14 ++ ...js_9x_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...ejs_9x_8k_tflite-linux-amd64-prod-opt.yml} | 6 +- .../test-python_27m-darwin-amd64-opt.yml | 5 +- .../test-python_27m_16k-linux-amd64-opt.yml | 14 ++ ...n_27m_16k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ .../test-python_27m_8k-linux-amd64-opt.yml | 14 ++ ...on_27m_8k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ ...on_27m_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...on_27m_tflite_8k-linux-amd64-prod-opt.yml} | 6 +- .../test-python_27mu_16k-linux-amd64-opt.yml | 14 ++ ..._27mu_16k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ .../test-python_27mu_8k-linux-amd64-opt.yml | 14 ++ ...n_27mu_8k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ ...n_27mu_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...n_27mu_tflite_8k-linux-amd64-prod-opt.yml} | 6 +- .../test-python_35-darwin-amd64-opt.yml | 5 +- .../test-python_35-linux-amd64-opt.yml | 13 -- taskcluster/test-python_35-win-amd64-opt.yml | 5 +- .../test-python_35_16k-linux-amd64-opt.yml | 14 ++ ...on_35_16k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ ... => test-python_35_8k-linux-amd64-opt.yml} | 9 +- ...on_35_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...hon_35_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...hon_35_tflite_8k-linux-amd64-prod-opt.yml} | 6 +- .../test-python_36-darwin-amd64-opt.yml | 5 +- taskcluster/test-python_36-win-amd64-opt.yml | 5 +- .../test-python_36_16k-linux-amd64-opt.yml | 14 ++ ...n_36_16k-linux-amd64-prod_pbmodel-opt.yml} | 7 +- .../test-python_36_8k-linux-amd64-opt.yml | 14 ++ ...on_36_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...hon_36_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...hon_36_tflite_8k-linux-amd64-prod-opt.yml} | 6 +- .../test-python_37-darwin-amd64-opt.yml | 5 +- .../test-python_37-linux-amd64-opt.yml | 13 -- taskcluster/test-python_37-win-amd64-opt.yml | 5 +- .../test-python_37_16k-linux-amd64-opt.yml | 14 ++ ...on_37_16k-linux-amd64-prod_pbmodel-opt.yml | 12 ++ .../test-python_37_8k-linux-amd64-opt.yml | 14 ++ ...on_37_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...hon_37_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...thon_37_tflite_8k-linux-amd64-prod-opt.yml | 12 ++ .../test-python_37m-armbian-arm64-opt.yml | 5 +- .../test-python_37m-raspbian-rpi3-opt.yml | 5 +- .../test-python_38-darwin-amd64-opt.yml | 5 +- .../test-python_38-linux-amd64-opt.yml | 13 -- ...python_38-linux-amd64-prod_pbmodel-opt.yml | 12 -- taskcluster/test-python_38-win-amd64-opt.yml | 5 +- .../test-python_38_16k-linux-amd64-opt.yml | 14 ++ ...n_38_16k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ... => test-python_38_8k-linux-amd64-opt.yml} | 9 +- ...on_38_8k-linux-amd64-prod_pbmodel-opt.yml} | 6 +- ...-python_38_tflite-linux-amd64-prod-opt.yml | 12 -- ...hon_38_tflite_16k-linux-amd64-prod-opt.yml | 12 ++ ...hon_38_tflite_8k-linux-amd64-prod-opt.yml} | 6 +- taskcluster/test-raspbian-opt-base.tyml | 2 +- ...st-training_16k-linux-amd64-py35m-opt.yml} | 6 +- ...st-training_16k-linux-amd64-py36m-opt.yml} | 6 +- ...test-training_8k-linux-amd64-py36m-opt.yml | 13 ++ taskcluster/test-win-opt-base.tyml | 2 +- taskcluster/win-opt-base.tyml | 14 +- 251 files changed, 1588 insertions(+), 549 deletions(-) create mode 100644 data/smoke_test/LDC93S1_pcms16le_1_16000.wav delete mode 100644 taskcluster/test-cpp-armbian-arm64-opt.yml delete mode 100644 taskcluster/test-cpp-raspbian-rpi3-opt.yml create mode 100644 taskcluster/test-cpp_16k-armbian-arm64-opt.yml rename taskcluster/{test-cpp-darwin-amd64-opt.yml => test-cpp_16k-darwin-amd64-opt.yml} (60%) create mode 100644 taskcluster/test-cpp_16k-linux-amd64-opt.yml create mode 100644 taskcluster/test-cpp_16k-raspbian-rpi3-opt.yml rename taskcluster/{test-cpp-win-amd64-opt.yml => test-cpp_16k-win-amd64-opt.yml} (50%) rename taskcluster/{test-cpp_tflite-darwin-amd64-opt.yml => test-cpp_16k_tflite-darwin-amd64-opt.yml} (58%) create mode 100755 taskcluster/test-cpp_16k_tflite-linux-amd64-opt.yml create mode 100644 taskcluster/test-cpp_16k_tflite-win-amd64-opt.yml rename taskcluster/{test-cpp-linux-amd64-opt.yml => test-cpp_8k-linux-amd64-opt.yml} (52%) rename taskcluster/{test-cpp_tflite-linux-amd64-opt.yml => test-cpp_8k_tflite-linux-amd64-opt.yml} (50%) delete mode 100644 taskcluster/test-cpp_tflite-win-amd64-opt.yml create mode 100644 taskcluster/test-electronjs_v3.1_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v4.0-linux-amd64-opt.yml => test-electronjs_v3.1_8k-linux-amd64-opt.yml} (64%) create mode 100644 taskcluster/test-electronjs_v4.0_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v3.1-linux-amd64-opt.yml => test-electronjs_v4.0_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-electronjs_v4.1_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v4.1-linux-amd64-opt.yml => test-electronjs_v4.1_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-electronjs_v4.2_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v4.2-linux-amd64-opt.yml => test-electronjs_v4.2_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-electronjs_v5.0_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v5.0-linux-amd64-opt.yml => test-electronjs_v5.0_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-electronjs_v6.0_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v7.1-linux-amd64-opt.yml => test-electronjs_v6.0_8k-linux-amd64-opt.yml} (64%) create mode 100644 taskcluster/test-electronjs_v7.0_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v6.0-linux-amd64-opt.yml => test-electronjs_v7.0_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-electronjs_v7.1_16k-linux-amd64-opt.yml rename taskcluster/{test-electronjs_v7.0-linux-amd64-opt.yml => test-electronjs_v7.1_8k-linux-amd64-opt.yml} (65%) create mode 100644 taskcluster/test-nodejs_10x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_10x-linux-amd64-opt.yml => test-nodejs_10x_16k-linux-amd64-prod_pbmodel-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_10x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_10x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_10x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_10x_8k-linux-amd64-prod_pbmodel-opt.yml} (73%) rename taskcluster/{test-nodejs_10x_tflite-linux-amd64-prod-opt.yml => test-nodejs_10x_8k_tflite-linux-amd64-prod-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_11x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_11x-linux-amd64-opt.yml => test-nodejs_11x_16k-linux-amd64-prod_pbmodel-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_11x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_11x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_11x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_11x_8k-linux-amd64-prod_pbmodel-opt.yml} (73%) rename taskcluster/{test-nodejs_11x_tflite-linux-amd64-prod-opt.yml => test-nodejs_11x_8k_tflite-linux-amd64-prod-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_12x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_12x-linux-amd64-opt.yml => test-nodejs_12x_16k-linux-amd64-prod_pbmodel-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_12x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_12x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_12x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_12x_8k-linux-amd64-prod_pbmodel-opt.yml} (73%) rename taskcluster/{test-nodejs_12x_tflite-linux-amd64-prod-opt.yml => test-nodejs_12x_8k_tflite-linux-amd64-prod-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_13x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_13x-linux-amd64-opt.yml => test-nodejs_13x_16k-linux-amd64-prod_pbmodel-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-opt.yml rename taskcluster/{test-nodejs_13x_multiarchpkg-linux-amd64-opt.yml => test-nodejs_13x_16k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml} (77%) create mode 100644 taskcluster/test-nodejs_13x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_13x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_13x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_13x_8k-linux-amd64-prod_pbmodel-opt.yml} (73%) create mode 100644 taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-opt.yml rename taskcluster/{test-nodejs_13x_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_13x_8k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml} (89%) rename taskcluster/{test-nodejs_13x_tflite-linux-amd64-prod-opt.yml => test-nodejs_13x_8k_tflite-linux-amd64-prod-opt.yml} (72%) create mode 100644 taskcluster/test-nodejs_4x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_4x-linux-amd64-opt.yml => test-nodejs_4x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_4x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_4x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_4x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_4x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_4x_tflite-linux-amd64-prod-opt.yml => test-nodejs_4x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_5x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_5x-linux-amd64-opt.yml => test-nodejs_5x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_5x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_5x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_5x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_5x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_5x_tflite-linux-amd64-prod-opt.yml => test-nodejs_5x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_6x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_6x-linux-amd64-opt.yml => test-nodejs_6x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_6x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_6x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_6x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_6x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_6x_tflite-linux-amd64-prod-opt.yml => test-nodejs_6x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_7x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_7x-linux-amd64-opt.yml => test-nodejs_7x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_7x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_7x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_7x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_7x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_7x_tflite-linux-amd64-prod-opt.yml => test-nodejs_7x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_8x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_8x-linux-amd64-opt.yml => test-nodejs_8x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_8x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_8x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_8x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_8x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_8x_tflite-linux-amd64-prod-opt.yml => test-nodejs_8x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_9x_16k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_9x-linux-amd64-opt.yml => test-nodejs_9x_16k-linux-amd64-prod_pbmodel-opt.yml} (71%) create mode 100644 taskcluster/test-nodejs_9x_16k_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-nodejs_9x_8k-linux-amd64-opt.yml rename taskcluster/{test-nodejs_9x-linux-amd64-prod_pbmodel-opt.yml => test-nodejs_9x_8k-linux-amd64-prod_pbmodel-opt.yml} (72%) rename taskcluster/{test-nodejs_9x_tflite-linux-amd64-prod-opt.yml => test-nodejs_9x_8k_tflite-linux-amd64-prod-opt.yml} (71%) create mode 100644 taskcluster/test-python_27m_16k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_27m_16k-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_27m_8k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_27m_8k-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_27m_tflite_16k-linux-amd64-prod-opt.yml rename taskcluster/{test-python_27m_tflite-linux-amd64-prod-opt.yml => test-python_27m_tflite_8k-linux-amd64-prod-opt.yml} (77%) create mode 100644 taskcluster/test-python_27mu_16k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_27mu_16k-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_27mu_8k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_27mu_8k-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_27mu_tflite_16k-linux-amd64-prod-opt.yml rename taskcluster/{test-python_27mu_tflite-linux-amd64-prod-opt.yml => test-python_27mu_tflite_8k-linux-amd64-prod-opt.yml} (76%) delete mode 100644 taskcluster/test-python_35-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_35_16k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_35_16k-linux-amd64-prod_pbmodel-opt.yml rename taskcluster/{test-python_27mu-linux-amd64-opt.yml => test-python_35_8k-linux-amd64-opt.yml} (56%) rename taskcluster/{test-python_27m-linux-amd64-prod_pbmodel-opt.yml => test-python_35_8k-linux-amd64-prod_pbmodel-opt.yml} (65%) create mode 100644 taskcluster/test-python_35_tflite_16k-linux-amd64-prod-opt.yml rename taskcluster/{test-python_37_tflite-linux-amd64-prod-opt.yml => test-python_35_tflite_8k-linux-amd64-prod-opt.yml} (65%) create mode 100644 taskcluster/test-python_36_16k-linux-amd64-opt.yml rename taskcluster/{test-python_36-linux-amd64-opt.yml => test-python_36_16k-linux-amd64-prod_pbmodel-opt.yml} (64%) create mode 100644 taskcluster/test-python_36_8k-linux-amd64-opt.yml rename taskcluster/{test-python_36-linux-amd64-prod_pbmodel-opt.yml => test-python_36_8k-linux-amd64-prod_pbmodel-opt.yml} (66%) create mode 100644 taskcluster/test-python_36_tflite_16k-linux-amd64-prod-opt.yml rename taskcluster/{test-python_36_tflite-linux-amd64-prod-opt.yml => test-python_36_tflite_8k-linux-amd64-prod-opt.yml} (65%) delete mode 100644 taskcluster/test-python_37-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_37_16k-linux-amd64-opt.yml create mode 100644 taskcluster/test-python_37_16k-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_37_8k-linux-amd64-opt.yml rename taskcluster/{test-python_37-linux-amd64-prod_pbmodel-opt.yml => test-python_37_8k-linux-amd64-prod_pbmodel-opt.yml} (65%) create mode 100644 taskcluster/test-python_37_tflite_16k-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-python_37_tflite_8k-linux-amd64-prod-opt.yml delete mode 100644 taskcluster/test-python_38-linux-amd64-opt.yml delete mode 100644 taskcluster/test-python_38-linux-amd64-prod_pbmodel-opt.yml create mode 100644 taskcluster/test-python_38_16k-linux-amd64-opt.yml rename taskcluster/{test-python_27mu-linux-amd64-prod_pbmodel-opt.yml => test-python_38_16k-linux-amd64-prod_pbmodel-opt.yml} (65%) rename taskcluster/{test-python_27m-linux-amd64-opt.yml => test-python_38_8k-linux-amd64-opt.yml} (56%) rename taskcluster/{test-python_35-linux-amd64-prod_pbmodel-opt.yml => test-python_38_8k-linux-amd64-prod_pbmodel-opt.yml} (66%) delete mode 100644 taskcluster/test-python_38_tflite-linux-amd64-prod-opt.yml create mode 100644 taskcluster/test-python_38_tflite_16k-linux-amd64-prod-opt.yml rename taskcluster/{test-python_35_tflite-linux-amd64-prod-opt.yml => test-python_38_tflite_8k-linux-amd64-prod-opt.yml} (65%) rename taskcluster/{test-training_upstream-linux-amd64-py35m-opt.yml => test-training_16k-linux-amd64-py35m-opt.yml} (76%) rename taskcluster/{test-training_upstream-linux-amd64-py36m-opt.yml => test-training_16k-linux-amd64-py36m-opt.yml} (75%) create mode 100644 taskcluster/test-training_8k-linux-amd64-py36m-opt.yml diff --git a/bin/run-tc-ldc93s1_new.sh b/bin/run-tc-ldc93s1_new.sh index 29f833d7..ff8751ed 100755 --- a/bin/run-tc-ldc93s1_new.sh +++ b/bin/run-tc-ldc93s1_new.sh @@ -6,6 +6,7 @@ ldc93s1_dir="./data/smoke_test" ldc93s1_csv="${ldc93s1_dir}/ldc93s1.csv" epoch_count=$1 +audio_sample_rate=$2 if [ ! -f "${ldc93s1_dir}/ldc93s1.csv" ]; then echo "Downloading and preprocessing LDC93S1 example data, saving in ${ldc93s1_dir}." @@ -25,4 +26,5 @@ python -u DeepSpeech.py --noshow_progressbar --noearly_stop \ --max_to_keep 1 --checkpoint_dir '/tmp/ckpt' \ --learning_rate 0.001 --dropout_rate 0.05 --export_dir '/tmp/train' \ --lm_binary_path 'data/smoke_test/vocab.pruned.lm' \ - --lm_trie_path 'data/smoke_test/vocab.trie' + --lm_trie_path 'data/smoke_test/vocab.trie' \ + --audio_sample_rate ${audio_sample_rate} diff --git a/bin/run-tc-ldc93s1_tflite.sh b/bin/run-tc-ldc93s1_tflite.sh index 6012e1c5..b5a7772c 100755 --- a/bin/run-tc-ldc93s1_tflite.sh +++ b/bin/run-tc-ldc93s1_tflite.sh @@ -5,6 +5,8 @@ set -xe ldc93s1_dir="./data/smoke_test" ldc93s1_csv="${ldc93s1_dir}/ldc93s1.csv" +audio_sample_rate=$1 + if [ ! -f "${ldc93s1_dir}/ldc93s1.csv" ]; then echo "Downloading and preprocessing LDC93S1 example data, saving in ${ldc93s1_dir}." python -u bin/import_ldc93s1.py ${ldc93s1_dir} @@ -20,6 +22,7 @@ python -u DeepSpeech.py --noshow_progressbar \ --export_dir '/tmp/train_tflite' \ --lm_binary_path 'data/smoke_test/vocab.pruned.lm' \ --lm_trie_path 'data/smoke_test/vocab.trie' \ + --audio_sample_rate ${audio_sample_rate} \ --export_tflite mkdir /tmp/train_tflite/en-us @@ -30,5 +33,6 @@ python -u DeepSpeech.py --noshow_progressbar \ --export_dir '/tmp/train_tflite/en-us' \ --lm_binary_path 'data/smoke_test/vocab.pruned.lm' \ --lm_trie_path 'data/smoke_test/vocab.trie' \ + --audio_sample_rate ${audio_sample_rate} \ --export_language 'Fake English (fk-FK)' \ --export_zip diff --git a/data/smoke_test/LDC93S1_pcms16le_1_16000.wav b/data/smoke_test/LDC93S1_pcms16le_1_16000.wav new file mode 100644 index 0000000000000000000000000000000000000000..62b65f8fc67dab9e3b46c5395daebf74654c9ce5 GIT binary patch literal 93638 zcmWIYbaUI6%g7M!80MOmTcRMqz`(%Bz{t>G$H2f)%fP_IAi$84Sdus^7bN=sKNAB8 zFoRY7{r~Sj69XeifPtBT6%JXDcq|Nz46F>`3qYX^3Q15%{r}Iv0Ky=9*}(Y^z*#(jT z*#+_mD7~;S{QnQK59B&fYJgx+T8D%Uh!64$$ZU`qpqvUa1LS^C3I(|i6rLdSSi$)Y zBm#0fhz6MsG7H28iGeUkH>d;vWqgne7{IzfeuIP#D6~MS7ZO|S3?Q39E(WD0kZah$ z60aZ? zkhBg8RY>TA>;c6j$Tu+eg3>IA4GLe7Zjc&~4Ip(08e}&}6)5B(@eOhnNIfWyK|TY? zg3JQN3rH`B2I&G}m~SC8$Zrr9j0EWg*#*)M@iEBF5SM^r666<<2*~%KFaw1*OfM=Q zWGl!tkSI(Agb$JdnGK;qApkKErV8XLkh!3g!T_$JLB4{?f^>q^gIoy`1H}g@eSk^~ zc5p2Xl7Xp$gc3*{$oC*o5F3IaIzeVZ_#l@sGl0rtP<(>agWL--0hAL!=7L-T$}OPW z3Q9d7n;|AhFlaN#F^Dm+G5q-d;s4wJFaAIN|Lp&}|L^{P{Qu$q*Z;r%Gcs^82r!5+ zh%pE=@PKP?P^w^MU}xZF;ACK9`1k+!|L_05{r~m<=l}ozLG2V!sRPP&5ch%Xfy6kd z{D6cW$fcl^2XYUn%>v3{pt1~9azNY*ib;@ukjp_SoDJM^0FfZ~BV-`DKq(efk1&F3 zOHfS+vLBSXVD>?DfI?ezaw&)nOEn-i2!mV$5`%;fC=Eeu29=~B7lUd^PzZti z1Bz2t22iYn{0V9wfLflQ&;ntQ4p5l|sx3e@3n(-}7!L8lVNUz&=4O&NRY1(E(iG+qy|!=fWimlACNCVAp+3>QUmfg z0)yNPaurA&D6~OpLAHa$L1hxiWgy>!%2ZH{faF28KwJq@2`c?TegUNy5Ff+_`2(a9 z#0O!R4Io#6#6dX^#s=|0VFL0Egbi{X$mgIm4hkKJyFliGTmUi;Bnwgni4Tx_K%oV4 z0m%0tK8S|sgOH%G0AYx&pfmx}4>A*E3n*Mbx?KG9Vv7LIETXawA9o&WxW zbpQVkDzh0F*cmt({(}2(%nX12gUUKk4g-~>Y~a=z$TpB!pzs8R0?2nD_x%6=?f;Me ztPGqCLJVvSpgQF9|DXSVLtFYF6`-*G`=5c~_kU0s3-TYxE|3dAegVmVRDse3sO$u# zW>9#5TmVY4AKKK2P6-2AE?C*$|IoI1E~e|pFm{+ z$Se>a#0J?1euCHs(FY1ckSxf4P~3w|0b!6@ zkWHZY1nGg$pjZUi3$h1fKFC)v4ATK}8^}E%-+(a4bW99#CCDU98DtTV>p-@H>;jn& zN;MD~M1s;7C@p|wK_vz=12@B0aNB?b+)w@YpPd2JKLMpJPzxR8M^LQ|NgI$b0@dIk zw}AW#iZ2iiiA|6^B#*)5LFok)0-!nwry5s+P=)CLj(wUa>h zg4_TS1L=g(AQ!+&Es)s|yCEteY-AFo0#dI+L?PuFNHxeDP|5(Q0EvRcAa;Vn6(kBu zBOsrH*r2osawW)hAU?>KAQ}{N2%R81K<0u>KvxOM2_ScaTmuRhkX;}XKyeOAt&o}k zQa*yjK_xb%&H$01Q~*j95M3a%KxF}}Tm_j6G6U4!0_8xEYeDvdTny3y3O`Wp1ko@b zfqVdRIdZsy+>eey`XOpTCW2xXlz%`m3i1WWW>A_3g%z?+P$+5vVo;=>vrsC~QIT2nsO}8&s2lRD=8oicOG-pn3^1G60HakeMK#LqZ6o4x}Gs zJIGd$8Grx(`4388AooFZfN~)u-GJ1B(i0N{I|FEx3?vV-4-|eNmxA=MF#P!sN-H2f z%$=Zc0+pXIdqDD_@PNpJOohlm(iccIs9pw%f$Rpk3gTOkt3lxm3R{SIAT=P9Kt2J* z9SDPJGm!5==7Lm#QZq;$s67BO3sQQ4;tW&=g4_v8=b#(_>SeJrurmDl|NTEGE@3Sg zQ0Rk90_A5A2IXf^ss#1sLFzztF(e#7Api6u+0?C5-5Su{p0CGFXAD|QtN*#Zo zBg-IFAl)EyKp4aa#Q`LYK)DeVn;;pOxgZ)eq6`WfP)`74Dkv;KE`|68l;W3s%p=z{c?P|L6Zg42%q4|MN2lGB7akFfcLv`Tz4j zBLf%1hyT0`Apd^*|M5RBgA~K>|Ns8;Gk`+s_y2GI1sRwae*9Nr5M_Ax|NVbfhF|~x z{AU99r9tU|hvD7-@BhDm-SX-`69XT^>;E7AOE7%>|M>d{eR+5f-)+b}%& zf8@Uug8{>>|2O|@F&Hr%{(tqq0Rtbywf|ZS8Vq;;-}*1d@b5nl!~g%E|En_aF}(V( z$Y98D^FK3#3B#xV5C8Kr=rV9Hy#N35KL>*V!@K`?{tGdD`Ty}hKf{mz+zbp1ybJ~m zJPhalzy0sRV9hY?KMz9;0~^EI|G)nmFr4^*`M)v4_y6nvOETCoXfj;@5|9|wKkwKW@ z&HvB;wHS05F8#m!-;lwSVblN5|8*Gn89w~~_}_wogW>Fdb_Q(*VTMEhB^lHi7#LRl zzw$qhL5|_%|M&m@{a0bw{GWwEhT+BkhyV2$v>1NqF@`(;fBcta5MvN$c>aI)e{}{+hNb^6{?}yiV)*s{;s00vwHX8%&i?=N zUxVTNe_;l5hR6T^|9|&Cm*M;Wum3;&fA{~}e;0<6|Bw9lWcc;};QyWf0~ov+CjaMP zh-0|;zvI6rLoCDR|7ZT2FsL)AG2Hoo_`fcL1HAU&Rp5Q1So9|4If;hWP(N3~dZ^|4;sJ!;sCe>VMP!B!*cG zoBu!f@5=Dz|BL^O44PmU$ua!?&%-(9DqWfA9ZBhTs4D{;M$9GFUKF|6lZf5d$m3jsJ=aK@4yI*Zmh`=x4b2|L6bP z|05W_{P+BC#BiD+;J^3(YKBaP+5flxuVwIL*!6$Q|8NE=h8h2l{x4(@W|;AxlOdJi z@BhvJH5fV={{3J0|J?s63^)G&|9}4f_y7O?Z~t$}AjOdM|Ka~UhA@Vi|Cj&IWN>G= z_5Z;CAO8gz{{A;&kZ0KapPiwU;n4qu|6>@G7;gUG_y75ScLq}iK87#<@BhE{|LOm9 z23Cfn|1B84{kLPd`hWU=cZL*(S^ww%S7PvH*!KU?e;Wo_hQI&6|957%|9{p0yZ_fS zT>anh--W@2q38dM|5F%h8RY&S{Xd`K`Twi`O&QV|9{kS$hps5Yg#RoIlNdt(J2C_^ z%>KXU|L^~M7~&c1{%8K*#n8qu>Hm}eE)1*;+5epwav84v7yTd2u#X}4fBXMK42BFT z|5X_*8T$TfFr+f9{$Ki^k)e;__5UgV1sEnVto(oK|4fD_{}cXeGQ=?`Gt~Xx@;{qF zk757+xBulBOc>7mfAHUw!JT39|E&K98LSy1|4;qj%8KYj)?#)JQ_ z|GWPG3&ZXI0{`#*-^1|r|Ka~H|3@#N)BmcBP7DwK*)ni2 zF8Z(XU!S3n;lTeV|7S83GyMN|?*Ao*YKEr&HUD4zf5Wip|NDQ_8Kf9y|5s$_U|?go z@XzM|490g15C5(E7ss%RftTUs|H=PL|MM_DWcc=9@BglUvluoq{`l|y&*{H6VdxlKL-~S){TmFA7LnXt}|MvfX|G&< z2xrLpSN?w&!+i!7hN}PN|0NinGYB(G`nUT3TZUr{SN}`?XJTmjKaIhIal!w+|LhqS zGS2=V^#AaGV}@{s5QeY+cl=XjIL6@4@Z$f=e{23nGW0VjF~t18``?D4mO+(4i6Qxa z;s09<3XI$T&-*9L@Q301|K$Iv|I@&ARSbg-L&bli|F;-+G5q>B@Bd#0HwLEvFaJMg zc>n*)|9pnr|JwhV8J;q*GF<+z&mhjQ_W!5lbIa= z6aJerSTL|KCNUWP`|xiSBLid4KiU7z47Ln&8J_)L@c+U8-2ax0KN;TrTmA14LmuPm z|6BhVGpu4*z!1j}^Iz=0K7%CVEQW@EZ~m=kSjKSU|IPoR47L9a8ICbr`Op1dm4Thn zjUnYf@BfJm&lqeO4*%cszvh28!*&LP|8xIyFfcQ01FZx2pY(q#!!HIN2DSfA|8p5` zGxYwS@SmUI{r^%1eTJ+5H5g9*muKi_;AC+7|K|T9hV2Zm|F`{r{NI6rn?a4Cl3~mL z&;OqNZ)EuSfARm_|0gkcFc|;;{qOnzZ49CezyEVG%=^Fge+R>EhGYL5{zo#zGwk~B z_Fsdcp8?c5IrabezeE3}7!NRX{4e;gz~IR6;QzD#Jq+jnSN}I>5MxOFU-ExBLl481 z|0n)G|Nr9uq5ta`+!#y$3;pL}NMqn;*!aJMA%mgj|K|VZ3?d9?{}(U_GFJTG{!fNs z4TCR3$NyLV4Hypm&-x$DV9ikU-+`f%;p6`s|5E<{Wq8JL_y5HIstn8w`~LGVOlRO@ zxbpwne^rK)|BL7+fC1G0Dfn;p|I+_t24#jV|J(mJGqf?B{lD!0 zv;Tn%CJgQjVhk((ul>)$Fqt8Z;qd<>|KI&rWcd1@lYx_gf#LH1)BiOX9{hjxKbRqu zfrVkse^mw(h9m#~{TE?SW$;E7B@5tcKz|3&@|Dpdk|C=xFS|JVN_3r)>6fA*i1L4iS)L74&65>{l8XAopyWBB!-pMjg<)Bn%^`58cF za4>K&urqxB&&eRlAjt6M|I`0(|3CeI=l{q5pZ{O~fA0Us|3Cj<|9|uUxBuV%-}`?a z+=~15pOxXq|EvGc{=fSF&3|?Vc7`ASLF3#v{y+ZD!XV8cz`z5p%?ugr7~B|K8LSxm z8HyNk8GIP*7@QgW8Qd657+e@!8SEIG80;978DtrB7-SiK|G)qL%KwZ1Z~i~^f9L=8 z|NH)z{V({R^grZ(!vFmLzW;UqYy5ZpAO7F{zxIFK|DONL{?GltM?RNzG2W|3}%#Pu!`X*!(oPH44n*t3`$_Tw)~&>f7}0Q z|BL@8{P+HE^FQW)!T;d@7XO3)7yK{%pZ!1Kf8zg={}ule{=59Q{2%(i@PEL6&i}vv z@&4!gFZ=(?|7M2&|84%?{C|<*BEu{Oc1Cx`qYRH3k{N3m1sNk5=P8Sea_`rq!q&wtzhn*U$^)BNxI-}3*1f71WM{&)SK|Ns8~Gyhlp zfB8RJD{@;;*`~I!|$NE2p;Q|8_ zgZKZH4Bd>?jQ))88CNn!Fg{=mV!FrJ!N|%a%;dqikAa6Vi19H)J%bp-(f?WhSN)&& zKj#0ge>47V{`c(PqJNYBJ^E+=U+X{Lf2aQw{-6JE$PmmR&hYX7BnCmo4-AtTRx&JR z*v)X6VH<-x12Z^WK`Dg$|H^;m|HA*N{=4z_@jp?9-v6Ke2K-}XNM_Jx$YEH_z`@YQ zP{KHw@jF8uBQw)H#1Hm!X3IC1%oBt2~zZN`0aq|DR z|B4KS44n*a;5?Pj(8y54AP?>xP57_*|INQw|6cx^^Uvqs&%by7M*X|||K0zS|M>rH z{a?*c!;r)v#JGfEF+(!r9maIVHpW0EK_)9kZpLejzZshtxfoY5L@~H9v@>`x?D?lG$`)~VS{QskWKmIlS|Mma&|N8%J|3CjvWyoZ3W6)&?WT8e=q;C{A2&m!I1mk@879^-VA*V(F{Ed9~cfX=rOi1 zHZ#UC@-aCxZD#z!kj(gl@dBd;<3olj1{;O|hBAix|6TtZ{ZINY_5aep=l|0GXZ=_E zfA1gLf3N>n{_`*#|6lh1;D0xU9EKnUZ-y9#42C!c7X||cW`;BW>;7~6U-|FSzqkMT z|B3&5{rB46)_+(2ul?Wfum7JuLmY!M!+C}T#$61r7l z5@RGIFC!>?-5A^$?)=aAulQf}|NnnC{{8=#^WWqDnSZnX@%~@*|L*_o|J(jA{QvEL z3PU-AKZ85NJcfk~@eC#m1`Lc0yZ;CM|Mc(VzkUB&|GE4V|99i>`M<^gru@(PKj+`- ze;f<}3?&Rd83GwsGbk|%FbOhEVN_>Y$|S&4&3KlPkLfUDETa?SR0d@RU50#y{r|Q9 zzyGKDpZ~wy|L^~9|2y&T%D)T$bpFry-}yiF|K|Un{&O<;Fid7BV`yNQ&oG-Iiy?+V znc>F&mj5>YS^nSqSNhNRpYK1Tf3yEC{k!5{#sA0udjIkMXJyc1*u(IP;V%Ot<8elD zrfZB(8RM9Gn4FoIneH+kVZ6h*h0&0)oWY5~h(Va4fByf+e^-W5h9rhGhPw>U7$!0}GB_~^Gd%iV_22V9>;Lk9O8=_= z_5Qo`xBTy?zxDqf{nP#b@!zh0?f<7S++tYE@Q)#aaVFyzMgt~oCS#^rCO0N7CUzzj zre}IeRfB2{M&*0ytf7Sm^{LTM6>2K;kuKx!AJO54i z*YbZO!v%)P48n{n89y>IG8HjJGLM&;J|$od4PWbNVmCu#e#u!#@UD#!HNh zOioM{Ouv|BGO06(G37DoFflMaVvJxcWT<3V$`HzM{{M>qO8<}l+xYLrzc2rO{OkIc z`ETPt?f-TE_xzvqzx_WOLp4JqLj%JChM5eL7@8Rj8NU3#`G4L2l>hesclWo&9(4pY#7S|J4}IGPpBZFbXoxU@T{v$;8jZ%4Eg#p7AcD zG1DnV9!77*BF5PaJPhFsHVkY3d;K^2ulC>dzsUdn|5p7I{-5%{=YPikwErjn2QmaR z$S`Ozq%ia|v@s+ys4(a-=reFK^!~T_AO1h(|DJz_|JMFf|3B~FqrY$dYW!>c_wnD? ze{KJ^{44$+z>o~i9g>WijGc_17*&`SFs^5u#dwBs1>-WtTE=+BBMfU9ele^C*Zoia z=l?(UpMfFwztn%l|2h8`{$KJxlNB;l%ufSlb@1wD`~afAhZ?|M>sA{J-#z<)6jB4gW;`EBC)0*csmbzw!U@|E~X0|NH*8{#XD1`JdE(+5h(c zWB+shZ~xc)@Ap56|IGit{?q?o^MCvQng4tL|NOszVF!ahLlDDGh8GOq7LGXyZ) zVyIx`VLZt26I^p2WZ22j%CLxG0z)=~IfDy>J3~4HFT>^kU;gVca4fA#iNTV=oxzS_BEv$47>00$8io>vVun==7K}`cF$~EJdl()t z2r%+7u3~UwC})_?FrQ&HLkz>`|IhzBFwA1GW0>&&-hU;AfB%2|zx)6E|7-tG|3C15 z>i?YobN=`JPx!C*-{t?t|G)pw2bU}h{$Kmw`rrCL?|-ZR3;(b9uk&Bvzxw~F{}24% z`~Tp7J_ZE_E{0wIAN_Y`@Mh>__{5OHaPg zF)%WQGd%fU!|;J_6<^K!*=lu8k@Abd`|Fr+!|K0v4|8M`l`v2GeTnwBH=l)Os zzvMqJgA+p&Lm|V@{~!O~WcbT4fnfr}9)<%9XBnn3EMbsm{Kk;W;KdNfkinqO7|xi( z(DMJr|3Ze73>6I3|C|0BGK4c&FeouJ{9p6`&;NV>%l~itfB*l*|NZ}!{xkfa^IwhO z@c)GWAO1=G-}wLj|Cs;(|GoHE{r~Czp8tmbGyi}6ugCD`|F!=I|1bOh{=Wdj+y77g z8!^mgn8%>TV9IcrL5h)qaXUi?!)%8A3{4E#3{4Da46Y1i47VA!GbA(YV0g-~m7$g) zih-Nq`+si+XNDvHAOFAdzw-aI|9AgC{D0>Eq5o_D2mNRMuke4#|KI;N{dfA$^8fok z|Nr~`&;M`x-{ybd|LOlP{a^dP_Wy?e7ysY+|MmZi|9k&$`@jDG`Trseat!JWUJP{% zQyHom9x%LQ*v8P$aEzgpVG+Yk1_8!>3~L$oFf3$9W0=Hnm0>nRHbW*u0K=L8pggqw ze*l98L(>1?|40A7`LD)s{(t)a*8kEBcmKEk5B(qf-}Jxte~bTd|L^^O`#O#xhX9o;KjNH~-)NFTh~MpurH!(7}+*;K{Iq;Vr`<260A1Moq@c462O#7|t@BVPIuk!|;gV zJ3}*rGD8MK1%ovMKf{y%Pyb*1|NZ~L|9$^!|6lxn@Bi-q2me3+fBrwH7v289@Bftl z^Z$qafAjC zGs9JeWek-JD;O*p%NSi585wUe=rT@aJjcMnFquJ+F^I8;aWliM|DXRaWSGk^jlqfG z(EmOEc^T$`MoRu)`2YX^{r{8xAO6qI@b&-I|5N@K{h$AT^MC38$N&BM=l$R8Ki~iB z|91U*@=yQ2?tjVu=Ko#)C;r#^&-vdSJhL*HA%)@k|6l)4GuSXDFvc=+FLdJKK^H7c=NyTfBpZH|1}sC z7@qtu{J-G;tN+*j*ZoiVZ}DH?|NVcn|MmR4@Q>%e=l`PrZ2!0Y`|wZxzsvu&|2hBl z{|o&8_3zKW^Z(-+su(6SFfej53Nz|3&SqTCc%HG4QI*k!p@!iA!wZH&h7$~73=RzX z3=|pr(KkEO-|Beii3`Pu63@87KF!VC~WH`#u#?a2t%}~Mc zkYNXd1jB>>@(i#4pZWjc|I7bN{?Ga!{h#Ikzkf>q|NYzkuk2sYKevB!|G59f{#)=b z;NR4L8vix^AOH8_AJ2c6|F{0{U`rp-mdjC29OaGVs&;9?#zit1r{w4mi`zQ48 z{ojaxF8@saS^TT}*Z*(wzdQf_{`Y5eVG?KJV2WdU!sNibjMrM7zQzL&v(WDu>U*$mHk`t z@8-V~|Gxh-{crvM^uN@9?*C%{@%>x!_w`@ve_#JT`D_1A=%3g>`Tt>zXPGpZxtT?o z?=qz^KVw#6(PnmLdctt_fB(M)|CayT^H2Ss(7#)Mz5eb0xAwmf!!(9B3~r3Nj58S7 zm@JqAm^7J`7_}IF{#Rjm|9{bc+5dk3uKd;cSNHG0Ki2;q|CRp>{6G5dof7kvB{j2_` z{O|tXRe$&Y)%vIM|I`0Mh64=ljD?JI8Q(M7G9@q-F=;VrFzPeh|G(#d#sA3v_x|zx zoBWsYU(vtY|BU~K|F;9zLLC1u{af>o<=>LO$NsMWd-m_~ziEH>{1szZ%RG@qiDd!v zW@dS2HkPR@4lI^Twv1)}Z~y)LXYb!O_y1!5 z^Z%XuoA!6!-=4p*fBXM5|FQaankkhvj`bz;Qf5Quz0B`es#trOw=ur`|L$-5pZ9;( z{Vo3M^H=k)@L%D-D*vqimoTI=CNQZnePw*k*u-Sa9M8`hSt(0pkIt zeM}BatV}gbN0}U$8<~GIEoWTvfBL_r{|x@K{tx*V{rB3RXMeu@-S@BJ|BL?-44w>b z49*Pv4D#x9EPM;kN-p9$OK|D%QEoo-9Qyw^`1xwX+>(TK(VnU+5q6UunNR|2X{F_50ADwm*J< z>i;G&{AA2#R$yUZVP*crl)zlXY{@Lo{F>2~;nTm;e~c}u|497N{8Rg{oAEPKD$5I&cosM24(3VB zdd$z5mNPLkGXCH5m-X+mKM(&p{y+RL=P%#i#ebLnQ)h@|T);Syv6AsLgEa#;gDJzQ z{~Z6@{=WUa=huQ?zkiAU{_|_W?_fqRj#Zp4Z0DJuvlOwWuq|VEW1Gpi^54HdroTCV zhX306%j|d4?}vW`|49Df{WqV{kNFGBYSu8;-^}Zo&oS39KVxEH>SH+ZFY)inKNf!s z|GNF#`tR}IX@6h;RsWyPaEQ&57D1@e}4Tn`?t*BU4NSX zsQs&9Y-jditzt7`YiBvke1Tb)*^{Y)v5H~KKkdJ)e>{HA{k{8d-~WdH^Zq&gTl??V z|J#f=m?kovW{hE6#GuTu^?%C$L;sBbar~Y5JLH$@uijrQzrBC|{$0$lhkY%VB?l90 z1nXH=d$x~kWo&{>$^ZQR{QWiI$Gso3e;)bO_xsJC^?&C5(fXImc!_yC>uxqhwz({? znIAAKGutsmGg>lC`^WcJ=uhA8=s!Jwm;BrFZ{xqFf5!il82Fg#nW~s}GG;LzX2@sw z`G3{__y5HH-Tc%2JNXy?uSLJ~f0zDV{QLJmNwz$$c+MNFDXfoK6WBJf*|05Sdh_q- zpSs^tKiz)({Gt7;=J%;Tf`51a`TO@iLo0J7>w2~XHYHXM7C{z8=5LHri~4AgU;Fp@e>k_jf-g{!;nl z^H=L{*5BO!GnpQ<9AW#<_K$TZOFPR^W(Ot~MjM95|N8z;{nP&2=eNn9TYvZcv-{ul zf5(4m1}DaNrngKBm_(TZ7*{edG8Fvh{@?fS`rqS!8h-o!di68;m+$YzzYqLw{CkU8 zh3gsD6!!V7rfk7%wQR9$z08jPCI6cL`Tw)<`^xY9KUIG3`BV4z%b(W2PyU-S*Rg(P zo4~e|m6df9O9b;i#@h^n3|Ia=`J4ZT^|!+BgMZ@wE&liVpZfo%|2_G#2Z-&t$8_Hin*HL-fIy=UWO z7i9az*#A%XZ^fS}Kc9Sm|9!{L#^2xmT>rD-&z8T385T2NV+~_F%4)&t%sPWbj`8rjx8fhQf72KlSh`pmyZU?bPrsikzb5?7`NQzX^7o(L zQUClHgP5CG;#ksHPP1HMdCVNZe3OZj=_7*!!M*i*id+eVu z!)Ash3_lo*7~>gz8TlBOG1M_U|9|^m;$QVYQNL|}*Z)@kz2KM5?-YiwtflN;tpAzU zu#~fUu^F+iXWhnhfnnBv@4v@>rTpUfZT)BcAKgD6f9d{y{Acq2*^H9RLCpEgcbGL< z7BXirH!vGBYcZuWzWjgapWDCae@y>Q{$2aG=CAPIEq^EdYy8i~kj#+FFrDEt!)Jy! z3^y6V7^?qw{>%EC`iJF@;-444qkpsfKJzz>*@rEL)th-8b302VYZY5C+brfijC&Z| z|Ihfd{P&UHRewbP{``~s`^7JfKcWA48EP1fm^7HGn4+0;m<^c=nO86?GdDA}F!nQ~ z{FnTH;@|3j@BbG4z4FK6@2YqPzFKZo329q%J7G_n}hpZb|O_>9jzB8=;uk!cWpILwU|DONb{5Su% z=Wp9TzW)mTUt&;Xv}J5&oWfMjw48~bc^EV9(&m;L4Eq-}_(s-_*Z1{~G*b`zP~n@;~nXf&WAP z$N#VVfBFCM{~G_*{;mEy{qNhq2mVI?J^jb!|0kwS7BA+Y|KIoj#eZ#vNX81rgN)HkcbSBkWtr8P zb(u66?=w7QXk>WwpX)-dk zhySwwJM(wi->AQ44E)S-ERxI-Ox;Yn%y}#yS@>9%GbJz;Gd})*_21!t6aQ8I>-~4( zZ^<8@KOBD_|DFG@>3`k-)c@=Lw=+CvXkxTyTE)b{JcU_|`5+@FV*}%1MpwoHhJ^nS z{{sIl`4{!?)nA!^mj49)iT`u?=l`$Z->!c}|HS@%`OEk3+24PEul~LCxA0#nBQJ9n zb34;Nrdv#L%t0(0SynLrW}3}p&A9*n>i<3e)&DQ}*Y_{!@9jVD{zU!F`0McR{l6do zp8fOxzw^H*gB~LrQ#6w|vm3>=O+WuAiGx>M> z@6NyL|Nj4L`tRT0rGNYWF8aIm@7=$z{{H=|`tSX}SjO2*e9VbV%FGPRh0HQ6Gg-DX zn=@Z!n#JhH;Ll*laO%Iv|HuDk{dN5t^monQ*uUTY#{Y}@7xM4mKgs_c|MM9RGCDBD zGF@ey!nlahhG`2^D${XBL&kj!iVP3_pZGudf82lG|F!>a{=M|~<=?Y^cmAF5*Y7X) zU*o@?f6M+Z`MdA$-M`oWJz-eLsKoS-@g`FrQxG!?i!aM@<~_`Q%(6@ojB$+2jJp|3 z80P{4@Ud>fibQ(-}@P2r(XIc*qdT$j-#U#Lx7H zaRH+-<0ppw4DAeE3_%Qg|Lgxh_OIlh!9U@Dr~c;u)%g4S&(A+xe=Ytx{Vn`^@~_f= zb%y;69~c@K?=${nyvY>6+{&E6+{65pDV)iGiG%4lV<)2tV*o?{f2aSy{~h|b>fgeD z#{byHm!XG7Qrg-ZAho+A``her5Q@z{x1WsKCg|xQfA= z;lux)|L*_!|DX96{qM)$J%1Pco&I;m-`2mg{$Bq3{7@in6s zlRi^ElNHkyMnxt*rbmox7*8|0GOlN6W^iXip|409}{G0l( z?_b`(qJQcCKKzUS-|>I`|9k&!7^D~y8CEj-v90YC;y-RKkvWafA{}J{|)~e|2O*2_g@dRD)IlZ|7ZVy z`>)9W+7}$oP|PreVH?9{hHi#M4CffmF>GKs%W#?D7{hXgnG8(~4Gawo@eEcB1`L`E zVhqd-f($$if(&o}pZUM`|AGHk|8M@k>;LZm`~GkHzv}<0|Lgx>|9|QK5%3)U+5ZRr zAO64Y|Azm||1bPM| z1TkbVBr*6fR4`0psAec;n9WenP{q)}P{okSP{@$a;K$&|;K^XXV9B7#V8kHKzy@Bk z{QUpT|JVPY{eR~F;s2oZw_E<7_<#2Qwf|TCU;cmb|M~w{|ASU0@A<#+|GEEL{%`re z_5b$&EBXB{{Q0thyTC-Gciap2r+0dm@(KeI560O*MdZYXA80z z(ik!rQW)YGq8OqXA{actF1BXSVNhfcV-RHE0HlZ{Z~R~J|HuC;|Cj$i40h}G|C|4x`+w&D-v6N0JO}>2|9}1emH#jQzx)62 zKWMgxk>S^WEe1^n&}tb~23rPm2G9y3R|XFTPX`+xNR-TxQLRt$y=S_~!(8Vqs_stocB z91Jqxl*_^J<3B&czyH_%gZ2b~_Q1dXfA#;p{}2A(_S7~cKoVqjr-^#9d=W`;-q zU;qF8|NZ}4|6l+A{{Qj+N8lNz`~Nu@F8qJ|pNrwy|7ZU{{{R2~19&&66ay$`Tp7Oq zzxH2;L5zWm;q`xI204ar|CtyR7{nQV{pVq@W?*J`_g|BNmq8Z1!e5R7v?@)J0kpG4 z1-!=l_kU@IhyTSHzWrxmc=`YLe9ju|C=(fFo4#W{raE5 zu=xM3|1JzB3@i*A{#!64F@RPi`7$^%%=*9g|4fGC|8M?RXJBGD`Ja^`kYWA*7ys=U zWEh_Pmt=5cxbXkue^~~1hOPhi{r6)4g}fQV+5ZyYc{L}7YybcKcVl?W$6AN$e_uv>Hp>b_6#}9bgD1nP|L6YKGVK2k+9P!Je*gn0 z?H>Bi&k(?{>OUWYGsC(6um8XKAI@sc_n(O&f?@Xmum7DGPX0go-;+Utq2a$V zLpH;_|7ZR?G3YaV`~T*@6az1V0>hdA+6*7SYxEBP|My><;l+P*24;ra|8M;FVc=lc z@ZSy``|JK^Fl_n%|GzWChW|zk7ylbG7&A=y|M-76g9^in|IhvhGo1dv?EiFzm;YD( z4`N7QIQD<-e0T;D*r$IAH;C!zcoWNL&bjqhCqgO|0gpX`hWI+)qj5m z0fs&QkNp>9c+N2AKhOVj3>6F;|M&mbXNY9z|IfgX$gul=>;GzoEey8*WB*@cNM{K8 zzx=-qLjr?3!*p=W9QHu(900; zKj?oQgBHWL|BMU={HGej`-{_p*-#BiL!kKx+CPye|X z@BiQN|M&lj|0n*3F;p_>Gr0V(`7h4c#^CUOP|$S7eA` z@ce)F|4jxjhAaOX{wpwMGAR7d{Qv8JF2kq);tUK7FaA3)gfMV3c>TZepNDZ8gVq1c z|1}Id7;gM8`me_j%pkzP$^$c7LO8?dW2Q!E>KKSqOUyGrFVZ;AB{|y*s z{9pV3FT)N7h5riwcQTw{==gu|e>#HtS!+dZl8N=}I|I+`w3?dAB|Nr?9T2rw2zZ^p~gE+&H{~iop3~&F}|9|>_A;Z)E zNB)~La57x||KUF?!}AwI&2?HO) z+5a#92QZj1@Gw04zyJTM|LzQq4EO)H{dZ%CW;p(T!T)dntr&P1Zv7W!P+&Oy|LcD@ z1}TO!|1bYHW4QXi`TvLil?;vyi~m3WpU&|7|GNJw4E799{vZCY$)L%w_5Y3kUJT|8 z@Bjb!FT}vi@aDe&xHSUWo8-hG#&G&S6N3eK?eqKpj0~a->fA}xQpuuqM|HJ>x3_1+F4A=g@{IAKt&v5Dgi~sNb zfBw$|o=rUe|KopA26+Zh>r;ZkmEq_AhyTSGL>Raj_!wju7#Y6(7iO?#5M;RfpOL|V z!HVJG|7-sR7}Oa){{Q};m*F{BwGzYC|Cj&EG3YTo{eSj9GlK}j@BdH0t*|%$|NWO@ zU}HG{|G|G523dxy|8M;VwL-4{zw@7;;n)8g|6ly)VR-%j0(gz}&;M`#b23OVFoDZ= zbq3JB00{cBY z|4;v)gV*2O`+w#C@&70PgX+tJ|M&l2`hP9B{lE49n*R&_FZ{pk|Dyl%{&)Yc{y+Wy zy#Evar~I$^zv=&}|F{2(Gt@FnVQ68P#Bht@GlL>yA!8k*J)jB-qW7#}c-GreFm zW)x#Q!FYl3GlL(4H-iDgx&JHwm;BfK|MB0Cf2aQC{xkSj@b5c#G~@I?&Hsh}|NjqS z$YZExaA$nN=*8H{pvI`k^nlTe(Unnvv74cep^)MI|K9)0|8MxO{J-Fz)W6_=egBI8 zsr_UB_vi2Hzu*2E|Fin%^>4vH&i_mQ1^#3GZ_gORbbxUa!!5>rOpQ#@Oxn!0%tx5c zF`Z;u!PvlXfngh?5hEjm-+$--YyZXnbN=V@@7G_Zf5!im|IPhd_t)*8=zrJ$!T)Fc zmtZ)<(8k!#sK%Ja7{;`i=@VlX<9f!QjB6N88J99BGTi(B`v0o`Z2!yt<@{^^XZLT% z-?qOe|FZo1^7q2ueSeSq<^NaoZ|c9ie+B<`{#){YA>&-8r;JA#@|X&kRhYY&CNghl z=3qX`bed@nqYuLwhAzef3=aSI{yYEAzgPdh|6BLB@o(wB^#3#e z7yp0%KZ{`{125w@##2nSOwvp~OvjlFneH>bWIV&D#(0yVo8j<(Y48fzP5&JKJ^1_h z?}@)_{vQ7O{;%jim46BUvi|x0)Bd;gpZb5Z|NsB}{>S{Ejlqp6fmxL47DF>rCG&fx zIHo{mb>>c{Bqj@{RSenx)fw0rT^X+Yi~Sez@6+G2e|P-7`1jyn)qhd{a{s;k`{(bw ze}DeFGMF($GaP0RW%Op;$=J#ChUpNK6w_D6Q;ZWC!x{Yw<9J~VW^}o;mxc{5|PyKKI|N6g+|Bf-J zF#l&-!|;va1Jh-uBaGQhPRtfe*BR}YHZzv}7yLhsL6&jq|Aqg~{>%9H_%F*p&wnES z#Q)9zC-nc^Ki+>O|7QPBWe5fB{$Y5<@QlHjaV?_~QwCEf6E9OEqdTJ(;~xew#KdXN{|K%C-8A=(N8BQ>~U=U->Vcf#V&oqIlhiL{QKcgq3 z8RIL4+YI>(EB=T7_x^w8U+}-Af9w9u_*eMP_MhfIjeqn0G5**6Z}>mpf7E}E|0@4q z{p0-a@;~dp(|_jwOa4v$Z^Wd}9LuQ75XAI~=@#Q;MqcJxrfrP;O!iDx47dI%GT1T7 zG2Hye{r|&1@qd#468{zU3l)iWMo2xE+5T+6VOVFkm9|F-|L|4aP0{HOBo`oFLL8veQd^ZV!gul*m_f9wB- z|AYTm|1bY<{{Py)Gyg*VSO2&E|MK6qe{BC_83mZXGQR#lmyws*iph#`Hq$1ibBzBO zr!l=@c=zx0|5(Nj2Dbm=|GoZ4{xkkp_0RI(j=$aiy#K5GxBqAUPvZZ%|3VB}4Al&C z8Llx1Fj_G>Gfrd7XS%{9!t|ekkujZ7gmD2wDT6V?wEwyPwf@ifr~I$~-^YIk|Hc0E z{1^7G^xxHgtp7#+>;8}a@BW|j|A~L6{t5iI|F87_?!QU@TK}^!y<@Ut)MW@~ddu{i zaTlWqb2ig2#v-N+COrnT|5F)a7=Qd1`0w@q*FTwmpz+OTf6xBC|4;G%nt#9l=KVAL zfBruUgFZtt!)k^P4D5_@jGm0&84ohGGgUDLFs^1aW?av3gJB5+8^eeH-T&A9EBUwM z-}irO|KHoU_|NeXSZ|1*_|4$ib zGqHj84Kgt>UuA4zWM)odVqluhRLP{vkn#UFLp0-_|5E=~{kQn<|F8aE=D)pvPyJ>8 zFZn;{-`l?v|7riv{=e@3*Z-~z^$edGI2m6ua54U6Ji=tp6v;T5@g;cm3kPEtXh$Z) zkN>Cs)&KkRkNtnozv_QA|Kk3I{9E&H>A&iK7yc#v5Bksl|JA>H|1SOe_V49CuK(}< zo%*NpUzbsvshcsI;REAjrVor87!NVEGO;ktXR2hn#BlfjGX^C_Lk7^w$;kiH{~i3- z_3!OpmVcn#5;6ab{-ymp^iTAE&;QN;pZqstIK*&)VG_duhGxcSCP$_^#yrNmj75y> zj8=?q8Il;f7%CWI{y+R@`QPgQ(SQ5@ZTXk`FZSQ!f3yFE|J(Xc@jv7L+y8$2yYz4G zzpwvZ|2z2a>c7wbF8zD;znt+Z<1+?UMoFdzj9VC$nU*r~G8HmSVA{qwkzqFj591bw zECySKoB!Sa8~lI$FZEyazfJ${{@eVo=U>3T^nW}5vHmyuU-kdYe+~vq25*KWhGPun zjO!WG7-JYa8Pgc`7%dsUG3;ab!|<3viDAe8OaB-DkNY3=U+@3Lf0zF~{I}>|%)fd6 zZv1=j@6o@X|E~SJ^zY|C_W%F?iTyYJZ~EW-|DpdY859_wFl=N{V033JVvJ|3WGrCZ z!FZ4{p79>TVum9OyBQWRWHEqxqWAvq{GayU^1tzakN+Y6_5Tb1|NT$nzvutz|DFFq z{rdm^L49Ny22X}0hA0L{1`h^%1{Ve$24x0$1_K5y21y2S237`8n~06!*MHD{XeRL4 zTfhH<&M*P(O9PF0fKK`P^8d&GkN;nTTZd2nKm33H|I`0>|KI)p;Qy2V5B@*@|MdU! z|1bW({r~Ad=uE|5;B$X@7&5Re-|G57cX&;Ouv z9lrkm^#2POf<{3<{r~X)&HwlR-$LQ5|1bZ)1g}be@&D!j7ym)z>;E885DSDs@%t34 z=FR^%|KI)p@c$F|{LDY#^KCd7_!tBkK;a5%#j7%?f6>b0_%7Krr-Vl^8f4qum8XQ|Nj3E_yjvv1`Y;p1|bGf1`!5H25AOR z_$e`{FsLx7f=N(#D>BG~_xwtMa|fumBf=oUAjrVaz{|h|4PVe%EC2rg`47r7-@xGt z3RBQ&q#zf7LhQx==isqw5D6Ny2IUS=$bv@HU;Tdp4s8hg-T(LC*!lYZ8`zzoQB}~1 zIGo^66=M)(kYbQ#kYP{)rv_!PTR~x}!l1;Uz@W&W$RG{QHwL%PnV0UtYPhAI{ z#SJ=_29yRssqEeVcmF|WWq?BPDR>nBDR^}J88}sfL_iqiR#1v~@&EOIkdAlYxcK}Z z^6meR|3Cc) zoo@q*>EHiBr4ML)7INY%XsjAknusz;Fi0`TFo0aB4BnLsaUm$?l^B#6R2e`qFUuec zj(1R;Lt-3q7SR9yzyJUI|Ls30CqeQ($ORy`J^cUZ|D*p8|KI!n5DY;j;$yITL81EM zKS=fa|L?(}_Y-`sAu9tYenI&hloCb3<((9R9D^cwpD@H#Y7A-&8Vu?TAX*I^=O8!B zG01@Xvce34;JnVx06MSg@Bbg*bpG)_DBM7y^8~#9_}>5f|8IlKrMuu+8&GL||Nq1P zAXkIRYtWA65C1{s>i7RYz$@vQ8Q2&==U4E8^E2oS85wXM0p$oq29V1jF$*D;8DO~@ zltMve5X4>L3`q==88{h^|9}2}|9>V1PKFo%PyE0B|L*@M|HTTj0|A$$yZGK(!924E_55C-}@HP(8rIAOtQ;K%)zwl1-XHnn9L9o#%2PBh!VaFa2LA>x1je{Kd|hQj|#{=fPE_y67h zSN=cwugYM>AjiPN@C!VWZo^>BAj<$cyC;~TgCT*jj$z0D{{Nr;^D`{|zw`g4|9Af% z{eSTPhW`)$n=r64h%%i1ugviCe+ok`Ll?tGhGPur414~s|DXRq>3{S8ng7fGYyWrs z@Abd*fBgT<{}=zC`2P&N7W>ElPyazPi*5{R3=RxF47v=449*PB3=Rw)45|#04E7A5 z@hwXRGX_ltdxjuz4WZ6p0zS3bmH{+7!o~3C|2c5o4Qg+IMrkkqKkT|WWB0RVYtOGk6|{0GGjDjFk>O(4#s(m4;lHHZZK*yzGq-ye917K zp_IXt;s5{Z|5yAs`2XeK`+w~J#r})_=ld`I-}!&~|L*^w{WFCOz2Lp$uNiJKJY=}d zAjrtZc$Z-jLmh)HgCfJ{|Lgxp{tx;KpBZ_>Ys|LXs>{+sr1>c855 zQ~%BTckth{f1LkA{}(ZIGTvZpW8`6SXR>GFXDVPaWHMk1W%6UnVqC}&&tSlC=l_cT zjsLa&fBX0G-^_nz|5X3w|J(KN|3CTvcK_4}V1@89Wv%nb32zZq9Cx-s=Ic`>OlO=ZeuGGLm^G>NH;F@r&p;r#zd@YosW z|C9eN{Hy%;=I{5vVgL63Q~IC(f8qaw|2Y{97%~~=GiWdtFkWUn%Xpn}BjXxITSjKa z=L|;~LKq|%_Wk$!&-VY@zr+9L{+se|*1tLb_WgVFPx8Ob|MdSI|GWPe{SW-F@}K+v z&40cBoc@{q)A*S7JzG=w&#>z|Gjmc!=>m;||6(jGc_J zj5ioM7*ZLG89x1A^56FVxqm1Ao&2}s-}-;&{yqA~^55)#giWfEg9VY{gQ~w?R*YnT!U)aC=e-Hm2`m6VE|38EOm%($4GZ~&Th%;(1)-xVr{LT1|@hW2@ zqc`IdhEVXCX$${b{O9?9@86n#3;yl?x9i{4f8zgr|A+ja3wDthgCm13!`J`o{yY9Z z@-OkDlP)Bk7x ztp73pv-o%I@4mlM|8)PI{VVzJ(7&kv&;HjjykSse3}9?#T*tVYaX;e+#`la98SNQW z7?&~p`Cs?H>A&Rvv;WrpyZUbe=p>$h+W$@exBkBZ9v_co$Y%&;aAI&~`160pf2RLc z|33Yl_4oUq(|>mTdH(0nABTUd7z~-Ln7Ek(S^hHjFh6Gg&CJgHpGlbc3!^xL$p6xR zd;gmJE%@8|H|OunzheKG{>lB@_HV=gSO$K^4#t;^{~5nC{$%{ic#Ls1<9x*q@buw*0C2=gBC_EY7@}`6J5#7C)A777rFF=JQPbO#O_}|Hc0W z{(b)^<rTakYP1L9|LG7^_Bn0|9}6>`FHlO z^xqkORQ|mGE%>MO&!s=R|MoL{W%|JUkGX+$HY*=%C(9z1V&*QU=ZrCov;RN%yXsHm zpEJMT|L*)_{I~P3%|HJC3;$~{oMt$|*v0gUiJ6(5c@EPL#%YWijBO0O3_Je&{y+F{ z%D>)!760u1_5V}OUOV*cI# zYx=k9Pt+fVKlgwC`~CD!#$V?DKN#CtlvzDkZQ1s){$fdD`OTceG@J1ms6P8Q@lWmV zwBO#pHU515bM0@=ze)e?7@jk@GJa#6%@o0$!)(R8mFY91Bx5+|>2pX@*7 ze}eur{$c(5=*L(7!K#H~*FRck5r}|L*@O z{}=qXW0=Ok#Td+3!05)9$>_j%iGhz{%KzB^DgUMapZb^gPyOGszbF32{eAYQ@lW-i zvOh=uX#BnRSK&W5(=V13HgmQWY$9wQSY|S>XHsN*`QPyW_J7%b`TlVKe*P=`_wqkK z|9buRVJKl#WID+7is=;76sA2)>zK@#3K%;X8vk$kXY=pl-wl5c{FVQ=`QMEH#SFa+ zZVcNQd>IoN>lr688Ze$>*v^p2@c6&Q|84(P{=4yS^S{P_ng1OBG5*{2H|+1lKUIG! z|GfTF{a5N= z?Vr09x~ivc+23&Sj}k7 zc!OacLlVQE|B3%^{+sY``oDGmR{xv!&->rszl;9H|GoNW-Jkh?-uwysEA_ANe;-pl z>j}0_wgYS%SS4AuGOc1%VtDf}_TP)YI)6F-uupMCg z!kWgy#C)64nBmkv?tfeU>i#wQllMF3_y6CHe;@pdXXs<}VYnfysgCF=Gqk zM}{hf6aR1j`~P?0-`RiF{{8=VFYMx{TtCGZ+{cV*mgB zclqDje?R}d`M2d?#J|sftN*_EQ}8G8Pvf7Pe_H;g{QLV~l=(92O|}_q^Vlj`IaoTF zDj2{2-}>+I--Umr{__0E`(5}u@K4WQoBzuhE;6Pt9cNNvmS>*I#Kg3g(UtKLLq5aF z|BwEO{9E~V&0o=fpZ+N@+-11Vu!LbggCBz(_}rd(3^y1qF-&9-Vo3OZ=il>x;{WCU z8~lIq&->r(zd!y2{gL@&{ioy4+dtd?hWxK#N@HElmdjShR>$hb!oqCCbdaI?fAv4% ze+hqG{}lcX{r%{-$lophL>P1!A2GTzZDM-H)X${I^p$ZBVYm z_3!Avp#RhVpZ&k?|GEG7|NAnuGMr&}$e_;1&3Kz3h2hu#ivNE9dHyr~Kl`uw--Evi ze^37@`{Vg1_s_gP5`QoKJ@EfLlQ*jsTNYaln-{A%%U32YrgDbN|8xE&|Ev95^=HfP z`M=rzDE*!LkAp#oaUY`=(+s9LOb$#R8Lu+VV$5JvVeDi$_h0n?)qkh{N&eUSZ}9*5 zKdb*v{}cXC{%^@(%h1j6gTa-NgYg!45AMGIo&T-=YyaQ>&+*@ZzwUoG{h9u!{?Ft; z`~L*|P5dXoc$C?RwStwAZ9VHImZi)GnHm{Q8LIws{_p;m{?WsIP6F3$g7{U3C;srvuj|0evK@o&OE#{WV8H~xSA z-;-ej!#jrA4CxFB4CxF$;2Ghh|9Ago{CoB{{mn^~6mAmdX84u(np-~W^UC-ZmPpXq=8{yF;h(7&qxzyFso@G>Sc7BJQ@ zb}`m4_A*XqjA7(p+{aK1P8*N^+x>s=Z|c8E{~r7^`mgmr{{Nx>tPCy;p$rBL3JkFf z;SAOcj10~HU;eB3_xtaZzm)*Y9&HkPJXa9fhe?^7{hD8h;7)~<0VbEaAXG~#?Wh`UN zWaMPL#4wrRDV@wyAPB5i2*)i>8Okn)SaGs%uL6M;Wocj*^ zyYP?czwv+n|F!>*{{QeFw90~?!Gs}`VHU$<1_4HKM$qXbKN;E?co-)BFa1CD|J?so z|C9fx{m=Yg|G)fy+W*A=GyWg@|M>rf|GocR|4aV=^6%`wbN|l%JN$3kzeE3S{xkgl z_Wv#hNk%osM#i&@7a2D(&Snf?)MM0RWMRC;u!6yn;mrRX|J(it|M&c#@jvQ+@qf^1 zu9N<6`hWMo8bbm@H^V%J9Sr*z_ApFk2xSmt`1N0iL7PE>;rah9|Cjz>{(tWOrvJ(R zQ~uZfU-5s*|LXtF|26)r{@41i{9pdR(SO(fVgHl<=l!qwzxTg3LlwhZhFuJQ7`Pb) z7-boy85tOVF}z^d$*_Q-lOdYHnZc1kmH~9a^O^sv|F8W&_y3Cj2mZhP|NFlhg9U>= z18C)sFasBOqz^P|q{|@506GKk33z1u3RVS0StcNoh^e^>tR|G)PC&i^<6U;Tgd z|Ly;vvjuN~$9jMK2c;thhI{{?|NjGqybNLtk_?gzX3$l_>I_m0stj5T3Jm%TdJLdB z0MM+2GI&M@G;borAkQGez|X+R0J=lt*Z=qbU;Tgo|0#HV@caKSz^igWXAVC6|MLGQ z@JQ-||5yKm)+j&x|NB4ar1Ve!L8lpi`VSf-2CWPRjmh#eh%kU|=&W{D zhEL#?;?MuT|Ns3z=nff>y`XWnC;#94hm8G!W?De!K!SSXpm_z*8c=Qq&`cE%1IPvj z2GEI`AbWTjcp2CkIKVfdf^H(^hOV;)sRNxd51M0R1&_Ca&e;d;cwhwIAqqNG9dsW6 zXcq3z|G)o1C(46H`Cy~REZ|Xd(CPOq44^x4K&QS#W_{SecU(f)tPBtcQVntgga;y# z0txkQwj+| zkPRRV%5xwZbhbX|{CdzzVu&pu7lAOyY>;kH2!d`W0G)IX8qxm$A7no$Oh9@W!0YZo zC+LID;0J{p=uRF;Xo2hpi9&7{0EH*W^`ILfLGqwk8W1033P=?woIvge*#Qb)5C)kG zy2XHl;pcylxuAOpAmhX!vqASSfJ^|1LR<@qq5t63Yao|{{0BO{A0!8|1!NK^R6z4@ zAU;Sh#3c|FATvQWf-q<|0VqsBHz0sa1%(30-;l5Zr2&u%5Dn4`3LlXFAZ(C1AXonT z4^acM17s%1hafXRF#*D$n~Xs20o@V-G6CdXh&o0FP-w%{g5*Fk0>Y3`0m*}02Z}Ke z4YC{JLKq2i3B>IXcYto?0Nttxat9;~KrsV~v%mjAZUKcENDhQSYC-mbdh3gfy6-m0?lHB{08y`DAj^o07|zY^FVq) zb|biQt+sZJ!0q5{#SBOdNCc!85(Xd=lp0_dl$&8HKs3lrpwI=CI3PAi zCx`}NP-+9EVh(8e0Gh-9|DTV6iQxnInHc{32gM>J^?_`Ih=Sq;6!Rc)kS{=?0ZA($5lDIi`4i+1NNxnhHb@0% z<_shPifd4*0P-P7H^}9numa^vn28`gAU-IZL8%dxwn1W`v<6C3APmwA5d-N4u|OpN z$X?^(g*TA2!rAiR62viL8TW+jD-PoJ~L0P+c_mInC{6m}rfK(2#ekhviHK=XVczk~b(au>*zkUK;`HiE(* z8>t7}YZ3bxuQwCjzI))yGG={|tLJW!wpcBv>{_Fg&`oHf# zGlLI<5rZ>>Aj8T3C;rdRF8DzloP(S{E`2PZYqBH1xIZ*BX z9XuEO9=vkn`#2Dlme*Oo|4S`x~91Q&6{Zt>pJH?)X*DZ@Ocr$=jlkhQs zT7eJ$gX|Mw&}4wD*j8X*X1M+zw0Zz^vdzQ)iVO%&|IHa} z8Gii-?FCu-zxw}@|7;9$3_1*Y3}Orn415fK{vZE;r|C|0F`~U8L^8fe$!x-!sR2cLa7XJVAzw>|b|MLGK z45$BdGdeMZGl(;M`9JCZqW`h~Wf+byG%&<~Z{U#oZ}5N8e|LszhGz_Y4DJkW3@m|M&hoFk~>eF@Wa2%NaiYXJe3MX#5}cfBJtx zhOZ3k7^E1y|4;ZY$zaZKoJAxBUO%Uk5`z0~3S$|HuE=|DVJl!eGvj!cfUj{Qubh zSN~fX9{ykQe;&g;hGqX}{%>XY|6hP%#{V1t5Bxv=f6o7!|FI0(3`Ptl44ePI{eSMi z2tx#e3PT;k?f*;u2QVD`AI#`>{!e6h@;`#19(?-Qq5n1v z;tZY)pti9QL+gKihNb_1{6GKy%6~_OuK%$NkqiP1tN$e#?e|?6n|Ctyz{WoCnXL#|yoFR_k?f=XFZ5Vd^|Nmc;VI%l9osa+389?jYBpB2g z6c|7!>mB(Y#qjb!8+eBZXhnl1gU|m=hVTE&7(V@9|Nq8+ErzfEl^9+J8`tfKHG<_8+uwR+d4KVdej0|5X_H z8Tc8@8FUyV8Q2-_|3CC!fZ_gs8HQuvyN*HUg`W8jI(z=fe?f-Z|9}2J|G%5z(SH+$ z>;Ksq+!%xy-uzc&X#IclKdAojX1MjAmEpkuUWT3j0~rJuK=%}_|If+r>c0!a>Hp`! zqaQ#1*Me^%dJ0~Z_xV5Q6mENlm;d+tKlne6;q?D!|J@ku88jH)fNo9sfBb(C!-M~p z3~UU)|G)l!`2UCh7ylFD z{O4rgU=U)s^S|f+ssCjRr~aS+ufkx!V9&tA@c94z|H2G6{_`VE3{{Q@c@jnBD5W}PYC;u}s$T3{{uf=fqzbM1)|F{1C z{4dPlz#zk5$ME$3xBsXAGc$boFU`Qt@c2Kdcewq(14G*XDuyZl?=i?TXfoXU&&aU) zKWK;Jq5pCWq6~=)-~Ye+KmETG!B0Zf4DbG5{BOYU_rD?o==|sB z|GWP``~UdAG6Ofm*8j>3LJSZ7>oB-6T>US|aOQsl!3}^mJG5q}R%)rI)?!O>I z*MBXBYyX`Xmi}jC;A3!O`1`+-;oN^l2GGvo2!^`<91O?)|M`FP|K9(R3_t#BFlaK| z`me-r>py6foFW4=!-@Y!3>*I2Ft9LKG5q;2!tm;U&3|Kt-T&Lc_uBORPh;5eKbT?n z{}~Ls{x>qL|Nr5?E5p41ehg;+6&Pe0{`_}mxc@(k0d%_;==8=(|6lw+{okA6=YMqu z(EeXg?^~bY%Krd{tN-~KR{z&z0F~gNRc5u5B?i5XfQnbfAjyl|GW(E{y+Ke$?)y}<^Oa4Kl{(fAjx3Dpu+I? zKPv+-`2K^3|E(AV7@`=&!S|S5`ftMU;Q!D6TmCCE9QuFwKPSVf|5*(C{@?yT`+p_F z)Bo`dfBwrdC^3NcUjFzm#&GxltN&~Mb2G?+PkIKm{SW&Y{wFi+`k%%S{y%|X^8XNq{{I3DY7C$Lt25O6*I~H% zKaXMae?A6LhX4P$!MB7>VE~<>`u=~%e<6lL|9u(O{EuMZ0IySh`TyI0(3+WB|9AgS zX9)ifNN`Tw*3$_%&u-}vvy@bkY9L;wFUhKB#3 zy`<3$T@0)L`!SgRPiJ`WpPAv~e;I}(hPD5>8H)eE{_nzI|G$9Y>i78 z0NuWp^k0u*+5Z9td2pWp_5bhx5C(hD{WJf)7;64sWa#++=D!5PwEvn6hyVLAociy} zu;t!tq8X$a+!_A;Kk(m=;n9CBhNJ(#{x@Z)W{71t^MBI+EB}A~ ze+J%}cJBY#|Hu9x{(thnKf{mz5e)JSEDV$X7c+eQFTn8X|F8ez3>W|NGA#Pf&LG2Z z<$n~ztpAG`_WiG8*!JIq0d%w8lK=PqpZkB~zdyt8|11pa|MM~MG5r6Z$#D2T1H+#G zptS$zzbM1k|9Agy{9nYd_PycNgKx>QH7!Lfu{r~fSM}}Ab1sPZwrZcSi zKZ{}C|1yS!|2O`ZWO)8xiNX2*$NvHh-VAOG`~OQYh%z`ZwEY)guxAKi`10S8VebEK zhKK)k8CL%9`fto&^Ph!50K6~4kb#Hc(0@mUCYd zo8jJn2Zrwd;tbpVhcjIHfB66Q|56Mh3=9m-3|IgAGfe%zm0|z?8it$y;u(7Wn=!=y zU;5vUq4mEVqZGp-hP3}442BGr40`_q7ocGVJ>w#sIqStoHwf|4;un{nuqMW|+)i%JBF9 z%KxA?@;V04{We|yC;jjJZ~Whj;obl13OAI`0vW_ z`TuH$NCs(!SN|9M4`o>Qzl0%^p_IXs;l%&x{~Q0e|CeUC`2XDhXaD>D|M~y+|M&ly z409NsFeEW_F#P|&?SBaPbQZt=lmEZ|zv;gb0|P@T!~OrY4B-sl|9dd#Fo5cZH~)YA zKmR|1L6YIs|J&eGQ`-Mu|9|nn62r;=F${nH&u6e_0IfOXW$HpvVfA>Ftfr~+(;rIW8|EK>KVtDz#lR<+)mtpaL zP+In5c>n+He+AI`1%}K2%^4p4=VZ9~f7ky@;Jbeg{J-{p?|)T>@BiBwOc?qZ92x%n z*JtozP-Os}-QM~C$bV2dIt4t6|Kb0g|B?)*4DAey7<3pww@gYi-1rY#C2q*@^#8m6 zptGb;{qOoei=K=C;q?uzv2J$|0)b#3|R~&3`q40#L=4Dt*y41Np| z44?jk?sx*VEJ15Y5B@*-|JDEM|K9&s{9pb5^#9A?w(^tzG7QEHAq*J|0Sr|P<_r!D zd<@JC;tbpjVhn%&t1$2}fOZ;R`Ty(xk^k5J@B6>^|Nj3+z~{6)|If(q?mq)VJc9)T z=qAqp|K%9|{5ND^X3$_zV^C!`_+bp~m0`+@c^8d~M`#?K}{?GqE_5aHM3;!?u-~B)0f5d;^|7GC$yzKu4|C9gM{IB}o z_kZgDeH0li86p^x8Rj!QVR*&B!pO>~%c#WY!05yn!Dz>5u2&G?7m2E%@a zsSHUBdJNzHpZ(wezxco3e~14<|C#?k`giQ#?te%AUHEtE-{F5p{vG>w``_z-4F7-q zVH-LlK(0E`~3IuU)F!t|L6U`_P_tXGD8bP4g(YDJ{iV^j4@2rOfMN1 zF0U?*G02eHd0VtYf&zu!3PG!zu;=#+M8m88$O4V+dh*|9{1Qwf~p?9r!otpU1xs ze;@rl_IKIerGHodo%XNh|Gob^{-66_$B@SGf}xvHgy}P*9n&eM5~c@?ZyBwb)R-ig z449TNer1@(Fo8jmVaNYD{~P}s{eSpx{y+bJ&i|_aE&Mn2-^zbi{$2a`^IypS+5bQN z*I;O6Si!KEVF|-dhT9C^7}ywJGR$G{VqjpH`QQBi*MIZ=Rs3`K$Mf&--=@D!e|P+S z_pkf^j{jNzpZ!l}NMv};(8Tzf@i}8Q(|RV*9@?*rK1^y%icBm_8I1QBrZO}z{P@56 z|Dylp|JDB=_?PsL|DVji!heVU9r?HA-@b|q%+7d zoc!qfq#Af&iuRkU+n)G|EvE0{9n&7pFx-LCZi#fEYozR zPfWE;l1%nYolK5Q3QPh_`HW{6N*Rh6UjHxoAN*evyxPvnGBeknc|s5n8cVC zF+K*brWa;t`0xB*_y6;MY5xrW3IAjIXYgbZT>s;Z{1&?zYc%5{$2ks z13VJQ&9Io^9z!zYM@D-lQ>GY4nRxS3utrZOI4NM(p(c=6xszrcT{ z|2zJ9{8RZS^H1@g>%XRdGyiq{+x}1af8PJ@|1bV$GHho!!NAC9%Ba97<iO$jHa| zgW(=S4FfO3zW=HJpZx3m=k)K}-^JiHS@nP2{>J^4{HOH4?f#QzerYQwmc!69?0K#=VTHLfS z*Yj`Yzit1x{`>xK`oHtPDMKH_S%yapB8vw znUa_^ncgv8U`%B^$&k$8#&G?=_y3>&UjEzsFZrM4Kf{0e|J?tT|C{k|)4%)wjQ*GY zU-19^|5Sz@4A&XHFz7NGFsd_JGP*NzFy3T1%+Suj&#>`-!@ukQD*lE4bN#3D&){GAzlHy%|J(SF{eSrX=Km-D>oGJk>|%Jv zAj7E3D9Wh7=+0=*_?6)t!)yj`hByBg{5Su<=U>7<-G7h&&iUK=xBPF;-`u}<{;vHO z_`l%)?Ei)g2N<3*xG-L4RArK4YGHcLw1vru$%84KNtNj;;||6g##;>a44`p~@c(@O z|NJ}hFXNxzKc|1r|3d!F{5R|0%71tNng37yKl%TS|Hce+8SXLsWZ-AiVU%K&U^HQr zXS~X=kzqFY%&XG>od0M2^ZTd%@6z7|e`o%k^0)YJ3wXU;#{aJWSN|6?9A|jJP{R0% zk&Q{1X$8|&rV1ttCO;-ergw~I8J97dGVW%mX7FS<```ON@Bg>|HvLQam-x@&pX0ye zf2;m&`nU5R+yCJIZU5*0fBoNqp_$wjO{)PVY`q%dF$iKD!cK;LjpZ34? z|HA(-{~Iy1Gn{7l$soii&dA2d!zj)8h+#3qbcPBBHHHiS+x~O>pY$*EpYp%Ee>eR- z^mp0cX@4L5UHMP@f5`ua|8fko8P+o}Gxjr{VBEo|!!(a6k4cQll*x} z`~2_!@5<1_u!cd3aVg^r#$}AYOmmp@nZ7gHGU+g#Vcg2Nh0&hzD#JF0=?uIK)BcD2 zcl!U~ALu5;j(-vV3jeMDck|z|e;@vN|8M?3_5b?+um77cv@#rJc*XFKfs2uYk(co; z!$yWah6xM_4AKnO|JVNi^>69F{C^7nPX9gn_rl-JfA{}Q|Ht;<>A&~?-T%WGiW%lJ zs4&iBY-Zff7{rvp^q=t!qa71B({jc&jEfny7*8@B1MSWKKly*be~)D#K?69!5?^4sbi5ouQH;kwJ^$)&B|q zRsQe%m;X=g-|fHG{$Bli^6$~VIsXLy2mE*czvRC+LlVOT1~$fi#!SX3j3!KROkWu< zG0HMAFfC3?Vc3I31% z-|!zaF7V+0_x}zIYZy*3+-CUAz|F|c_?Y1&LpMV*LnwnQg9yWp{~7!4D%S;!D|s!86N-d{_pVr^S`!#djEd?ee(Cz--~~_|6TnT z_={n~@BI%tYgXX@`+uMR?fAFq-^qVh z{_XyE^Pm0yX3(k6;2Uz~87vqI7^X6;WjMjW!uXBhB*Q9(%?zOXlR>-j&VYR*@W1Y# z=RfU#zyI#|d;4$FKbim4|GWRU{^w-yWN>E4X86G%!zj;qgi(v>I%5{&2FAnS8*7po z4Zv=>#1P1E<^Oc>{Vy{A+5WTszxD6nzx)60{oDEP$Ulw$1^=i2-}L{>e=!CJ1}BC< zh75)Y4BHu=GW=k;1>TuAjUkdjlR=W<&HtVMXZ}z7&+>ofzodVr|JeWC{QK~41`7OE8{VS5Ju2>!oG~jjC&c=82>OBGHNjHVwlVDiJ_O_{r@HZ*Zpt&ul--{ zzvzEZUyAKN`~PeI_W%3$&mVjP?osd@lpjMcLpehc!vu!C3}+dRFq~mH#&C{dEkiSd z8-pUl@Bh#LpZh=Qe=xMf%=qW^Pw^k;Kb3#${^kGQ^ncC&o&Vz)K&Ne&GH^0}W8h>w z%qYlI#c0d8gt3p2k?{|MHsfuENeufKHZX`V?EF9f|CIkW|7HJk{uliJ`QOif|Np)J zcl6)0e}?~K{-^$*_W$934h9Q`Y=-F!)eO@awlkb&*voK~;RwS~h8+wG7z!AC7!(-3 z{=f8p&;OSH{{Qv<|M|E2U-7@Vf7bs%`{q{vO9GG29R2UZki!tgP|EO`;SU2N;{wKy zj58RW8Jii)8F?7LFt9UTV3^3Tf?*be62r0oQ~$U8_x`W+pYuQWf5!j6|8e~P{_oDe zJO9-F$New(-}C>rhIWPp43`=HFuY@iU;m$p;n{x$h6aWi;8vL^BRiun z;}ymyj75y@j9HA9jGq{uFkE4n%uvM8%HYfJZ+8HU6{x|M~CNzc2q-|Fi!8 z{O`d(zW)LLYyMC8f8_tK|8fj=3~3An48;sf7#=Z*Gs-ctF;H@XhyQo}Z~349|AT*r|4si__pjw&?Z1G35&u5?oAw`c)3gCY9YZI>T82jq zVvPS8+!(hqUSe!x3}=jF)Mot4@R8v>LkB|!Lpg&F!^{6u|406J`mgq1;s2k1AO5}h z$Mm23|F3_q|9$wU{y+Brg#Y{hKm5--n`&-?$*zlZ-m{$u`s^55EjyTG+~)c?HylmBn~4;qPAU{Gi9WN2bI z#PF8k7Q=Z4(4C>r7_KrLU|7j8nPCCLWbm1yoD9GJU;n@F|Dyjj|8xI0{4f0P1HOGN z;D6r#D)8;S%m1JL|LFg_|3Ch7GZ-_(Ftjn0GvqVmGAv+Nz|ag%+e;W`Fl=V%VF+Y! zWC&)kVGsqM9{?Kr+55lqf7t(^|6c!{{~Q08{?GjX^S}H5X8tSqXZKIzU(~;y|JO0( zGl0&FRb&L+{`rETh;c7N9^*`=PmGfpPBYA6e94f@pvd@zL6aep;XMNv1M`2E|Aqgf z{~P}={?GOQ%0G_(`v2elTlw$eKhgiS|JVPY`@iG=wEx%t^E0S3STeXUbTFJ`U|_t& zFomIyVK2iKhAj-67$z{3F;p@1GT1VJ&LaN&{~7o;#NPiY|2zIq`JevZ`+p?3rr!L2 z-v74${r?aA2b~%G^*?9^){eoS!4bSy9CR~c7eft00YfrF0Yf%}FM|PtI)ed&27?sC z@Bg>|ANdbjCA|TBH{`1S8~$(ozwZC+|4aWL{C@>}4hzUk&|D_y1RQAwJqB9_7X~{9 zYX)Zq4+cL5H}EObpc{+K8I%}=z$Z~KGkgM{o_yo~Mevz2yZ`U`f9n4w@TuEZ{)1-r zzJk|ugU(C_t;QAwpWdv-paDKFM3F&>K?!`%JLo(BSq3QvK?cxDQ$_~RD%~&O(^Ej} zdqAf`JO-}>1g!;s_5bt#KmS4ZRi-o8F|aU*Fk~?3GN?1SFa$D4GZ-?YF^Dic_|MK@ z3tqDe@+G^22%zN25tss1{DSu24@C4@EPhV4C)Mg z;2Z0I{s)z3pfS1~|M&dA^#9WTL;p|ye*<3S1UjGN`+p$@(3rX!gDC^(oE^}e^bX*- z@MN$8pZUYfz{T+I|C|4}p(p4Z{lD%1w*UM89|xa>e&PT1|1bZ40k6XXotzC?Kcm7R z#h?H_w*_=YvoM1Y13v=?!yo9WFJHko(Y*$rDFT|!|MQ=NK>&Pu2I#C3IR+*0nM9!T z859|07(^Jj89*!UKDxBr7qlK=MKm_d(0j=_XMmqCqzje(y5K@C^de z3|!z-o4$cZ%O8T*-`)Cu7aWpL{=fPUI(Y+hmdtPPdRs;Y&^lEn@OpjF$rhk9e?Z|6 zTHgUWJsfma5-6Aa_zzm4$;}|nV8YA5XunD5YFJq09qgC z1U{`@l|hE#)Bl(Mum0cmf9d~C{}=yn`d{)t^}pYL$N%pCZT=hoSN$*WAJh`u`)}?) z%l|G6OBr+-&i|jyP{I()aE@UkqXwfV!%v3C3^5E3{{LaPz!1ui$#8}tkO8zmMw{XG z|NZ|}7~~kv{eStNf#LoCcmGuxA{h+9=l_FNjePpg$N;)w`2PPd|9AXf|9|EGssEe* zPyfH*f64!<{}cZA{h#!I$N#JUFaCe|AGB|Pi$R9Liouk@iy??1iXo06m7##4nxPqd zuWt!M5<>(-B11ZZKLaS_Z5Winb-=Ixpi~Z8pLp~CrT?e@pZb63|MCBa|L^&~_Wzv! zlm7So@A}{Nzy5#G|M34#|Be5v{TKf)_@C|n+kdbA`Tqa>A9NO&Izv1|IzutT1qLU^ ze+(-a&M@3%Si;cH@RQ*U!(N8X3^y3s80;B5KqnnDfY#D+GJsCFdH(<2|I7bh{Qm)7 z-?R7sj{l$=2#)>0-2Vsvzy5#sA9R1h>;ISjU-*CL|C9fF{$Ke23w(+{FM}2X z4}%he6@xy5D1#BW6cJWUydpVA#Nr!H~<)%+SFg4n8AB9(;GiSMW}tFaQ68XYWAv z3Nifn|Ls37gA9W2Qj%o)@fI2b^uIKBD*@IPps5$Htyr{LW(cmBTypNVzj z|E2%e|KIz6^Z&X3*Z+ggu-Wy0+5d|FssE$?d;K^1FZEyOztR8M|DXN`?eNfLkY+Gq z=w!IWu!|vup`D?bVH!g#!#Rc>3@aIyGVEiR#o!0dGtLac3@Qu^41d6T%6@`Re_>}3 zWcdI8+5g-B@BIG=p3erI$^+V0^5g&8|Ihw|PVoVqDR%Tf=(KUr>0_WX&Oocx&O^)3 zOaE{GKl}gm|3m-R{O|i;`al1F;D68mhW|DGTmNtWfByf^|DgRdJPhUx4GilUrZHqO z6f@K_OkT`}g9n2qg9do@Ei?1dTfwt!ptYEw6Ll{C2c3lmy0rmxcH4>nd;f3! zzx4m?|Ly-X{)hj!{%`(Y`@j4DwExTgKmGp?d}D(-Lpnn@Loq`FLnuQ%!(4_<3_BTi zFzjGB!ElXXHA4$SK0`J`0D}{QI(P?=5rZ~^GWbpcF$P%%CI-+t->=}?Cs-Js{C^KV z1q^ha@X`NU{~!Io`~U9$YyKbke*t`7>*fC!{@(|m41D+hdGL)JxBegdzyAN?|5N|h zfX|pQ{|`E!&+LEL|7Bo*T=@U}zZQcx188+$5JMzG2g4eMgAB(Qjxbzec*O7se3Nn; zLp4JdLnwmu9|xBg zAiEcV??eIJYH{rUk^kra-vG~ofpXdT|B%pI_kaHX=Kq!869!%X+y7VoulGOs|Hl8I z+49r>Km506NM-0?Xke&e$YNN|aD(9)!!?HM3=bF{GdyEB#;}^9pP_{zjUfQEzJWm( zJl`nDAPhc-iUE8kG^q6iI^pcW|J(mTx#&80{&e&I4gYuk-|&C#|MmY5{6F-6|Nm3} zkNv*@K4t3C|7+lL?(Y0Q`~S%Qz5h4;pZUN0fA0Ud|H1zw{=57)`S0+*>i^#Vcm5y# z4_f)+!jQ-i#}L5~$})44Dj|TN6MxHP|rdF@W~L z88iI(|NQ^w|H2HQouaS*U;F>)|L^~w|DXMT=>LxYTmJ6>_X_6x-}-;g|E=Kl2)qBE z{(k}NUQjN+`v1cJeP9=E_&?`=$N%*IvH#P-E_D9y^FRCl?Eh!}pZyOyV@r;~l_8QL zogtQ?f?*!RUWQ`~ml&=v++%pdaG&8k!w!bk3{x1o81fim7<|DsrzwLOgE50Cg8&2Q z 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 literal 0 HcmV?d00001 diff --git a/taskcluster/.build.yml b/taskcluster/.build.yml index 96ba300c..ab79475b 100644 --- a/taskcluster/.build.yml +++ b/taskcluster/.build.yml @@ -24,3 +24,4 @@ build: convert_graphdef: '' benchmark_model_bin: '' tensorflow_git_desc: 'TensorFlow: v1.14.0-21-ge77504a' + test_model_task: '' diff --git a/taskcluster/darwin-opt-base.tyml b/taskcluster/darwin-opt-base.tyml index ff405121..7210ed10 100644 --- a/taskcluster/darwin-opt-base.tyml +++ b/taskcluster/darwin-opt-base.tyml @@ -37,11 +37,7 @@ payload: maxRunTime: { $eval: to_int(build.maxRunTime) } env: - $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } - in: - TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} - DEEPSPEECH_TEST_MODEL: https://community-tc.services.mozilla.com/api/queue/v1/task/${training}/artifacts/public/output_graph.pb + TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} # There is no VM yet running tasks on OSX # so one should install by hand: diff --git a/taskcluster/linux-opt-base.tyml b/taskcluster/linux-opt-base.tyml index e4c86ae5..4f7c5fa3 100644 --- a/taskcluster/linux-opt-base.tyml +++ b/taskcluster/linux-opt-base.tyml @@ -33,11 +33,7 @@ then: image: "ubuntu:14.04" env: - $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } - in: - TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} - DEEPSPEECH_TEST_MODEL: https://community-tc.services.mozilla.com/api/queue/v1/task/${training}/artifacts/public/output_graph.pb + TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} command: - "/bin/bash" diff --git a/taskcluster/tc-android-apk-tests.sh b/taskcluster/tc-android-apk-tests.sh index c2a00afb..fec910bd 100644 --- a/taskcluster/tc-android-apk-tests.sh +++ b/taskcluster/tc-android-apk-tests.sh @@ -7,6 +7,9 @@ api_level=$2 source $(dirname "$0")/tc-tests-utils.sh +# Android test code only supports 16kHz and hard-coded filename +ldc93s1_sample_filename='LDC93S1.wav' + model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") diff --git a/taskcluster/tc-android-ds-tests.sh b/taskcluster/tc-android-ds-tests.sh index 0f5e289c..ec96dbf1 100755 --- a/taskcluster/tc-android-ds-tests.sh +++ b/taskcluster/tc-android-ds-tests.sh @@ -7,6 +7,9 @@ api_level=$2 source $(dirname "$0")/tc-tests-utils.sh +bitrate=$3 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") export DATA_TMP_DIR=${ANDROID_TMP_DIR}/ds diff --git a/taskcluster/tc-cpp-ds-tests-prod.sh b/taskcluster/tc-cpp-ds-tests-prod.sh index 40384849..d3e1db2e 100644 --- a/taskcluster/tc-cpp-ds-tests-prod.sh +++ b/taskcluster/tc-cpp-ds-tests-prod.sh @@ -4,6 +4,9 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_PROD_MODEL} model_name=$(basename "${model_source}") @@ -16,4 +19,4 @@ export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH check_tensorflow_version -run_prod_inference_tests +run_prod_inference_tests "${bitrate}" diff --git a/taskcluster/tc-cpp-ds-tests.sh b/taskcluster/tc-cpp-ds-tests.sh index 194abc41..cea0674c 100644 --- a/taskcluster/tc-cpp-ds-tests.sh +++ b/taskcluster/tc-cpp-ds-tests.sh @@ -4,6 +4,9 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + download_material "${TASKCLUSTER_TMP_DIR}/ds" export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH diff --git a/taskcluster/tc-cpp_tflite-ds-tests.sh b/taskcluster/tc-cpp_tflite-ds-tests.sh index 38a65677..f442dda7 100644 --- a/taskcluster/tc-cpp_tflite-ds-tests.sh +++ b/taskcluster/tc-cpp_tflite-ds-tests.sh @@ -4,6 +4,9 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") model_name_mmap=$(basename "${model_source}") diff --git a/taskcluster/tc-cpp_tflite-tests-prod.sh b/taskcluster/tc-cpp_tflite-tests-prod.sh index 2d0b969a..4c66ae9e 100644 --- a/taskcluster/tc-cpp_tflite-tests-prod.sh +++ b/taskcluster/tc-cpp_tflite-tests-prod.sh @@ -8,6 +8,9 @@ export DEEPSPEECH_PROD_MODEL_MMAP=https://github.com/lissyx/DeepSpeech/releases/ source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_PROD_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") model_name_mmap=$(basename "${model_source}") @@ -21,4 +24,4 @@ export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH check_tensorflow_version -run_prodtflite_inference_tests +run_prodtflite_inference_tests "${bitrate}" diff --git a/taskcluster/tc-cpp_tflite_basic-ds-tests.sh b/taskcluster/tc-cpp_tflite_basic-ds-tests.sh index 549befcc..be539933 100644 --- a/taskcluster/tc-cpp_tflite_basic-ds-tests.sh +++ b/taskcluster/tc-cpp_tflite_basic-ds-tests.sh @@ -4,6 +4,9 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") export DEEPSPEECH_ARTIFACTS_ROOT=${DEEPSPEECH_ARTIFACTS_TFLITE_ROOT} diff --git a/taskcluster/tc-cppwin-ds-tests.sh b/taskcluster/tc-cppwin-ds-tests.sh index 018be828..671ae3ef 100644 --- a/taskcluster/tc-cppwin-ds-tests.sh +++ b/taskcluster/tc-cppwin-ds-tests.sh @@ -4,6 +4,9 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + download_material "${TASKCLUSTER_TMP_DIR}/ds" export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH diff --git a/taskcluster/tc-electron-tests.sh b/taskcluster/tc-electron-tests.sh index 8318a522..566775f4 100755 --- a/taskcluster/tc-electron-tests.sh +++ b/taskcluster/tc-electron-tests.sh @@ -17,6 +17,9 @@ if [ -z "${electronver}" ]; then exit 1 fi; +bitrate=$3 +set_ldc_sample_filename "${bitrate}" + download_data node --version diff --git a/taskcluster/tc-netframework-ds-tests.sh b/taskcluster/tc-netframework-ds-tests.sh index 5e56e642..3e48bf25 100644 --- a/taskcluster/tc-netframework-ds-tests.sh +++ b/taskcluster/tc-netframework-ds-tests.sh @@ -6,6 +6,9 @@ cuda=$1 source $(dirname "$0")/tc-tests-utils.sh +bitrate=$1 +set_ldc_sample_filename "${bitrate}" + if [ "${cuda}" = "--cuda" ]; then PROJECT_NAME="DeepSpeech-GPU" else diff --git a/taskcluster/tc-node-tests-prod.sh b/taskcluster/tc-node-tests-prod.sh index b03f7e91..0b812699 100644 --- a/taskcluster/tc-node-tests-prod.sh +++ b/taskcluster/tc-node-tests-prod.sh @@ -11,6 +11,9 @@ if [ -z "${nodever}" ]; then exit 1 fi; +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_PROD_MODEL} model_name=$(basename "${model_source}") @@ -32,4 +35,4 @@ npm install --prefix ${NODE_ROOT} --cache ${NODE_CACHE} ${deepspeech_npm_url} check_runtime_nodejs -run_prod_inference_tests +run_prod_inference_tests "${bitrate}" diff --git a/taskcluster/tc-node-tests.sh b/taskcluster/tc-node-tests.sh index b53002e8..17548022 100644 --- a/taskcluster/tc-node-tests.sh +++ b/taskcluster/tc-node-tests.sh @@ -11,6 +11,9 @@ if [ -z "${nodever}" ]; then exit 1 fi; +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + download_data node --version diff --git a/taskcluster/tc-node_tflite-tests-prod.sh b/taskcluster/tc-node_tflite-tests-prod.sh index aef3b48e..e813a16c 100644 --- a/taskcluster/tc-node_tflite-tests-prod.sh +++ b/taskcluster/tc-node_tflite-tests-prod.sh @@ -15,6 +15,9 @@ if [ -z "${nodever}" ]; then exit 1 fi; +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_PROD_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") model_name_mmap=$(basename "${model_source}") @@ -36,4 +39,4 @@ npm install --prefix ${NODE_ROOT} --cache ${NODE_CACHE} ${deepspeech_npm_url} check_runtime_nodejs -run_prodtflite_inference_tests +run_prodtflite_inference_tests "${bitrate}" diff --git a/taskcluster/tc-node_tflite-tests.sh b/taskcluster/tc-node_tflite-tests.sh index c5a27c21..45907c11 100644 --- a/taskcluster/tc-node_tflite-tests.sh +++ b/taskcluster/tc-node_tflite-tests.sh @@ -11,6 +11,9 @@ if [ -z "${nodever}" ]; then exit 1 fi; +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} model_name=$(basename "${model_source}") model_name_mmap=$(basename "${model_source}") diff --git a/taskcluster/tc-python-tests-prod.sh b/taskcluster/tc-python-tests-prod.sh index 76961b52..2b5fe848 100644 --- a/taskcluster/tc-python-tests-prod.sh +++ b/taskcluster/tc-python-tests-prod.sh @@ -6,6 +6,9 @@ source $(dirname "$0")/tc-tests-utils.sh extract_python_versions "$1" "pyver" "pyver_pkg" "py_unicode_type" "pyconf" "pyalias" +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + unset PYTHON_BIN_PATH unset PYTHONPATH @@ -43,8 +46,8 @@ virtualenv_activate "${pyalias}" "${PYENV_NAME}" deepspeech_pkg_url=$(get_python_pkg_url ${pyver_pkg} ${py_unicode_type}) LD_LIBRARY_PATH=${PY37_LDPATH}:$LD_LIBRARY_PATH pip install --verbose --only-binary :all: ${PY37_SOURCE_PACKAGE} --upgrade ${deepspeech_pkg_url} | cat -run_prod_inference_tests +run_prod_inference_tests "${bitrate}" -run_prod_concurrent_stream_tests +run_prod_concurrent_stream_tests "${bitrate}" virtualenv_deactivate "${pyalias}" "${PYENV_NAME}" diff --git a/taskcluster/tc-python-tests.sh b/taskcluster/tc-python-tests.sh index 18756be8..6f101389 100644 --- a/taskcluster/tc-python-tests.sh +++ b/taskcluster/tc-python-tests.sh @@ -6,6 +6,9 @@ source $(dirname "$0")/tc-tests-utils.sh extract_python_versions "$1" "pyver" "pyver_pkg" "py_unicode_type" "pyconf" "pyalias" +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + unset PYTHON_BIN_PATH unset PYTHONPATH diff --git a/taskcluster/tc-python_tflite-tests-prod.sh b/taskcluster/tc-python_tflite-tests-prod.sh index 6b6ae765..92b46409 100644 --- a/taskcluster/tc-python_tflite-tests-prod.sh +++ b/taskcluster/tc-python_tflite-tests-prod.sh @@ -10,6 +10,9 @@ source $(dirname "$0")/tc-tests-utils.sh extract_python_versions "$1" "pyver" "pyver_pkg" "py_unicode_type" "pyconf" "pyalias" +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + unset PYTHON_BIN_PATH unset PYTHONPATH @@ -50,6 +53,6 @@ LD_LIBRARY_PATH=${PY37_LDPATH}:$LD_LIBRARY_PATH pip install --verbose --only-bin which deepspeech deepspeech --version -run_prodtflite_inference_tests +run_prodtflite_inference_tests "${bitrate}" virtualenv_deactivate "${pyalias}" "${PYENV_NAME}" diff --git a/taskcluster/tc-python_tflite-tests.sh b/taskcluster/tc-python_tflite-tests.sh index 6a419485..b2759aa6 100644 --- a/taskcluster/tc-python_tflite-tests.sh +++ b/taskcluster/tc-python_tflite-tests.sh @@ -6,6 +6,9 @@ source $(dirname "$0")/tc-tests-utils.sh extract_python_versions "$1" "pyver" "pyver_pkg" "py_unicode_type" "pyconf" "pyalias" +bitrate=$2 +set_ldc_sample_filename "${bitrate}" + unset PYTHON_BIN_PATH unset PYTHONPATH diff --git a/taskcluster/tc-tests-utils.sh b/taskcluster/tc-tests-utils.sh index 5cc71e0c..49ab0fb5 100755 --- a/taskcluster/tc-tests-utils.sh +++ b/taskcluster/tc-tests-utils.sh @@ -56,6 +56,8 @@ model_name="$(basename "${model_source}")" model_name_mmap="$(basename -s ".pb" "${model_source}").pbmm" model_source_mmap="$(dirname "${model_source}")/${model_name_mmap}" +ldc93s1_sample_filename='' + SUPPORTED_PYTHON_VERSIONS=${SUPPORTED_PYTHON_VERSIONS:-2.7.16:ucs2 2.7.16:ucs4 3.5.7:ucs4 3.6.8:ucs4 3.7.3:ucs4 3.8.0:ucs4} SUPPORTED_NODEJS_VERSIONS=${SUPPORTED_NODEJS_VERSIONS:-4.9.1 5.12.0 6.17.1 7.10.1 8.16.0 9.11.2 10.16.0 11.15.0 12.5.0 13.0.1} SUPPORTED_ELECTRONJS_VERSIONS=${SUPPORTED_ELECTRONJS_VERSIONS:-1.6.18 1.7.16 1.8.8 2.0.18 3.0.16 3.1.11 4.0.3 4.1.5 4.2.5 5.0.6 6.0.11 7.0.1 7.1.2} @@ -245,7 +247,7 @@ assert_working_ldc93s1_lm() assert_correct_multi_ldc93s1() { - assert_shows_something "$1" "/LDC93S1.wav%she had your dark suit in greasy wash water all year%" "$?" + assert_shows_something "$1" "/${ldc93s1_sample_filename}%she had your dark suit in greasy wash water all year%" "$?" assert_shows_something "$1" "/LDC93S1_pcms16le_2_44100.wav%she had your dark suit in greasy wash water all year%" "$?" ## 8k will output garbage anyway ... # assert_shows_something "$1" "/LDC93S1_pcms16le_1_8000.wav%she hayorasryrtl lyreasy asr watal w water all year%" @@ -253,22 +255,46 @@ assert_correct_multi_ldc93s1() assert_correct_ldc93s1_prodmodel() { - assert_correct_inference "$1" "she had reduce and greasy wash water all year" "$2" + if [ -z "$3" -o "$3" = "16k" ]; then + assert_correct_inference "$1" "she had reduce and greasy wash water all year" "$2" + fi; + + if [ -o "$3" = "8k" ]; then + assert_correct_inference "$1" "she had conduct suit in greasy wash water all year" "$2" + fi; } assert_correct_ldc93s1_prodtflitemodel() { - assert_correct_inference "$1" "she had educate in greasy wash were all year" "$2" + if [ -z "$3" -o "$3" = "16k" ]; then + assert_correct_inference "$1" "she had educate in greasy wash were all year" "$2" + fi; + + if [ -o "$3" = "8k" ]; then + assert_correct_inference "$1" "she had conduct suit in greasy wash water all year" "$2" + fi; } assert_correct_ldc93s1_prodmodel_stereo_44k() { - assert_correct_inference "$1" "she had reduce and greasy wash water all year" "$2" + if [ -z "$3" -o "$3" = "16k" ]; then + assert_correct_inference "$1" "she had reduce and greasy wash water all year" "$2" + fi; + + if [ -o "$3" = "8k" ]; then + assert_correct_inference "$1" "she had conduct suit in greasy wash water all year" "$2" + fi; } assert_correct_ldc93s1_prodtflitemodel_stereo_44k() { - assert_correct_inference "$1" "she had educate in greasy wash were all year" "$2" + if [ -z "$3" -o "$3" = "16k" ]; then + assert_correct_inference "$1" "she had educate in greasy wash were all year" "$2" + fi; + + if [ -o "$3" = "8k" ]; then + assert_correct_inference "$1" "she had conduct suit in greasy wash water all year" "$2" + fi; } assert_correct_warning_upsampling() @@ -320,12 +346,12 @@ check_runtime_electronjs() run_tflite_basic_inference_tests() { set +e - phrase_pbmodel_nolm=$(${DS_BINARY_PREFIX}deepspeech --model ${DATA_TMP_DIR}/${model_name} --audio ${DATA_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(${DS_BINARY_PREFIX}deepspeech --model ${DATA_TMP_DIR}/${model_name} --audio ${DATA_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_correct_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_nolm=$(${DS_BINARY_PREFIX}deepspeech --model ${DATA_TMP_DIR}/${model_name} --audio ${DATA_TMP_DIR}/LDC93S1.wav --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(${DS_BINARY_PREFIX}deepspeech --model ${DATA_TMP_DIR}/${model_name} --audio ${DATA_TMP_DIR}/${ldc93s1_sample_filename} --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_correct_ldc93s1 "${phrase_pbmodel_nolm}" "$?" } @@ -333,22 +359,22 @@ run_tflite_basic_inference_tests() run_netframework_inference_tests() { set +e - phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav --extended yes 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} --extended yes 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_withlm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_withlm=$(DeepSpeechConsole.exe --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1_lm "${phrase_pbmodel_withlm}" "$?" } @@ -356,22 +382,22 @@ run_netframework_inference_tests() run_electronjs_inference_tests() { set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1 "${phrase_pbmodel_nolm}" "$?" set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) set -e assert_working_ldc93s1_lm "${phrase_pbmodel_withlm}" "$?" } @@ -379,25 +405,25 @@ run_electronjs_inference_tests() run_basic_inference_tests() { set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e assert_correct_ldc93s1 "${phrase_pbmodel_nolm}" "$status" set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} --extended 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e assert_correct_ldc93s1 "${phrase_pbmodel_nolm}" "$status" set +e - phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_nolm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e assert_correct_ldc93s1 "${phrase_pbmodel_nolm}" "$status" set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e assert_correct_ldc93s1_lm "${phrase_pbmodel_withlm}" "$status" @@ -419,25 +445,30 @@ run_all_inference_tests() set -e assert_correct_ldc93s1_lm "${phrase_pbmodel_withlm_stereo_44k}" "$status" - set +e - phrase_pbmodel_nolm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) - set -e - assert_correct_warning_upsampling "${phrase_pbmodel_nolm_mono_8k}" + # Run down-sampling warning test only when we actually perform downsampling + if [ "${ldc93s1_sample_filename}" != "LDC93S1_pcms16le_1_8000.wav" ]; then + set +e + phrase_pbmodel_nolm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) + set -e + assert_correct_warning_upsampling "${phrase_pbmodel_nolm_mono_8k}" - set +e - phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) - set -e - assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + set +e + phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) + set -e + assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + fi; } run_prod_concurrent_stream_tests() { + local _bitrate=$1 + set +e output=$(python ${TASKCLUSTER_TMP_DIR}/test_sources/concurrent_streams.py \ --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} \ --lm ${TASKCLUSTER_TMP_DIR}/lm.binary \ --trie ${TASKCLUSTER_TMP_DIR}/trie \ - --audio1 ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav \ + --audio1 ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} \ --audio2 ${TASKCLUSTER_TMP_DIR}/new-home-in-the-stars-16k.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e @@ -445,60 +476,70 @@ run_prod_concurrent_stream_tests() output1=$(echo "${output}" | head -n 1) output2=$(echo "${output}" | tail -n 1) - assert_correct_ldc93s1_prodmodel "${output1}" "${status}" + assert_correct_ldc93s1_prodmodel "${output1}" "${status}" "${_bitrate}" assert_correct_inference "${output2}" "we must find a new home in the stars" "${status}" } run_prod_inference_tests() { - set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) - status=$? - set -e - assert_correct_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" + local _bitrate=$1 set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e - assert_correct_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" + assert_correct_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}" + + set +e + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) + status=$? + set -e + assert_correct_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}" set +e phrase_pbmodel_withlm_stereo_44k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_2_44100.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e - assert_correct_ldc93s1_prodmodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status" + assert_correct_ldc93s1_prodmodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status" "${_bitrate}" - set +e - phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) - set -e - assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + # Run down-sampling warning test only when we actually perform downsampling + if [ "${ldc93s1_sample_filename}" != "LDC93S1_pcms16le_1_8000.wav" ]; then + set +e + phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) + set -e + assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + fi; } run_prodtflite_inference_tests() { - set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) - status=$? - set -e - assert_correct_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" + local _bitrate=$1 set +e - phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e - assert_correct_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" + assert_correct_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}" + + set +e + phrase_pbmodel_withlm=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} 2>${TASKCLUSTER_TMP_DIR}/stderr) + status=$? + set -e + assert_correct_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}" set +e phrase_pbmodel_withlm_stereo_44k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_2_44100.wav 2>${TASKCLUSTER_TMP_DIR}/stderr) status=$? set -e - assert_correct_ldc93s1_prodtflitemodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status" + assert_correct_ldc93s1_prodtflitemodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status" "${_bitrate}" - set +e - phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) - set -e - assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + # Run down-sampling warning test only when we actually perform downsampling + if [ "${ldc93s1_sample_filename}" != "LDC93S1_pcms16le_1_8000.wav" ]; then + set +e + phrase_pbmodel_withlm_mono_8k=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1_pcms16le_1_8000.wav 2>&1 1>/dev/null) + set -e + assert_correct_warning_upsampling "${phrase_pbmodel_withlm_mono_8k}" + fi; } run_multi_inference_tests() @@ -519,7 +560,7 @@ run_multi_inference_tests() run_cpp_only_inference_tests() { set +e - phrase_pbmodel_withlm_intermediate_decode=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav --stream 1280 2>${TASKCLUSTER_TMP_DIR}/stderr | tail -n 1) + phrase_pbmodel_withlm_intermediate_decode=$(deepspeech --model ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} --lm ${TASKCLUSTER_TMP_DIR}/lm.binary --trie ${TASKCLUSTER_TMP_DIR}/trie --audio ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} --stream 1280 2>${TASKCLUSTER_TMP_DIR}/stderr | tail -n 1) status=$? set -e assert_correct_ldc93s1_lm "${phrase_pbmodel_withlm_intermediate_decode}" "$status" @@ -597,6 +638,25 @@ install_nuget() export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH } +set_ldc_sample_filename() +{ + local _bitrate=$1 + + if [ -z "${_bitrate}" ]; then + echo "Bitrate should not be empty" + exit 1 + fi; + + case "${_bitrate}" in + 8k) + ldc93s1_sample_filename='LDC93S1_pcms16le_1_8000.wav' + ;; + 16k) + ldc93s1_sample_filename='LDC93S1_pcms16le_1_16000.wav' + ;; + esac +} + download_data() { ${WGET} -P "${TASKCLUSTER_TMP_DIR}" "${model_source}" @@ -1664,7 +1724,7 @@ android_setup_ndk_data() adb push \ ${TASKCLUSTER_TMP_DIR}/${model_name} \ - ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav \ + ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} \ ${ANDROID_TMP_DIR}/ds/ } @@ -1674,7 +1734,7 @@ android_setup_apk_data() adb push \ ${TASKCLUSTER_TMP_DIR}/${model_name} \ - ${TASKCLUSTER_TMP_DIR}/LDC93S1.wav \ + ${TASKCLUSTER_TMP_DIR}/${ldc93s1_sample_filename} \ ${TASKCLUSTER_TMP_DIR}/lm.binary \ ${TASKCLUSTER_TMP_DIR}/trie \ ${ANDROID_TMP_DIR}/test/ diff --git a/taskcluster/tc-train-tests.sh b/taskcluster/tc-train-tests.sh index a782fa18..4c0448fb 100644 --- a/taskcluster/tc-train-tests.sh +++ b/taskcluster/tc-train-tests.sh @@ -5,7 +5,7 @@ set -xe source $(dirname "$0")/tc-tests-utils.sh pyver_full=$1 -ds=$2 +bitrate=$2 if [ -z "${pyver_full}" ]; then echo "No python version given, aborting." @@ -56,11 +56,28 @@ decoder_pkg_url=${DECODER_ARTIFACTS_ROOT}/${decoder_pkg} LD_LIBRARY_PATH=${PY37_LDPATH}:$LD_LIBRARY_PATH pip install --verbose --only-binary :all: ${PY37_SOURCE_PACKAGE} ${decoder_pkg_url} | cat +# Prepare correct arguments for training +case "${bitrate}" in + 8k) + sample_rate=8000 + sample_name='LDC93S1_pcms16le_1_8000.wav' + ;; + 16k) + sample_rate=16000 + sample_name='LDC93S1_pcms16le_1_16000.wav' + ;; +esac + +# Easier to rename to that we can exercize the LDC93S1 importer code to +# generate the CSV file. +echo "Moving ${sample_name} to LDC93S1.wav" +mv "${DS_ROOT_TASK}/DeepSpeech/ds/data/smoke_test/${sample_name}" "${DS_ROOT_TASK}/DeepSpeech/ds/data/smoke_test/LDC93S1.wav" + pushd ${HOME}/DeepSpeech/ds/ # Run twice to test preprocessed features - time ./bin/run-tc-ldc93s1_new.sh 219 - time ./bin/run-tc-ldc93s1_new.sh 1 - time ./bin/run-tc-ldc93s1_tflite.sh + time ./bin/run-tc-ldc93s1_new.sh 219 "${sample_rate}" + time ./bin/run-tc-ldc93s1_new.sh 1 "${sample_rate}" + time ./bin/run-tc-ldc93s1_tflite.sh "${sample_rate}" popd cp /tmp/train/output_graph.pb ${TASKCLUSTER_ARTIFACTS} diff --git a/taskcluster/test-android-opt-base.tyml b/taskcluster/test-android-opt-base.tyml index 4cdf7ccd..92765ebd 100644 --- a/taskcluster/test-android-opt-base.tyml +++ b/taskcluster/test-android-opt-base.tyml @@ -31,7 +31,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } android_arm64_build: { $eval: as_slugid("android-arm64-cpu-opt") } android_armv7_build: { $eval: as_slugid("android-armv7-cpu-opt") } in: diff --git a/taskcluster/test-apk-android-24-x86_64-opt.yml b/taskcluster/test-apk-android-24-x86_64-opt.yml index dad056f5..9faae2e8 100644 --- a/taskcluster/test-apk-android-24-x86_64-opt.yml +++ b/taskcluster/test-apk-android-24-x86_64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-x86_64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install curl make python && ${swig.packages.install_script} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-apk-tests.sh x86_64 android-24" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-apk-tests.sh x86_64 android-24 16k" metadata: name: "DeepSpeech Android 7.0 x86_64 Google Pixel APK/Java tests" description: "Testing DeepSpeech APK/Java for Android 7.0 x86_64 Google Pixel, optimized version" diff --git a/taskcluster/test-apk-android-25-x86_64-opt.yml b/taskcluster/test-apk-android-25-x86_64-opt.yml index 1864d226..6cc134f4 100644 --- a/taskcluster/test-apk-android-25-x86_64-opt.yml +++ b/taskcluster/test-apk-android-25-x86_64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-x86_64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install curl make python && ${swig.packages.install_script} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-apk-tests.sh x86_64 android-25" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-apk-tests.sh x86_64 android-25 16k" metadata: name: "DeepSpeech Android 7.1 x86_64 Google Pixel APK/Java tests" description: "Testing DeepSpeech APK/Java for Android 7.1 x86_64 Google Pixel, optimized version" diff --git a/taskcluster/test-apk-android-26-x86_64-opt.yml.disabled b/taskcluster/test-apk-android-26-x86_64-opt.yml.disabled index 24efe825..d5b399db 100644 --- a/taskcluster/test-apk-android-26-x86_64-opt.yml.disabled +++ b/taskcluster/test-apk-android-26-x86_64-opt.yml.disabled @@ -3,7 +3,7 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-x86_64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install curl make python && ${swig.packages.install_script} diff --git a/taskcluster/test-apk-android-28-x86_64-opt.yml.disabled b/taskcluster/test-apk-android-28-x86_64-opt.yml.disabled index f149cb49..d50b9369 100644 --- a/taskcluster/test-apk-android-28-x86_64-opt.yml.disabled +++ b/taskcluster/test-apk-android-28-x86_64-opt.yml.disabled @@ -3,7 +3,7 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-x86_64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install curl make python && ${swig.packages.install_script} diff --git a/taskcluster/test-armbian-opt-base.tyml b/taskcluster/test-armbian-opt-base.tyml index 76733c02..21159472 100644 --- a/taskcluster/test-armbian-opt-base.tyml +++ b/taskcluster/test-armbian-opt-base.tyml @@ -31,7 +31,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } linux_arm64_build: { $eval: as_slugid("linux-arm64-cpu-opt") } in: DEEPSPEECH_ARTIFACTS_ROOT: https://community-tc.services.mozilla.com/api/queue/v1/task/${linux_arm64_build}/artifacts/public diff --git a/taskcluster/test-benchmark-linux-amd64-opt.yml b/taskcluster/test-benchmark-linux-amd64-opt.yml index 9f6e6d42..5b3f53f4 100644 --- a/taskcluster/test-benchmark-linux-amd64-opt.yml +++ b/taskcluster/test-benchmark-linux-amd64-opt.yml @@ -2,7 +2,8 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_trusty.apt} zip diff --git a/taskcluster/test-cpp-android-24-arm64-opt.yml b/taskcluster/test-cpp-android-24-arm64-opt.yml index 1ef22210..abd21dc9 100644 --- a/taskcluster/test-cpp-android-24-arm64-opt.yml +++ b/taskcluster/test-cpp-android-24-arm64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh arm64-v8a android-24" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh arm64-v8a android-24 16k" metadata: name: "DeepSpeech Android 7.0 ARM64 Google Pixel C++ tests" description: "Testing DeepSpeech C++ for Android 7.0 ARM64 Google Pixel, optimized version" diff --git a/taskcluster/test-cpp-android-24-armv7-opt.yml b/taskcluster/test-cpp-android-24-armv7-opt.yml index f3e5f3db..af5b1c6e 100644 --- a/taskcluster/test-cpp-android-24-armv7-opt.yml +++ b/taskcluster/test-cpp-android-24-armv7-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-armv7-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh armeabi-v7a android-24" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh armeabi-v7a android-24 16k" metadata: name: "DeepSpeech Android 7.0 ARMv7 Google Pixel C++ tests" description: "Testing DeepSpeech C++ for Android 7.0 ARMv7 Google Pixel, optimized version" diff --git a/taskcluster/test-cpp-android-25-arm64-opt.yml b/taskcluster/test-cpp-android-25-arm64-opt.yml index e90e2171..7183105e 100644 --- a/taskcluster/test-cpp-android-25-arm64-opt.yml +++ b/taskcluster/test-cpp-android-25-arm64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh arm64-v8a android-25" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh arm64-v8a android-25 16k" metadata: name: "DeepSpeech Android 7.1 ARM64 Google Pixel C++ tests" description: "Testing DeepSpeech C++ for Android 7.1 ARM64 Google Pixel, optimized version" diff --git a/taskcluster/test-cpp-android-25-armv7-opt.yml b/taskcluster/test-cpp-android-25-armv7-opt.yml index d8a32b07..8bb1c8f1 100644 --- a/taskcluster/test-cpp-android-25-armv7-opt.yml +++ b/taskcluster/test-cpp-android-25-armv7-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-android-opt-base.tyml dependencies: - "android-armv7-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh armeabi-v7a android-25" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-android-ds-tests.sh armeabi-v7a android-25 16k" metadata: name: "DeepSpeech Android 7.1 ARMv7 Google Pixel C++ tests" description: "Testing DeepSpeech C++ for Android 7.1 ARMv7 Google Pixel, optimized version" diff --git a/taskcluster/test-cpp-armbian-arm64-opt.yml b/taskcluster/test-cpp-armbian-arm64-opt.yml deleted file mode 100644 index daa1e4c4..00000000 --- a/taskcluster/test-cpp-armbian-arm64-opt.yml +++ /dev/null @@ -1,10 +0,0 @@ -build: - template_file: test-armbian-opt-base.tyml - dependencies: - - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh" - metadata: - name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU C++ tests" - description: "Testing DeepSpeech C++ for ARMbian ARM64 Cortex-A53, CPU only, optimized version" diff --git a/taskcluster/test-cpp-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-cpp-linux-amd64-prod_pbmodel-opt.yml index 39fd800f..13a95924 100644 --- a/taskcluster/test-cpp-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-cpp-linux-amd64-prod_pbmodel-opt.yml @@ -3,7 +3,7 @@ build: dependencies: - "linux-amd64-cpu-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests-prod.sh" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests-prod.sh 16k" metadata: name: "DeepSpeech Linux AMD64 CPU C++ prod tests" description: "Testing DeepSpeech C++ for Linux/AMD64 on prod model, CPU only, optimized version" diff --git a/taskcluster/test-cpp-raspbian-rpi3-opt.yml b/taskcluster/test-cpp-raspbian-rpi3-opt.yml deleted file mode 100644 index c90f72c1..00000000 --- a/taskcluster/test-cpp-raspbian-rpi3-opt.yml +++ /dev/null @@ -1,10 +0,0 @@ -build: - template_file: test-raspbian-opt-base.tyml - dependencies: - - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite-ds-tests.sh" - metadata: - name: "DeepSpeech Raspbian RPi3/ARMv7 CPU C++ tests" - description: "Testing DeepSpeech C++ for Raspbian RPi3/ARMv7, CPU only, optimized version" diff --git a/taskcluster/test-cpp_16k-armbian-arm64-opt.yml b/taskcluster/test-cpp_16k-armbian-arm64-opt.yml new file mode 100644 index 00000000..3b8246d6 --- /dev/null +++ b/taskcluster/test-cpp_16k-armbian-arm64-opt.yml @@ -0,0 +1,11 @@ +build: + template_file: test-armbian-opt-base.tyml + dependencies: + - "linux-arm64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh 16k" + metadata: + name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for ARMbian ARM64 Cortex-A53, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-cpp-darwin-amd64-opt.yml b/taskcluster/test-cpp_16k-darwin-amd64-opt.yml similarity index 60% rename from taskcluster/test-cpp-darwin-amd64-opt.yml rename to taskcluster/test-cpp_16k-darwin-amd64-opt.yml index fc4af0d4..6bc20596 100644 --- a/taskcluster/test-cpp-darwin-amd64-opt.yml +++ b/taskcluster/test-cpp_16k-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${cpp.brew.setup} && ${cpp.brew.packages} && ${cpp.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh 16k" metadata: - name: "DeepSpeech OSX AMD64 CPU C++ tests" - description: "Testing DeepSpeech C++ for OSX/AMD64, CPU only, optimized version" + name: "DeepSpeech OSX AMD64 CPU C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for OSX/AMD64, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_16k-linux-amd64-opt.yml b/taskcluster/test-cpp_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..3d9f9810 --- /dev/null +++ b/taskcluster/test-cpp_16k-linux-amd64-opt.yml @@ -0,0 +1,11 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Linux/AMD64, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_16k-raspbian-rpi3-opt.yml b/taskcluster/test-cpp_16k-raspbian-rpi3-opt.yml new file mode 100644 index 00000000..1c0cf156 --- /dev/null +++ b/taskcluster/test-cpp_16k-raspbian-rpi3-opt.yml @@ -0,0 +1,11 @@ +build: + template_file: test-raspbian-opt-base.tyml + dependencies: + - "linux-rpi3-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite-ds-tests.sh 16k" + metadata: + name: "DeepSpeech Raspbian RPi3/ARMv7 CPU C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Raspbian RPi3/ARMv7, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-cpp-win-amd64-opt.yml b/taskcluster/test-cpp_16k-win-amd64-opt.yml similarity index 50% rename from taskcluster/test-cpp-win-amd64-opt.yml rename to taskcluster/test-cpp_16k-win-amd64-opt.yml index 33629e07..7a2c89fb 100644 --- a/taskcluster/test-cpp-win-amd64-opt.yml +++ b/taskcluster/test-cpp_16k-win-amd64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cppwin-ds-tests.sh" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cppwin-ds-tests.sh 16k" metadata: - name: "DeepSpeech Windows AMD64 CPU C++ tests" - description: "Testing DeepSpeech C++ for Windows/AMD64, CPU only, optimized version" + name: "DeepSpeech Windows AMD64 CPU C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Windows/AMD64, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_tflite-darwin-amd64-opt.yml b/taskcluster/test-cpp_16k_tflite-darwin-amd64-opt.yml similarity index 58% rename from taskcluster/test-cpp_tflite-darwin-amd64-opt.yml rename to taskcluster/test-cpp_16k_tflite-darwin-amd64-opt.yml index 8e27b1d6..44c362f8 100644 --- a/taskcluster/test-cpp_tflite-darwin-amd64-opt.yml +++ b/taskcluster/test-cpp_16k_tflite-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-tflite-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${cpp.brew.setup} && ${cpp.brew.packages} && ${cpp.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh 16k" metadata: - name: "DeepSpeech OSX AMD64 TFlite C++ tests" - description: "Testing DeepSpeech C++ for OSX/AMD64, TFLite, optimized version" + name: "DeepSpeech OSX AMD64 TFlite C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for OSX/AMD64, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_16k_tflite-linux-amd64-opt.yml b/taskcluster/test-cpp_16k_tflite-linux-amd64-opt.yml new file mode 100755 index 00000000..0faa46d4 --- /dev/null +++ b/taskcluster/test-cpp_16k_tflite-linux-amd64-opt.yml @@ -0,0 +1,11 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Linux/AMD64, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_16k_tflite-win-amd64-opt.yml b/taskcluster/test-cpp_16k_tflite-win-amd64-opt.yml new file mode 100644 index 00000000..15abcf3b --- /dev/null +++ b/taskcluster/test-cpp_16k_tflite-win-amd64-opt.yml @@ -0,0 +1,11 @@ +build: + template_file: test-win-opt-base.tyml + dependencies: + - "win-amd64-tflite-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + args: + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh 16k" + metadata: + name: "DeepSpeech Windows AMD64 TFLite C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Windows/AMD64, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-cpp-linux-amd64-opt.yml b/taskcluster/test-cpp_8k-linux-amd64-opt.yml similarity index 52% rename from taskcluster/test-cpp-linux-amd64-opt.yml rename to taskcluster/test-cpp_8k-linux-amd64-opt.yml index 122c33bc..29e52fbc 100644 --- a/taskcluster/test-cpp-linux-amd64-opt.yml +++ b/taskcluster/test-cpp_8k-linux-amd64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp-ds-tests.sh 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU C++ tests" - description: "Testing DeepSpeech C++ for Linux/AMD64, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU C++ tests (8kHz)" + description: "Testing DeepSpeech C++ for Linux/AMD64, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-cpp_tflite-linux-amd64-opt.yml b/taskcluster/test-cpp_8k_tflite-linux-amd64-opt.yml similarity index 50% rename from taskcluster/test-cpp_tflite-linux-amd64-opt.yml rename to taskcluster/test-cpp_8k_tflite-linux-amd64-opt.yml index 28462270..9a1acce8 100755 --- a/taskcluster/test-cpp_tflite-linux-amd64-opt.yml +++ b/taskcluster/test-cpp_8k_tflite-linux-amd64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-tflite-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite C++ tests" - description: "Testing DeepSpeech C++ for Linux/AMD64, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite C++ tests (16kHz)" + description: "Testing DeepSpeech C++ for Linux/AMD64, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-cpp_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-cpp_tflite-linux-amd64-prod-opt.yml index 3ddf7c9b..5ff4a6c6 100755 --- a/taskcluster/test-cpp_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-cpp_tflite-linux-amd64-prod-opt.yml @@ -3,7 +3,7 @@ build: dependencies: - "linux-amd64-tflite-opt" args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite-tests-prod.sh" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-cpp_tflite-tests-prod.sh 16k" metadata: name: "DeepSpeech Linux AMD64 TFLite C++ prod tests" description: "Testing DeepSpeech C++ for Linux/AMD64 on prod model, TFLite, optimized version" diff --git a/taskcluster/test-cpp_tflite-win-amd64-opt.yml b/taskcluster/test-cpp_tflite-win-amd64-opt.yml deleted file mode 100644 index 02864bd3..00000000 --- a/taskcluster/test-cpp_tflite-win-amd64-opt.yml +++ /dev/null @@ -1,10 +0,0 @@ -build: - template_file: test-win-opt-base.tyml - dependencies: - - "win-amd64-tflite-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-cpp_tflite_basic-ds-tests.sh" - metadata: - name: "DeepSpeech Windows AMD64 TFLite C++ tests" - description: "Testing DeepSpeech C++ for Windows/AMD64, TFLite, optimized version" diff --git a/taskcluster/test-darwin-opt-base.tyml b/taskcluster/test-darwin-opt-base.tyml index 6206a22e..6f50fc63 100644 --- a/taskcluster/test-darwin-opt-base.tyml +++ b/taskcluster/test-darwin-opt-base.tyml @@ -34,7 +34,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } darwin_amd64_build: { $eval: as_slugid("darwin-amd64-cpu-opt") } darwin_amd64_tflite: { $eval: as_slugid("darwin-amd64-tflite-opt") } in: diff --git a/taskcluster/test-electronjs_v3.1-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v3.1-darwin-amd64-opt.yml index 7d7690d7..c1b020fb 100644 --- a/taskcluster/test-electronjs_v3.1-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v3.1-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_10} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v3.1 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v3.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v3.1-win-amd64-opt.yml b/taskcluster/test-electronjs_v3.1-win-amd64-opt.yml index 9b859a89..d48a245f 100644 --- a/taskcluster/test-electronjs_v3.1-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v3.1-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_10} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v3.1 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v3.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v3.1_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v3.1_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..e8b92a88 --- /dev/null +++ b/taskcluster/test-electronjs_v3.1_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v3.1 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v3.1, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v4.0-linux-amd64-opt.yml b/taskcluster/test-electronjs_v3.1_8k-linux-amd64-opt.yml similarity index 64% rename from taskcluster/test-electronjs_v4.0-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v3.1_8k-linux-amd64-opt.yml index 9f451581..a73200fd 100644 --- a/taskcluster/test-electronjs_v4.0-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v3.1_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.0 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.0, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v3.1 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v3.1, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v4.0-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v4.0-darwin-amd64-opt.yml index a37a2772..07195ce6 100644 --- a/taskcluster/test-electronjs_v4.0-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.0-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_10} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v4.0 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v4.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.0-win-amd64-opt.yml b/taskcluster/test-electronjs_v4.0-win-amd64-opt.yml index 6dd8d9dd..c124c031 100644 --- a/taskcluster/test-electronjs_v4.0-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.0-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_10} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v4.0 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v4.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.0_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.0_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..1e9935f3 --- /dev/null +++ b/taskcluster/test-electronjs_v4.0_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.0 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.0, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v3.1-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.0_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v3.1-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v4.0_8k-linux-amd64-opt.yml index 9e64dd8c..74ae3943 100644 --- a/taskcluster/test-electronjs_v3.1-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.0_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 3.1.11" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.0.3 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v3.1 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v3.1, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.0 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.0, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v4.1-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v4.1-darwin-amd64-opt.yml index 1bef15c7..c211d146 100644 --- a/taskcluster/test-electronjs_v4.1-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.1-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_10} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v4.1 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v4.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.1-win-amd64-opt.yml b/taskcluster/test-electronjs_v4.1-win-amd64-opt.yml index 0bc4363f..0acc1f34 100644 --- a/taskcluster/test-electronjs_v4.1-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.1-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_10} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v4.1 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v4.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.1_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.1_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..8024e510 --- /dev/null +++ b/taskcluster/test-electronjs_v4.1_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.1 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.1, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v4.1-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.1_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v4.1-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v4.1_8k-linux-amd64-opt.yml index ca434d92..00f6ac9a 100644 --- a/taskcluster/test-electronjs_v4.1-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.1_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.1.5 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.1 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.1, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.1 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.1, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v4.2-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v4.2-darwin-amd64-opt.yml index 628fae3a..b58c2355 100644 --- a/taskcluster/test-electronjs_v4.2-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.2-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_10} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v4.2 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v4.2, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.2-win-amd64-opt.yml b/taskcluster/test-electronjs_v4.2-win-amd64-opt.yml index c668fe59..a3e15b61 100644 --- a/taskcluster/test-electronjs_v4.2-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.2-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_10} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v4.2 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v4.2, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v4.2_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.2_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..2f2346ea --- /dev/null +++ b/taskcluster/test-electronjs_v4.2_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.2 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.2, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v4.2-linux-amd64-opt.yml b/taskcluster/test-electronjs_v4.2_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v4.2-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v4.2_8k-linux-amd64-opt.yml index 76a5239b..a5754dc7 100644 --- a/taskcluster/test-electronjs_v4.2-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v4.2_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 10.x 4.2.5 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.2 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.2, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v4.2 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v4.2, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v5.0-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v5.0-darwin-amd64-opt.yml index 48d0c0f9..911eaeaf 100644 --- a/taskcluster/test-electronjs_v5.0-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v5.0-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_12} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v5.0 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v5.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v5.0-win-amd64-opt.yml b/taskcluster/test-electronjs_v5.0-win-amd64-opt.yml index b8b102f5..dca60813 100644 --- a/taskcluster/test-electronjs_v5.0-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v5.0-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_12} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v5.0 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v5.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v5.0_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v5.0_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..eeee2228 --- /dev/null +++ b/taskcluster/test-electronjs_v5.0_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v5.0 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v5.0, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v5.0-linux-amd64-opt.yml b/taskcluster/test-electronjs_v5.0_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v5.0-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v5.0_8k-linux-amd64-opt.yml index 2328d041..f730719f 100644 --- a/taskcluster/test-electronjs_v5.0-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v5.0_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 5.0.6 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v5.0 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v5.0, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v5.0 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v5.0, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v6.0-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v6.0-darwin-amd64-opt.yml index 084280cf..02fee1c0 100644 --- a/taskcluster/test-electronjs_v6.0-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v6.0-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_12} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v6.0 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v6.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v6.0-win-amd64-opt.yml b/taskcluster/test-electronjs_v6.0-win-amd64-opt.yml index 8bc4d556..7219903e 100644 --- a/taskcluster/test-electronjs_v6.0-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v6.0-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_12} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v6.0 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v6.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v6.0_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v6.0_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..6638cc8e --- /dev/null +++ b/taskcluster/test-electronjs_v6.0_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v6.0 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v6.0, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v7.1-linux-amd64-opt.yml b/taskcluster/test-electronjs_v6.0_8k-linux-amd64-opt.yml similarity index 64% rename from taskcluster/test-electronjs_v7.1-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v6.0_8k-linux-amd64-opt.yml index 27a6a994..027c3fa2 100644 --- a/taskcluster/test-electronjs_v7.1-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v6.0_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.1 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.1, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v6.0 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v6.0, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v7.0-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v7.0-darwin-amd64-opt.yml index 5fc12199..f28c5af1 100644 --- a/taskcluster/test-electronjs_v7.0-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.0-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_12} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v7.0 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v7.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v7.0-win-amd64-opt.yml b/taskcluster/test-electronjs_v7.0-win-amd64-opt.yml index a9fa5b7f..e0a8ccbe 100644 --- a/taskcluster/test-electronjs_v7.0-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.0-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_12} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v7.0 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v7.0, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v7.0_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v7.0_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..c058ef71 --- /dev/null +++ b/taskcluster/test-electronjs_v7.0_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.0 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.0, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v6.0-linux-amd64-opt.yml b/taskcluster/test-electronjs_v7.0_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v6.0-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v7.0_8k-linux-amd64-opt.yml index 1d1c8fad..b20971c2 100644 --- a/taskcluster/test-electronjs_v6.0-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.0_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 6.0.11" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v6.0 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v6.0, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.0 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.0, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-electronjs_v7.1-darwin-amd64-opt.yml b/taskcluster/test-electronjs_v7.1-darwin-amd64-opt.yml index 1d876489..d0a29a07 100644 --- a/taskcluster/test-electronjs_v7.1-darwin-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.1-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_12} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2 16k" metadata: name: "DeepSpeech OSX AMD64 CPU ElectronJS v7.1 tests" description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v7.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v7.1-win-amd64-opt.yml b/taskcluster/test-electronjs_v7.1-win-amd64-opt.yml index 72e0cad0..da3c5586 100644 --- a/taskcluster/test-electronjs_v7.1-win-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.1-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_12} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2 16k" metadata: name: "DeepSpeech Windows AMD64 CPU ElectronJS v7.1 tests" description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v7.1, CPU only, optimized version" diff --git a/taskcluster/test-electronjs_v7.1_16k-linux-amd64-opt.yml b/taskcluster/test-electronjs_v7.1_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..4bd254df --- /dev/null +++ b/taskcluster/test-electronjs_v7.1_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.1 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.1, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-electronjs_v7.0-linux-amd64-opt.yml b/taskcluster/test-electronjs_v7.1_8k-linux-amd64-opt.yml similarity index 65% rename from taskcluster/test-electronjs_v7.0-linux-amd64-opt.yml rename to taskcluster/test-electronjs_v7.1_8k-linux-amd64-opt.yml index f04c7f1b..da038090 100644 --- a/taskcluster/test-electronjs_v7.0-linux-amd64-opt.yml +++ b/taskcluster/test-electronjs_v7.1_8k-linux-amd64-opt.yml @@ -3,12 +3,13 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py35m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.0.1" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 7.1.2 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.0 tests" - description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.0, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU ElectronJS v7.1 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v7.1, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-linux-opt-base.tyml b/taskcluster/test-linux-opt-base.tyml index f3de6fc9..89f02c31 100644 --- a/taskcluster/test-linux-opt-base.tyml +++ b/taskcluster/test-linux-opt-base.tyml @@ -31,7 +31,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } linux_amd64_build: { $eval: as_slugid("linux-amd64-cpu-opt") } linux_amd64_tflite: { $eval: as_slugid("linux-amd64-tflite-opt") } linux_amd64_ctc: { $eval: as_slugid("linux-amd64-ctc-opt") } diff --git a/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml index 62d7d8d5..b10337f9 100644 --- a/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml +++ b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml @@ -1,7 +1,8 @@ build: template_file: test-linux-opt-base.tyml dependencies: - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-lite_benchmark_model-ds-tests.sh" benchmark_model_bin: "https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.tensorflow.pip.r1.14.e77504ac6b941fd2af495b49a0bcd56f25ca0e1e.cpu/artifacts/public/lite_benchmark_model" diff --git a/taskcluster/test-netframework-win-amd64-opt.yml b/taskcluster/test-netframework-win-amd64-opt.yml index 6f116ef0..df789683 100644 --- a/taskcluster/test-netframework-win-amd64-opt.yml +++ b/taskcluster/test-netframework-win-amd64-opt.yml @@ -2,9 +2,10 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-netframework-ds-tests.sh" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-netframework-ds-tests.sh 16k" metadata: name: "DeepSpeech Windows AMD64 CPU .Net Framework tests" description: "Testing DeepSpeech .Net Framework for Windows/AMD64, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_10x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_10x-armbian-arm64-opt.yml index 26f6370c..363acc98 100644 --- a/taskcluster/test-nodejs_10x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_10x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_10} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 10.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v10.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_10x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_10x-darwin-amd64-opt.yml index 9142b2b3..028655ff 100644 --- a/taskcluster/test-nodejs_10x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_10x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_10} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 10.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v10.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_10x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_10x-raspbian-rpi3-opt.yml index 105645a7..d1867591 100644 --- a/taskcluster/test-nodejs_10x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_10x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_10} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 10.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 10.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 10.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v10.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_10x-win-amd64-opt.yml b/taskcluster/test-nodejs_10x-win-amd64-opt.yml index 9f69677b..b1b03b0d 100644 --- a/taskcluster/test-nodejs_10x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_10x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_10} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 10.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v10.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_10x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_10x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..f5a6bba6 --- /dev/null +++ b/taskcluster/test-nodejs_10x_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_10x-linux-amd64-opt.yml b/taskcluster/test-nodejs_10x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_10x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_10x_16k-linux-amd64-prod_pbmodel-opt.yml index 58c18ea3..b0ba032e 100644 --- a/taskcluster/test-nodejs_10x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_10x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -3,12 +3,11 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 10.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_10x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_10x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..084d1a4e --- /dev/null +++ b/taskcluster/test-nodejs_10x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,13 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 10.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 10.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_10x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_10x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..d8e572a8 --- /dev/null +++ b/taskcluster/test-nodejs_10x_8k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 10.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_10x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_10x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 73% rename from taskcluster/test-nodejs_10x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_10x_8k-linux-amd64-prod_pbmodel-opt.yml index 27546de4..d243a8bf 100644 --- a/taskcluster/test-nodejs_10x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_10x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 10.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 10.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 10.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_10x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_10x_8k_tflite-linux-amd64-prod-opt.yml similarity index 72% rename from taskcluster/test-nodejs_10x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_10x_8k_tflite-linux-amd64-prod-opt.yml index f5bddcdc..caf92571 100644 --- a/taskcluster/test-nodejs_10x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_10x_8k_tflite-linux-amd64-prod-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_10} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 10.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 10.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 10.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 10.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v10.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_11x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_11x-armbian-arm64-opt.yml index 40f69c1d..0cc9a1b1 100644 --- a/taskcluster/test-nodejs_11x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_11x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_11} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 11.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v11.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_11x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_11x-darwin-amd64-opt.yml index 7be86b9e..900f9b1e 100644 --- a/taskcluster/test-nodejs_11x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_11x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_11} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 11.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v11.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_11x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_11x-raspbian-rpi3-opt.yml index bb539555..570f1300 100644 --- a/taskcluster/test-nodejs_11x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_11x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_11} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 11.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 11.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 11.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v11.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_11x-win-amd64-opt.yml b/taskcluster/test-nodejs_11x-win-amd64-opt.yml index 6e0e6869..049609a9 100644 --- a/taskcluster/test-nodejs_11x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_11x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_11} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 11.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v11.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_11x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_11x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..c737f973 --- /dev/null +++ b/taskcluster/test-nodejs_11x_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_11x-linux-amd64-opt.yml b/taskcluster/test-nodejs_11x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_11x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_11x_16k-linux-amd64-prod_pbmodel-opt.yml index ab276400..e4aa5133 100644 --- a/taskcluster/test-nodejs_11x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_11x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -3,12 +3,11 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 11.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_11x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_11x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..d3828c29 --- /dev/null +++ b/taskcluster/test-nodejs_11x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,13 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 11.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 11.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_11x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_11x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..caf87066 --- /dev/null +++ b/taskcluster/test-nodejs_11x_8k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 11.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_11x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_11x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 73% rename from taskcluster/test-nodejs_11x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_11x_8k-linux-amd64-prod_pbmodel-opt.yml index 27e7fe0e..ae9a56e2 100644 --- a/taskcluster/test-nodejs_11x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_11x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 11.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 11.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 11.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_11x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_11x_8k_tflite-linux-amd64-prod-opt.yml similarity index 72% rename from taskcluster/test-nodejs_11x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_11x_8k_tflite-linux-amd64-prod-opt.yml index a2395458..30400533 100644 --- a/taskcluster/test-nodejs_11x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_11x_8k_tflite-linux-amd64-prod-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_11} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 11.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 11.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 11.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 11.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v11.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_12x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_12x-armbian-arm64-opt.yml index 09b8e7fd..d311e82f 100644 --- a/taskcluster/test-nodejs_12x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_12x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_12} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 12.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v12.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_12x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_12x-darwin-amd64-opt.yml index a7ee6457..c00c22f1 100644 --- a/taskcluster/test-nodejs_12x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_12x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_12} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 12.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v12.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_12x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_12x-raspbian-rpi3-opt.yml index 136ab5c2..f49dceac 100644 --- a/taskcluster/test-nodejs_12x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_12x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_12} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 12.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 12.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 12.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v12.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_12x-win-amd64-opt.yml b/taskcluster/test-nodejs_12x-win-amd64-opt.yml index cc1b84b5..12baaa17 100644 --- a/taskcluster/test-nodejs_12x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_12x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_12} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 12.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v12.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_12x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_12x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..70dccd10 --- /dev/null +++ b/taskcluster/test-nodejs_12x_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_12x-linux-amd64-opt.yml b/taskcluster/test-nodejs_12x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_12x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_12x_16k-linux-amd64-prod_pbmodel-opt.yml index df7255b5..2fde9023 100644 --- a/taskcluster/test-nodejs_12x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_12x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -3,12 +3,11 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 12.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_12x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_12x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..7fab7c58 --- /dev/null +++ b/taskcluster/test-nodejs_12x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,13 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 12.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 12.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_12x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_12x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..02226e4f --- /dev/null +++ b/taskcluster/test-nodejs_12x_8k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 12.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_12x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_12x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 73% rename from taskcluster/test-nodejs_12x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_12x_8k-linux-amd64-prod_pbmodel-opt.yml index 97013655..cee53070 100644 --- a/taskcluster/test-nodejs_12x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_12x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 12.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 12.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 12.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_12x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_12x_8k_tflite-linux-amd64-prod-opt.yml similarity index 72% rename from taskcluster/test-nodejs_12x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_12x_8k_tflite-linux-amd64-prod-opt.yml index 9f9543f6..782b189a 100644 --- a/taskcluster/test-nodejs_12x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_12x_8k_tflite-linux-amd64-prod-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 12.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 12.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 12.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 12.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v12.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_13x-armbian-arm64-opt.yml index 17729c25..bad38447 100644 --- a/taskcluster/test-nodejs_13x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_13x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_13} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 13.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_13x-darwin-amd64-opt.yml index 5558cff1..2c675613 100644 --- a/taskcluster/test-nodejs_13x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_13} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 13.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_13x-raspbian-rpi3-opt.yml index 55b47274..37a6a7ec 100644 --- a/taskcluster/test-nodejs_13x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_13x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_13} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 13.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 13.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x-win-amd64-opt.yml b/taskcluster/test-nodejs_13x-win-amd64-opt.yml index 56164dbe..b40d8904 100644 --- a/taskcluster/test-nodejs_13x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_13} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 13.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..d5247f8d --- /dev/null +++ b/taskcluster/test-nodejs_13x_16k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_13x-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_13x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_13x_16k-linux-amd64-prod_pbmodel-opt.yml index fb581065..ceb5ac8e 100644 --- a/taskcluster/test-nodejs_13x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -3,12 +3,11 @@ build: docker_image: "ubuntu:16.04" dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-opt.yml new file mode 100644 index 00000000..d16b502a --- /dev/null +++ b/taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "node-package-cpu" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml similarity index 77% rename from taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-opt.yml rename to taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml index ee1b0315..e1829499 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x_16k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml @@ -3,12 +3,11 @@ build: docker_image: "ubuntu:16.04" dependencies: - "node-package-cpu" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_13x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_13x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..761aad35 --- /dev/null +++ b/taskcluster/test-nodejs_13x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,13 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 13.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 13.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_13x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..ef2536ac --- /dev/null +++ b/taskcluster/test-nodejs_13x_8k-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_13x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 73% rename from taskcluster/test-nodejs_13x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_13x_8k-linux-amd64-prod_pbmodel-opt.yml index b0b02e9c..73578a55 100644 --- a/taskcluster/test-nodejs_13x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_13x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 13.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-opt.yml b/taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-opt.yml new file mode 100644 index 00000000..a5adcb77 --- /dev/null +++ b/taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-opt.yml @@ -0,0 +1,15 @@ +build: + template_file: test-linux-opt-base.tyml + docker_image: "ubuntu:16.04" + dependencies: + - "node-package-cpu" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml similarity index 89% rename from taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml index 6089b016..3f66bdaa 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_13x_8k_multiarchpkg-linux-amd64-prod_pbmodel-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 13.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS MultiArch Package 13.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS MultiArch Package v13.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_13x_8k_tflite-linux-amd64-prod-opt.yml similarity index 72% rename from taskcluster/test-nodejs_13x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_13x_8k_tflite-linux-amd64-prod-opt.yml index d32a7f95..8689522a 100644 --- a/taskcluster/test-nodejs_13x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_13x_8k_tflite-linux-amd64-prod-opt.yml @@ -7,7 +7,7 @@ build: > ${nodejs.packages_xenial.prep_13} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 13.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 13.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 13.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v13.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-armbian-arm64-opt.yml b/taskcluster/test-nodejs_13x_multiarchpkg-armbian-arm64-opt.yml index fdda9b79..44eb0722 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_13x_multiarchpkg-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "node-package-cpu" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_13} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS MultiArch Package 13.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS MultiArch Package v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-darwin-amd64-opt.yml b/taskcluster/test-nodejs_13x_multiarchpkg-darwin-amd64-opt.yml index 9f65a700..729d329d 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x_multiarchpkg-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "node-package-cpu" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_13} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS MultiArch Package 13.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS MultiArch Package v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_13x_multiarchpkg-raspbian-rpi3-opt.yml index 5f259faa..c88bf2ac 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_13x_multiarchpkg-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "node-package-cpu" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_13} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 13.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 13.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS MultiArch Package 13.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS MultiArch Package v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_13x_multiarchpkg-win-amd64-opt.yml b/taskcluster/test-nodejs_13x_multiarchpkg-win-amd64-opt.yml index 52ed8ecb..f7822560 100644 --- a/taskcluster/test-nodejs_13x_multiarchpkg-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_13x_multiarchpkg-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "node-package-cpu" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_13} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 13.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS MultiArch Package 13.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS MultiArch Package v13.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_4x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_4x-armbian-arm64-opt.yml index c505d33f..7d9f795c 100644 --- a/taskcluster/test-nodejs_4x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_4x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_4} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 4.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v4.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_4x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_4x-darwin-amd64-opt.yml index d27cdd00..bf438e4d 100644 --- a/taskcluster/test-nodejs_4x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_4x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_4} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 4.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v4.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_4x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_4x-raspbian-rpi3-opt.yml index 8e587ef5..ff0053ef 100644 --- a/taskcluster/test-nodejs_4x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_4x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_4} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 4.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 4.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 4.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v4.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_4x-win-amd64-opt.yml b/taskcluster/test-nodejs_4x-win-amd64-opt.yml index ce98586f..7f03b8f9 100644 --- a/taskcluster/test-nodejs_4x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_4x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_4} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 4.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v4.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_4x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_4x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..dfb7a9bf --- /dev/null +++ b/taskcluster/test-nodejs_4x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_4x-linux-amd64-opt.yml b/taskcluster/test-nodejs_4x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_4x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_4x_16k-linux-amd64-prod_pbmodel-opt.yml index 2fb698b8..81994ca7 100644 --- a/taskcluster/test-nodejs_4x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_4x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 4.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_4x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_4x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..1f31ea0b --- /dev/null +++ b/taskcluster/test-nodejs_4x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 4.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 4.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_4x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_4x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..78e4f1e2 --- /dev/null +++ b/taskcluster/test-nodejs_4x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 4.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_4x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_4x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_4x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_4x_8k-linux-amd64-prod_pbmodel-opt.yml index 96cb2a4b..29814b39 100644 --- a/taskcluster/test-nodejs_4x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_4x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 4.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 4.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 4.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_4x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_4x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_4x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_4x_8k_tflite-linux-amd64-prod-opt.yml index 34f7f323..86af2d16 100644 --- a/taskcluster/test-nodejs_4x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_4x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_4} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 4.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 4.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 4.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 4.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v4.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_5x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_5x-darwin-amd64-opt.yml index 1871888f..f1203f47 100644 --- a/taskcluster/test-nodejs_5x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_5x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_5} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 5.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 5.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 5.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v5.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_5x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_5x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..52a247d3 --- /dev/null +++ b/taskcluster/test-nodejs_5x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 5.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_5x-linux-amd64-opt.yml b/taskcluster/test-nodejs_5x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_5x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_5x_16k-linux-amd64-prod_pbmodel-opt.yml index 8ce05024..7f467317 100644 --- a/taskcluster/test-nodejs_5x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_5x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 5.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 5.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_5x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_5x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..ae9069e1 --- /dev/null +++ b/taskcluster/test-nodejs_5x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 5.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 5.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_5x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_5x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..efb74db3 --- /dev/null +++ b/taskcluster/test-nodejs_5x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 5.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_5x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_5x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_5x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_5x_8k-linux-amd64-prod_pbmodel-opt.yml index c6353ef9..33279c3b 100644 --- a/taskcluster/test-nodejs_5x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_5x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 5.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 5.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 5.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_5x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_5x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_5x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_5x_8k_tflite-linux-amd64-prod-opt.yml index e566f3b7..bc40ba80 100644 --- a/taskcluster/test-nodejs_5x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_5x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_5} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 5.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 5.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 5.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 5.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v5.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_6x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_6x-armbian-arm64-opt.yml index 7dede288..f55ccd87 100644 --- a/taskcluster/test-nodejs_6x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_6x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_6} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 6.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v6.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_6x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_6x-darwin-amd64-opt.yml index 3bf7a049..8ea10f73 100644 --- a/taskcluster/test-nodejs_6x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_6x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_6} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 6.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v6.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_6x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_6x-raspbian-rpi3-opt.yml index cd422ed4..ad1f71e9 100644 --- a/taskcluster/test-nodejs_6x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_6x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_6} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 6.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 6.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 6.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v6.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_6x-win-amd64-opt.yml b/taskcluster/test-nodejs_6x-win-amd64-opt.yml index 20124be4..deb7d3b0 100644 --- a/taskcluster/test-nodejs_6x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_6x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_6} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 6.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v6.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_6x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_6x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..35ef16a2 --- /dev/null +++ b/taskcluster/test-nodejs_6x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_6x-linux-amd64-opt.yml b/taskcluster/test-nodejs_6x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_6x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_6x_16k-linux-amd64-prod_pbmodel-opt.yml index 6d3b5cef..c1e0c788 100644 --- a/taskcluster/test-nodejs_6x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_6x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 6.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_6x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_6x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..9d25816a --- /dev/null +++ b/taskcluster/test-nodejs_6x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 6.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 6.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_6x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_6x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..6d3cb252 --- /dev/null +++ b/taskcluster/test-nodejs_6x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 6.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_6x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_6x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_6x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_6x_8k-linux-amd64-prod_pbmodel-opt.yml index 70ab2539..a81f592f 100644 --- a/taskcluster/test-nodejs_6x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_6x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 6.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 6.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 6.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_6x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_6x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_6x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_6x_8k_tflite-linux-amd64-prod-opt.yml index 45fad3ec..91f6f330 100644 --- a/taskcluster/test-nodejs_6x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_6x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_6} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 6.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 6.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 6.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 6.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v6.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_7x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_7x-armbian-arm64-opt.yml index ec565d5d..74e4d101 100644 --- a/taskcluster/test-nodejs_7x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_7x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_7} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 7.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v7.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_7x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_7x-darwin-amd64-opt.yml index e03494d2..318527ac 100644 --- a/taskcluster/test-nodejs_7x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_7x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_7} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 7.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v7.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_7x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_7x-raspbian-rpi3-opt.yml index 0a9856bc..780e713f 100644 --- a/taskcluster/test-nodejs_7x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_7x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_7} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 7.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 7.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 7.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v7.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_7x-win-amd64-opt.yml b/taskcluster/test-nodejs_7x-win-amd64-opt.yml index b9cf1be9..d4b57a6e 100644 --- a/taskcluster/test-nodejs_7x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_7x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_7} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 7.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v7.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_7x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_7x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..cf81e4d5 --- /dev/null +++ b/taskcluster/test-nodejs_7x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_7x-linux-amd64-opt.yml b/taskcluster/test-nodejs_7x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_7x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_7x_16k-linux-amd64-prod_pbmodel-opt.yml index c473cf80..11bb3136 100644 --- a/taskcluster/test-nodejs_7x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_7x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 7.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_7x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_7x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..71f65ffb --- /dev/null +++ b/taskcluster/test-nodejs_7x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 7.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 7.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_7x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_7x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..bdeb23cf --- /dev/null +++ b/taskcluster/test-nodejs_7x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 7.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_7x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_7x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_7x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_7x_8k-linux-amd64-prod_pbmodel-opt.yml index 84cbcdf0..a57dff92 100644 --- a/taskcluster/test-nodejs_7x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_7x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 7.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 7.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 7.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_7x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_7x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_7x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_7x_8k_tflite-linux-amd64-prod-opt.yml index fde875cd..c3ec1b2b 100644 --- a/taskcluster/test-nodejs_7x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_7x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_7} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 7.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 7.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 7.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 7.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v7.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_8x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_8x-armbian-arm64-opt.yml index 446fc3c0..f94eeb85 100644 --- a/taskcluster/test-nodejs_8x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_8x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_8} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 8.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v8.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_8x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_8x-darwin-amd64-opt.yml index ccd77ef5..1fdbb011 100644 --- a/taskcluster/test-nodejs_8x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_8x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_8} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 8.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v8.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_8x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_8x-raspbian-rpi3-opt.yml index 1d9ed4ce..ddf759c9 100644 --- a/taskcluster/test-nodejs_8x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_8x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_8} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 8.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 8.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 8.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v8.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_8x-win-amd64-opt.yml b/taskcluster/test-nodejs_8x-win-amd64-opt.yml index 61083841..07bbe67e 100644 --- a/taskcluster/test-nodejs_8x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_8x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_8} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 8.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v8.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_8x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_8x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..95bfa9bd --- /dev/null +++ b/taskcluster/test-nodejs_8x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_8x-linux-amd64-opt.yml b/taskcluster/test-nodejs_8x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_8x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_8x_16k-linux-amd64-prod_pbmodel-opt.yml index c1b06aa3..892de8da 100644 --- a/taskcluster/test-nodejs_8x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_8x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 8.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_8x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_8x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..a3b45eb3 --- /dev/null +++ b/taskcluster/test-nodejs_8x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 8.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 8.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_8x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_8x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..0bb30d11 --- /dev/null +++ b/taskcluster/test-nodejs_8x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 8.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_8x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_8x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_8x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_8x_8k-linux-amd64-prod_pbmodel-opt.yml index 72e9473e..beb8735d 100644 --- a/taskcluster/test-nodejs_8x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_8x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 8.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 8.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 8.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_8x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_8x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_8x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_8x_8k_tflite-linux-amd64-prod-opt.yml index a006ed5f..c648e1c5 100644 --- a/taskcluster/test-nodejs_8x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_8x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_8} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 8.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 8.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 8.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 8.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v8.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_9x-armbian-arm64-opt.yml b/taskcluster/test-nodejs_9x-armbian-arm64-opt.yml index 98510059..00fa2109 100644 --- a/taskcluster/test-nodejs_9x-armbian-arm64-opt.yml +++ b/taskcluster/test-nodejs_9x-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_9} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU NodeJS 9.x tests" description: "Testing DeepSpeech forARMbian ARM64 Cortex-A53 on NodeJS v9.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_9x-darwin-amd64-opt.yml b/taskcluster/test-nodejs_9x-darwin-amd64-opt.yml index 858c8aae..d7009cb5 100644 --- a/taskcluster/test-nodejs_9x-darwin-amd64-opt.yml +++ b/taskcluster/test-nodejs_9x-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.brew.setup} && ${nodejs.brew.prep_9} && ${nodejs.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x 16k" metadata: name: "DeepSpeech OSX AMD64 CPU NodeJS 9.x tests" description: "Testing DeepSpeech for OSX/AMD64 on NodeJS v9.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_9x-raspbian-rpi3-opt.yml b/taskcluster/test-nodejs_9x-raspbian-rpi3-opt.yml index d539fe0b..d8f9e098 100644 --- a/taskcluster/test-nodejs_9x-raspbian-rpi3-opt.yml +++ b/taskcluster/test-nodejs_9x-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_buster.prep_9} && ${nodejs.packages_buster.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 9.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests.sh 9.x 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU NodeJS 9.x tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on NodeJS v9.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_9x-win-amd64-opt.yml b/taskcluster/test-nodejs_9x-win-amd64-opt.yml index 872140f7..88e27352 100644 --- a/taskcluster/test-nodejs_9x-win-amd64-opt.yml +++ b/taskcluster/test-nodejs_9x-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} && ${nodejs.win.prep_9} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x 16k" metadata: name: "DeepSpeech Windows AMD64 CPU NodeJS 9.x tests" description: "Testing DeepSpeech for Windows/AMD64 on NodeJS v9.x, CPU only, optimized version" diff --git a/taskcluster/test-nodejs_9x_16k-linux-amd64-opt.yml b/taskcluster/test-nodejs_9x_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..314147fc --- /dev/null +++ b/taskcluster/test-nodejs_9x_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_9x-linux-amd64-opt.yml b/taskcluster/test-nodejs_9x_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 71% rename from taskcluster/test-nodejs_9x-linux-amd64-opt.yml rename to taskcluster/test-nodejs_9x_16k-linux-amd64-prod_pbmodel-opt.yml index 1a05ee2c..ad47ce14 100644 --- a/taskcluster/test-nodejs_9x-linux-amd64-opt.yml +++ b/taskcluster/test-nodejs_9x_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 9.x 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_9x_16k_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_9x_16k_tflite-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..b3c4dcc9 --- /dev/null +++ b/taskcluster/test-nodejs_9x_16k_tflite-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 9.x 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite NodeJS 9.x prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-nodejs_9x_8k-linux-amd64-opt.yml b/taskcluster/test-nodejs_9x_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..0e560338 --- /dev/null +++ b/taskcluster/test-nodejs_9x_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests.sh 9.x 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_9x-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-nodejs_9x_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 72% rename from taskcluster/test-nodejs_9x-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-nodejs_9x_8k-linux-amd64-prod_pbmodel-opt.yml index 5e37ed18..1ee55532 100644 --- a/taskcluster/test-nodejs_9x-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-nodejs_9x_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 9.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node-tests-prod.sh 9.x 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU NodeJS 9.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-nodejs_9x_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-nodejs_9x_8k_tflite-linux-amd64-prod-opt.yml similarity index 71% rename from taskcluster/test-nodejs_9x_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-nodejs_9x_8k_tflite-linux-amd64-prod-opt.yml index 63479024..c8bda556 100644 --- a/taskcluster/test-nodejs_9x_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-nodejs_9x_8k_tflite-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > ${nodejs.packages_trusty.prep_9} && ${nodejs.packages_trusty.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 9.x" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-node_tflite-tests-prod.sh 9.x 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite NodeJS 9.x prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite NodeJS 9.x prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on NodeJS v9.x on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_27m-darwin-amd64-opt.yml b/taskcluster/test-python_27m-darwin-amd64-opt.yml index 53cf9b6e..f4182aac 100644 --- a/taskcluster/test-python_27m-darwin-amd64-opt.yml +++ b/taskcluster/test-python_27m-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${python.brew.setup} && ${python.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:m" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:m 16k" metadata: name: "DeepSpeech OSX AMD64 CPU Python v2.7 m tests" description: "Testing DeepSpeech for OSX/AMD64 on Python v2.7 m, CPU only, optimized version" diff --git a/taskcluster/test-python_27m_16k-linux-amd64-opt.yml b/taskcluster/test-python_27m_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..b6898e1c --- /dev/null +++ b/taskcluster/test-python_27m_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 m tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27m_16k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_27m_16k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..94caf55e --- /dev/null +++ b/taskcluster/test-python_27m_16k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 m prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27m_8k-linux-amd64-opt.yml b/taskcluster/test-python_27m_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..be082a27 --- /dev/null +++ b/taskcluster/test-python_27m_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:m 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 m tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_27m_8k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_27m_8k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..c49f1dd3 --- /dev/null +++ b/taskcluster/test-python_27m_8k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:m 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 m prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_27m_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_27m_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..b9479703 --- /dev/null +++ b/taskcluster/test-python_27m_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v2.7 m prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_27m_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_27m_tflite_8k-linux-amd64-prod-opt.yml similarity index 77% rename from taskcluster/test-python_27m_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-python_27m_tflite_8k-linux-amd64-prod-opt.yml index eea77ff4..92c250ca 100644 --- a/taskcluster/test-python_27m_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-python_27m_tflite_8k-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:m 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v2.7 m prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite Python v2.7 m prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_27mu_16k-linux-amd64-opt.yml b/taskcluster/test-python_27mu_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..dfbf991e --- /dev/null +++ b/taskcluster/test-python_27mu_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:mu 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27mu_16k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_27mu_16k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..ac553668 --- /dev/null +++ b/taskcluster/test-python_27mu_16k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:mu 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27mu_8k-linux-amd64-opt.yml b/taskcluster/test-python_27mu_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..a346c71f --- /dev/null +++ b/taskcluster/test-python_27mu_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:mu 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_27mu_8k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_27mu_8k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..c584fddc --- /dev/null +++ b/taskcluster/test-python_27mu_8k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:mu 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_27mu_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_27mu_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..275e45a9 --- /dev/null +++ b/taskcluster/test-python_27mu_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:mu 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v2.7 mu prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_27mu_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_27mu_tflite_8k-linux-amd64-prod-opt.yml similarity index 76% rename from taskcluster/test-python_27mu_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-python_27mu_tflite_8k-linux-amd64-prod-opt.yml index 022b0650..c22dbfb7 100644 --- a/taskcluster/test-python_27mu_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-python_27mu_tflite_8k-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:mu" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 2.7.14:mu 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v2.7 mu prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite Python v2.7 mu prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_35-darwin-amd64-opt.yml b/taskcluster/test-python_35-darwin-amd64-opt.yml index a7350d1d..335bc732 100644 --- a/taskcluster/test-python_35-darwin-amd64-opt.yml +++ b/taskcluster/test-python_35-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${python.brew.setup} && ${python.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.5:m" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.5:m 16k" metadata: name: "DeepSpeech OSX AMD64 CPU Python v3.5 tests" description: "Testing DeepSpeech for OSX/AMD64 on Python v3.5, CPU only, optimized version" diff --git a/taskcluster/test-python_35-linux-amd64-opt.yml b/taskcluster/test-python_35-linux-amd64-opt.yml deleted file mode 100644 index 088bf6f3..00000000 --- a/taskcluster/test-python_35-linux-amd64-opt.yml +++ /dev/null @@ -1,13 +0,0 @@ -build: - template_file: test-linux-opt-base.tyml - dependencies: - - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - system_setup: - > - apt-get -qq -y install ${python.packages_trusty.apt} - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.5:m" - metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.5 tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5, CPU only, optimized version" diff --git a/taskcluster/test-python_35-win-amd64-opt.yml b/taskcluster/test-python_35-win-amd64-opt.yml index 17f1afb7..f5a0831f 100644 --- a/taskcluster/test-python_35-win-amd64-opt.yml +++ b/taskcluster/test-python_35-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.4:m" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.4:m 16k" metadata: name: "DeepSpeech Windows AMD64 CPU Python v3.5 tests" description: "Testing DeepSpeech for Windows/AMD64 on Python v3.5, CPU only, optimized version" diff --git a/taskcluster/test-python_35_16k-linux-amd64-opt.yml b/taskcluster/test-python_35_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..80a32631 --- /dev/null +++ b/taskcluster/test-python_35_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.5:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.5 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_35_16k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_35_16k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..c77056e8 --- /dev/null +++ b/taskcluster/test-python_35_16k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.5.5:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.5 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27mu-linux-amd64-opt.yml b/taskcluster/test-python_35_8k-linux-amd64-opt.yml similarity index 56% rename from taskcluster/test-python_27mu-linux-amd64-opt.yml rename to taskcluster/test-python_35_8k-linux-amd64-opt.yml index 85ca31e0..02328919 100644 --- a/taskcluster/test-python_27mu-linux-amd64-opt.yml +++ b/taskcluster/test-python_35_8k-linux-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:mu" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.5.5:m 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.5 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_27m-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_35_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 65% rename from taskcluster/test-python_27m-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-python_35_8k-linux-amd64-prod_pbmodel-opt.yml index a342539d..8030801f 100644 --- a/taskcluster/test-python_27m-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-python_35_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.5.5:m 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v2.7 m prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.5 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_35_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_35_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..c10f02fa --- /dev/null +++ b/taskcluster/test-python_35_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.5.5:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v3.5 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_37_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_35_tflite_8k-linux-amd64-prod-opt.yml similarity index 65% rename from taskcluster/test-python_37_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-python_35_tflite_8k-linux-amd64-prod-opt.yml index 4c527b32..82011dab 100644 --- a/taskcluster/test-python_37_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-python_35_tflite_8k-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.7.0:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.5.5:m 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v3.7 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite Python v3.5 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_36-darwin-amd64-opt.yml b/taskcluster/test-python_36-darwin-amd64-opt.yml index eaab5d27..a59bfdfe 100644 --- a/taskcluster/test-python_36-darwin-amd64-opt.yml +++ b/taskcluster/test-python_36-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${python.brew.setup} && ${python.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.4:m" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.4:m 16k" metadata: name: "DeepSpeech OSX AMD64 CPU Python v3.6 tests" description: "Testing DeepSpeech for OSX/AMD64 on Python v3.6.4:m, CPU only, optimized version" diff --git a/taskcluster/test-python_36-win-amd64-opt.yml b/taskcluster/test-python_36-win-amd64-opt.yml index 3fad9f89..15c485ca 100644 --- a/taskcluster/test-python_36-win-amd64-opt.yml +++ b/taskcluster/test-python_36-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.7:m" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.7:m 16k" metadata: name: "DeepSpeech Windows AMD64 CPU Python v3.6 tests" description: "Testing DeepSpeech for Windows/AMD64 on Python v3.6, CPU only, optimized version" diff --git a/taskcluster/test-python_36_16k-linux-amd64-opt.yml b/taskcluster/test-python_36_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..67a7f566 --- /dev/null +++ b/taskcluster/test-python_36_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.4:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.6 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_36-linux-amd64-opt.yml b/taskcluster/test-python_36_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 64% rename from taskcluster/test-python_36-linux-amd64-opt.yml rename to taskcluster/test-python_36_16k-linux-amd64-prod_pbmodel-opt.yml index 2a6c1774..44353fab 100644 --- a/taskcluster/test-python_36-linux-amd64-opt.yml +++ b/taskcluster/test-python_36_16k-linux-amd64-prod_pbmodel-opt.yml @@ -2,12 +2,11 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.4:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.6.4:m 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.6 tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.6 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_36_8k-linux-amd64-opt.yml b/taskcluster/test-python_36_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..d047a71c --- /dev/null +++ b/taskcluster/test-python_36_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.6.4:m 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.6 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_36-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_36_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 66% rename from taskcluster/test-python_36-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-python_36_8k-linux-amd64-prod_pbmodel-opt.yml index 534b7831..6ea4b41b 100644 --- a/taskcluster/test-python_36-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-python_36_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.6.4:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.6.4:m 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.6 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.6 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_36_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_36_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..c002707c --- /dev/null +++ b/taskcluster/test-python_36_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.6.4:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v3.6 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_36_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_36_tflite_8k-linux-amd64-prod-opt.yml similarity index 65% rename from taskcluster/test-python_36_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-python_36_tflite_8k-linux-amd64-prod-opt.yml index 55eb01c6..3f90116b 100644 --- a/taskcluster/test-python_36_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-python_36_tflite_8k-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.6.4:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.6.4:m 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v3.6 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite Python v3.6 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.6 on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_37-darwin-amd64-opt.yml b/taskcluster/test-python_37-darwin-amd64-opt.yml index 91ff9a14..d556ca69 100644 --- a/taskcluster/test-python_37-darwin-amd64-opt.yml +++ b/taskcluster/test-python_37-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${python.brew.setup} && ${python.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.0:m" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.0:m 16k" metadata: name: "DeepSpeech OSX AMD64 CPU Python v3.7 tests" description: "Testing DeepSpeech for OSX/AMD64 on Python v3.7.0:m, CPU only, optimized version" diff --git a/taskcluster/test-python_37-linux-amd64-opt.yml b/taskcluster/test-python_37-linux-amd64-opt.yml deleted file mode 100644 index 3d39f2ed..00000000 --- a/taskcluster/test-python_37-linux-amd64-opt.yml +++ /dev/null @@ -1,13 +0,0 @@ -build: - template_file: test-linux-opt-base.tyml - dependencies: - - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - system_setup: - > - apt-get -qq -y install ${python.packages_trusty.apt} - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.0:m" - metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.7 tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7, CPU only, optimized version" diff --git a/taskcluster/test-python_37-win-amd64-opt.yml b/taskcluster/test-python_37-win-amd64-opt.yml index 527870ec..1bc23335 100644 --- a/taskcluster/test-python_37-win-amd64-opt.yml +++ b/taskcluster/test-python_37-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.1:m" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.1:m 16k" metadata: name: "DeepSpeech Windows AMD64 CPU Python v3.7 tests" description: "Testing DeepSpeech for Windows/AMD64 on Python v3.7, CPU only, optimized version" diff --git a/taskcluster/test-python_37_16k-linux-amd64-opt.yml b/taskcluster/test-python_37_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..9c3cf9c2 --- /dev/null +++ b/taskcluster/test-python_37_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.0:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.7 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_37_16k-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_37_16k-linux-amd64-prod_pbmodel-opt.yml new file mode 100644 index 00000000..2876396b --- /dev/null +++ b/taskcluster/test-python_37_16k-linux-amd64-prod_pbmodel-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.7.0:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.7 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_37_8k-linux-amd64-opt.yml b/taskcluster/test-python_37_8k-linux-amd64-opt.yml new file mode 100644 index 00000000..42afe77b --- /dev/null +++ b/taskcluster/test-python_37_8k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.0:m 8k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.7 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_37-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_37_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 65% rename from taskcluster/test-python_37-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-python_37_8k-linux-amd64-prod_pbmodel-opt.yml index 72f827d6..3a3971e7 100644 --- a/taskcluster/test-python_37-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-python_37_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.7.0:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.7.0:m 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.7 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.7 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_37_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_37_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..30c90339 --- /dev/null +++ b/taskcluster/test-python_37_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.7.0:m 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v3.7 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_37_tflite_8k-linux-amd64-prod-opt.yml b/taskcluster/test-python_37_tflite_8k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..d32a8623 --- /dev/null +++ b/taskcluster/test-python_37_tflite_8k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.7.0:m 8k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v3.7 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.7 on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-python_37m-armbian-arm64-opt.yml b/taskcluster/test-python_37m-armbian-arm64-opt.yml index da6fbf02..5b990c86 100644 --- a/taskcluster/test-python_37m-armbian-arm64-opt.yml +++ b/taskcluster/test-python_37m-armbian-arm64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-armbian-opt-base.tyml dependencies: - "linux-arm64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.3:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.7.3:m 16k" metadata: name: "DeepSpeech ARMbian ARM64 Cortex-A53 CPU Python v3.7 tests" description: "Testing DeepSpeech for ARMbian ARM64 Cortex-A53 on Python v3.7, CPU only, optimized version" diff --git a/taskcluster/test-python_37m-raspbian-rpi3-opt.yml b/taskcluster/test-python_37m-raspbian-rpi3-opt.yml index 38924697..7f898627 100644 --- a/taskcluster/test-python_37m-raspbian-rpi3-opt.yml +++ b/taskcluster/test-python_37m-raspbian-rpi3-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-raspbian-opt-base.tyml dependencies: - "linux-rpi3-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_buster.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests.sh 3.7.3:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests.sh 3.7.3:m 16k" metadata: name: "DeepSpeech Raspbian RPi3/ARMv7 CPU Python v3.7 tests" description: "Testing DeepSpeech for Raspbian RPi3/ARMv7 on Python v3.7, CPU only, optimized version" diff --git a/taskcluster/test-python_38-darwin-amd64-opt.yml b/taskcluster/test-python_38-darwin-amd64-opt.yml index b1ba8110..242e4f28 100644 --- a/taskcluster/test-python_38-darwin-amd64-opt.yml +++ b/taskcluster/test-python_38-darwin-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-darwin-opt-base.tyml dependencies: - "darwin-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${python.brew.setup} && ${python.brew.env} args: - tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0:" + tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0: 16k" metadata: name: "DeepSpeech OSX AMD64 CPU Python v3.8 tests" description: "Testing DeepSpeech for OSX/AMD64 on Python v3.8.0:m, CPU only, optimized version" diff --git a/taskcluster/test-python_38-linux-amd64-opt.yml b/taskcluster/test-python_38-linux-amd64-opt.yml deleted file mode 100644 index 6cb41e85..00000000 --- a/taskcluster/test-python_38-linux-amd64-opt.yml +++ /dev/null @@ -1,13 +0,0 @@ -build: - template_file: test-linux-opt-base.tyml - dependencies: - - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" - system_setup: - > - apt-get -qq -y install ${python.packages_trusty.apt} - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0:" - metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.8 tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8, CPU only, optimized version" diff --git a/taskcluster/test-python_38-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_38-linux-amd64-prod_pbmodel-opt.yml deleted file mode 100644 index 1b767056..00000000 --- a/taskcluster/test-python_38-linux-amd64-prod_pbmodel-opt.yml +++ /dev/null @@ -1,12 +0,0 @@ -build: - template_file: test-linux-opt-base.tyml - dependencies: - - "linux-amd64-cpu-opt" - system_setup: - > - apt-get -qq -y install ${python.packages_trusty.apt} - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.8.0:" - metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.8 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, CPU only, optimized version" diff --git a/taskcluster/test-python_38-win-amd64-opt.yml b/taskcluster/test-python_38-win-amd64-opt.yml index 5a8cc08b..1fb21922 100644 --- a/taskcluster/test-python_38-win-amd64-opt.yml +++ b/taskcluster/test-python_38-win-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-win-opt-base.tyml dependencies: - "win-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" system_setup: > ${system.sox_win} args: - tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0:" + tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0: 16k" metadata: name: "DeepSpeech Windows AMD64 CPU Python v3.8 tests" description: "Testing DeepSpeech for Windows/AMD64 on Python v3.8, CPU only, optimized version" diff --git a/taskcluster/test-python_38_16k-linux-amd64-opt.yml b/taskcluster/test-python_38_16k-linux-amd64-opt.yml new file mode 100644 index 00000000..ebb5892d --- /dev/null +++ b/taskcluster/test-python_38_16k-linux-amd64-opt.yml @@ -0,0 +1,14 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-cpu-opt" + - "test-training_16k-linux-amd64-py36m-opt" + test_model_task: "test-training_16k-linux-amd64-py36m-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0: 16k" + metadata: + name: "DeepSpeech Linux AMD64 CPU Python v3.8 tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27mu-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_38_16k-linux-amd64-prod_pbmodel-opt.yml similarity index 65% rename from taskcluster/test-python_27mu-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-python_38_16k-linux-amd64-prod_pbmodel-opt.yml index aa4b55b6..13ec7196 100644 --- a/taskcluster/test-python_27mu-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-python_38_16k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 2.7.14:mu" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.8.0: 16k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v2.7 mu prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 mu on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.8 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, CPU only, optimized version (16kHz)" diff --git a/taskcluster/test-python_27m-linux-amd64-opt.yml b/taskcluster/test-python_38_8k-linux-amd64-opt.yml similarity index 56% rename from taskcluster/test-python_27m-linux-amd64-opt.yml rename to taskcluster/test-python_38_8k-linux-amd64-opt.yml index fdb05e7a..c147bac7 100644 --- a/taskcluster/test-python_27m-linux-amd64-opt.yml +++ b/taskcluster/test-python_38_8k-linux-amd64-opt.yml @@ -2,12 +2,13 @@ build: template_file: test-linux-opt-base.tyml dependencies: - "linux-amd64-cpu-opt" - - "test-training_upstream-linux-amd64-py36m-opt" + - "test-training_8k-linux-amd64-py36m-opt" + test_model_task: "test-training_8k-linux-amd64-py36m-opt" system_setup: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 2.7.14:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests.sh 3.8.0: 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v2.7 m tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v2.7 m, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.8 tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_35-linux-amd64-prod_pbmodel-opt.yml b/taskcluster/test-python_38_8k-linux-amd64-prod_pbmodel-opt.yml similarity index 66% rename from taskcluster/test-python_35-linux-amd64-prod_pbmodel-opt.yml rename to taskcluster/test-python_38_8k-linux-amd64-prod_pbmodel-opt.yml index 9b9348dd..9f643a31 100644 --- a/taskcluster/test-python_35-linux-amd64-prod_pbmodel-opt.yml +++ b/taskcluster/test-python_38_8k-linux-amd64-prod_pbmodel-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.5.5:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python-tests-prod.sh 3.8.0: 8k" metadata: - name: "DeepSpeech Linux AMD64 CPU Python v3.5 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU Python v3.8 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, CPU only, optimized version (8kHz)" diff --git a/taskcluster/test-python_38_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_38_tflite-linux-amd64-prod-opt.yml deleted file mode 100644 index 18aad46b..00000000 --- a/taskcluster/test-python_38_tflite-linux-amd64-prod-opt.yml +++ /dev/null @@ -1,12 +0,0 @@ -build: - template_file: test-linux-opt-base.tyml - dependencies: - - "linux-amd64-tflite-opt" - system_setup: - > - apt-get -qq -y install ${python.packages_trusty.apt} - args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.8.0:" - metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v3.8 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, TFLite, optimized version" diff --git a/taskcluster/test-python_38_tflite_16k-linux-amd64-prod-opt.yml b/taskcluster/test-python_38_tflite_16k-linux-amd64-prod-opt.yml new file mode 100644 index 00000000..ebddd8fb --- /dev/null +++ b/taskcluster/test-python_38_tflite_16k-linux-amd64-prod-opt.yml @@ -0,0 +1,12 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-tflite-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.8.0: 16k" + metadata: + name: "DeepSpeech Linux AMD64 TFLite Python v3.8 prod tests (16kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, TFLite, optimized version (16kHz)" diff --git a/taskcluster/test-python_35_tflite-linux-amd64-prod-opt.yml b/taskcluster/test-python_38_tflite_8k-linux-amd64-prod-opt.yml similarity index 65% rename from taskcluster/test-python_35_tflite-linux-amd64-prod-opt.yml rename to taskcluster/test-python_38_tflite_8k-linux-amd64-prod-opt.yml index 28bec681..0505cda8 100644 --- a/taskcluster/test-python_35_tflite-linux-amd64-prod-opt.yml +++ b/taskcluster/test-python_38_tflite_8k-linux-amd64-prod-opt.yml @@ -6,7 +6,7 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.5.5:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-python_tflite-tests-prod.sh 3.8.0: 8k" metadata: - name: "DeepSpeech Linux AMD64 TFLite Python v3.5 prod tests" - description: "Testing DeepSpeech for Linux/AMD64 on Python v3.5 on prod model, TFLite, optimized version" + name: "DeepSpeech Linux AMD64 TFLite Python v3.8 prod tests (8kHz)" + description: "Testing DeepSpeech for Linux/AMD64 on Python v3.8 on prod model, TFLite, optimized version (8kHz)" diff --git a/taskcluster/test-raspbian-opt-base.tyml b/taskcluster/test-raspbian-opt-base.tyml index faf511a8..ef206a12 100644 --- a/taskcluster/test-raspbian-opt-base.tyml +++ b/taskcluster/test-raspbian-opt-base.tyml @@ -31,7 +31,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } linux_rpi3_build: { $eval: as_slugid("linux-rpi3-cpu-opt") } in: DEEPSPEECH_ARTIFACTS_ROOT: https://community-tc.services.mozilla.com/api/queue/v1/task/${linux_rpi3_build}/artifacts/public diff --git a/taskcluster/test-training_upstream-linux-amd64-py35m-opt.yml b/taskcluster/test-training_16k-linux-amd64-py35m-opt.yml similarity index 76% rename from taskcluster/test-training_upstream-linux-amd64-py35m-opt.yml rename to taskcluster/test-training_16k-linux-amd64-py35m-opt.yml index 8d85d948..def5cc5b 100644 --- a/taskcluster/test-training_upstream-linux-amd64-py35m-opt.yml +++ b/taskcluster/test-training_16k-linux-amd64-py35m-opt.yml @@ -6,8 +6,8 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-train-tests.sh 3.5.5:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-train-tests.sh 3.5.5:m 16k" convert_graphdef: "https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.tensorflow.pip.r1.14.e77504ac6b941fd2af495b49a0bcd56f25ca0e1e.cpu/artifacts/public/convert_graphdef_memmapped_format" metadata: - name: "DeepSpeech Linux AMD64 CPU upstream training Py3.5" - description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 using upstream TensorFlow Python 3.5, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU 16kHz training Py3.5" + description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 16kHz Python 3.5, CPU only, optimized version" diff --git a/taskcluster/test-training_upstream-linux-amd64-py36m-opt.yml b/taskcluster/test-training_16k-linux-amd64-py36m-opt.yml similarity index 75% rename from taskcluster/test-training_upstream-linux-amd64-py36m-opt.yml rename to taskcluster/test-training_16k-linux-amd64-py36m-opt.yml index 1c5a932a..d8cb4613 100644 --- a/taskcluster/test-training_upstream-linux-amd64-py36m-opt.yml +++ b/taskcluster/test-training_16k-linux-amd64-py36m-opt.yml @@ -6,8 +6,8 @@ build: > apt-get -qq -y install ${python.packages_trusty.apt} args: - tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-train-tests.sh 3.6.4:m" + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-train-tests.sh 3.6.4:m 16k" convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.14.351a98ab6e60c2bf257f05e515a420aba3027d8b.cpu/artifacts/public/convert_graphdef_memmapped_format" metadata: - name: "DeepSpeech Linux AMD64 CPU upstream training Py3.6" - description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 using upstream TensorFlow Python 3.6, CPU only, optimized version" + name: "DeepSpeech Linux AMD64 CPU 16kHz training Py3.6" + description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 16kHz Python 3.6, CPU only, optimized version" diff --git a/taskcluster/test-training_8k-linux-amd64-py36m-opt.yml b/taskcluster/test-training_8k-linux-amd64-py36m-opt.yml new file mode 100644 index 00000000..8d5c6de4 --- /dev/null +++ b/taskcluster/test-training_8k-linux-amd64-py36m-opt.yml @@ -0,0 +1,13 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "linux-amd64-ctc-opt" + system_setup: + > + apt-get -qq -y install ${python.packages_trusty.apt} + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-train-tests.sh 3.6.4:m 8k" + convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.14.351a98ab6e60c2bf257f05e515a420aba3027d8b.cpu/artifacts/public/convert_graphdef_memmapped_format" + metadata: + name: "DeepSpeech Linux AMD64 CPU 8kHz training Py3.6" + description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 8kHz Python 3.6, CPU only, optimized version" diff --git a/taskcluster/test-win-opt-base.tyml b/taskcluster/test-win-opt-base.tyml index 3ff211e6..5f9454cc 100644 --- a/taskcluster/test-win-opt-base.tyml +++ b/taskcluster/test-win-opt-base.tyml @@ -36,7 +36,7 @@ then: env: $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } + training: { $eval: as_slugid(build.test_model_task) } win_amd64_build: { $eval: as_slugid("win-amd64-cpu-opt") } win_amd64_tflite: { $eval: as_slugid("win-amd64-tflite-opt") } in: diff --git a/taskcluster/win-opt-base.tyml b/taskcluster/win-opt-base.tyml index 081386ec..14ef60bb 100644 --- a/taskcluster/win-opt-base.tyml +++ b/taskcluster/win-opt-base.tyml @@ -36,15 +36,11 @@ payload: https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-base-x86_64-20180531.tar.xz/download env: - $let: - training: { $eval: as_slugid("test-training_upstream-linux-amd64-py36m-opt") } - in: - TC_MSYS_VERSION: 'MSYS_NT-6.3' - MSYS: 'winsymlinks:nativestrict' - TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} - DEEPSPEECH_TEST_MODEL: https://community-tc.services.mozilla.com/api/queue/v1/task/${training}/artifacts/public/output_graph.pb - EXAMPLES_CLONE_URL: "https://github.com/mozilla/DeepSpeech-examples" - EXAMPLES_CHECKOUT_TARGET: "master" + TC_MSYS_VERSION: 'MSYS_NT-6.3' + MSYS: 'winsymlinks:nativestrict' + TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} + EXAMPLES_CLONE_URL: "https://github.com/mozilla/DeepSpeech-examples" + EXAMPLES_CHECKOUT_TARGET: "master" command: - >-