diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0d68fcd..1d1987d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -53,7 +53,7 @@ body: - Web (WASM) - Linux (x86_64) - macOS (x86_64, arm64) - - Windows (x86_64) + - Windows (x86_64, arm64) - Raspberry Pi validations: required: true diff --git a/.github/workflows/c-demos.yml b/.github/workflows/c-demos.yml index ca47daa..a5eabd2 100644 --- a/.github/workflows/c-demos.yml +++ b/.github/workflows/c-demos.yml @@ -56,6 +56,11 @@ jobs: strategy: matrix: machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64] + make_file: ["Unix Makefiles"] + include: + - machine: pv-windows-arm64 + make_file: "MinGW Makefiles" + steps: - uses: actions/checkout@v3 @@ -110,6 +115,7 @@ jobs: strategy: matrix: machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64] + make_files: ["Unix Makefiles"] include: - machine: rpi3-32 platform: raspberry-pi @@ -126,6 +132,10 @@ jobs: - machine: rpi5-64 platform: raspberry-pi arch: cortex-a76-aarch64 + - machine: pv-windows-arm64 + platform: windows + arch: arm64 + make_file: "MinGW Makefiles" steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/python-demos.yml b/.github/workflows/python-demos.yml index cae4653..2727d50 100644 --- a/.github/workflows/python-demos.yml +++ b/.github/workflows/python-demos.yml @@ -41,6 +41,14 @@ jobs: - name: Pre-build dependencies run: python -m pip install --upgrade pip + # ************ REMOVE AFTER RELEASE *************** + - name: build local binding + run: | + python3 -m pip install setuptools wheel + python3 -m setup sdist bdist_wheel + working-directory: binding/python + # ************ REMOVE AFTER RELEASE *************** + - name: Install dependencies run: pip install -r requirements.txt @@ -56,11 +64,19 @@ jobs: strategy: matrix: - machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64] + machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, pv-windows-arm64] steps: - uses: actions/checkout@v3 + # ************ REMOVE AFTER RELEASE *************** + - name: build local binding + run: | + python3 -m pip install setuptools wheel + python3 -m setup sdist bdist_wheel + working-directory: binding/python + # ************ REMOVE AFTER RELEASE *************** + - name: Install dependencies run: pip3 install -r requirements.txt diff --git a/.github/workflows/python-perf.yml b/.github/workflows/python-perf.yml index 0904851..c57707d 100644 --- a/.github/workflows/python-perf.yml +++ b/.github/workflows/python-perf.yml @@ -111,3 +111,27 @@ jobs: - name: Machine state after working-directory: resources/scripts run: bash machine-state.sh + + perf-windows-arm64: + runs-on: ${{ matrix.machine }} + + strategy: + fail-fast: false + matrix: + machine: [pv-windows-arm64] + include: + - machine: pv-windows-arm64 + proc_performance_threshold_sec: 0.8 + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: pip install -r requirements.txt + + - name: Test + run: > + python3 test_koala_perf.py + --access-key ${{secrets.PV_VALID_ACCESS_KEY}} + --num-test-iterations 20 + --proc-performance-threshold-sec ${{matrix.proc_performance_threshold_sec}} diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index a543b40..6484025 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -64,7 +64,7 @@ jobs: strategy: matrix: - machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64] + machine: [rpi3-32, rpi3-64, rpi4-32, rpi4-64, rpi5-64, pv-windows-arm64] steps: - uses: actions/checkout@v3 diff --git a/README.md b/README.md index 04551ec..ea508a0 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Koala is an on-device noise suppression engine. Koala is: - Private; All voice processing runs locally. - Cross-Platform: - - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64) + - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64) - Android and iOS - Chrome, Safari, Firefox, and Edge - Raspberry Pi (3, 4, 5) diff --git a/binding/python/README.md b/binding/python/README.md index 0d0199f..3053ab7 100644 --- a/binding/python/README.md +++ b/binding/python/README.md @@ -8,7 +8,7 @@ Koala is an on-device noise suppression engine. Koala is: - Private; All voice processing runs locally. - Cross-Platform: - - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64) + - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64) - Android and iOS - Chrome, Safari, Firefox, and Edge - Raspberry Pi (3, 4, 5) @@ -16,7 +16,7 @@ Koala is an on-device noise suppression engine. Koala is: ## Compatibility - Python 3.8 or higher -- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64), and Raspberry Pi (3, 4, 5). +- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64), and Raspberry Pi (3, 4, 5). ## Installation diff --git a/binding/python/_util.py b/binding/python/_util.py index 7648a0d..6b3822f 100644 --- a/binding/python/_util.py +++ b/binding/python/_util.py @@ -72,7 +72,10 @@ def default_library_path(relative: str = '') -> str: relative, 'lib/raspberry-pi/%s/libpv_koala.so' % linux_machine) elif platform.system() == 'Windows': - return os.path.join(os.path.dirname(__file__), relative, 'lib/windows/amd64/libpv_koala.dll') + if platform.machine().lower() == 'amd64': + return os.path.join(os.path.dirname(__file__), relative, 'lib/windows/amd64/libpv_koala.dll') + elif platform.machine().lower() == 'arm64': + return os.path.join(os.path.dirname(__file__), relative, 'lib/windows/arm64/libpv_koala.dll') raise NotImplementedError('Unsupported platform.') diff --git a/binding/python/setup.py b/binding/python/setup.py index 96134ae..c501a27 100644 --- a/binding/python/setup.py +++ b/binding/python/setup.py @@ -42,7 +42,7 @@ setuptools.setup( name="pvkoala", - version="2.0.2", + version="2.0.3", author="Picovoice", author_email="hello@picovoice.ai", description="Koala Noise Suppression Engine.", diff --git a/demo/python/README.md b/demo/python/README.md index 933b8cb..a31109b 100644 --- a/demo/python/README.md +++ b/demo/python/README.md @@ -8,7 +8,7 @@ Koala is an on-device noise suppression engine. Koala is: - Private; All voice processing runs locally. - Cross-Platform: - - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64) + - Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64) - Android and iOS - Chrome, Safari, Firefox, and Edge - Raspberry Pi (3, 4, 5) @@ -16,7 +16,7 @@ Koala is an on-device noise suppression engine. Koala is: ## Compatibility - Python 3.8+ -- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64), and Raspberry Pi (3, 4, 5). +- Runs on Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64, arm64), and Raspberry Pi (3, 4, 5). ## Installation diff --git a/demo/python/requirements.txt b/demo/python/requirements.txt index 0c37206..628d427 100644 --- a/demo/python/requirements.txt +++ b/demo/python/requirements.txt @@ -1,2 +1,2 @@ -pvkoala==2.0.2 +../../binding/python/dist/pvkoala-2.0.3-py3-none-any.whl pvrecorder==1.2.2 diff --git a/demo/python/setup.py b/demo/python/setup.py index 88265d3..9716379 100644 --- a/demo/python/setup.py +++ b/demo/python/setup.py @@ -24,7 +24,7 @@ setuptools.setup( name="pvkoalademo", - version="2.0.2", + version="2.0.3", author="Picovoice", author_email="hello@picovoice.ai", description="Koala Noise Suppression Engine demos", @@ -32,7 +32,7 @@ long_description_content_type="text/markdown", url="https://github.com/Picovoice/koala", packages=["pvkoalademo"], - install_requires=["pvkoala==2.0.2", "pvrecorder==1.2.2"], + install_requires=["pvkoala==2.0.3", "pvrecorder==1.2.2"], include_package_data=True, classifiers=[ "Development Status :: 5 - Production/Stable", diff --git a/lib/windows/arm64/libpv_koala.dll b/lib/windows/arm64/libpv_koala.dll new file mode 100644 index 0000000..0bd25ec Binary files /dev/null and b/lib/windows/arm64/libpv_koala.dll differ