Skip to content

Commit d180b55

Browse files
authored
Add VAD example for Dart API (k2-fsa#996)
1 parent 2682dcc commit d180b55

33 files changed

+883
-142
lines changed

.github/workflows/build-wheels-macos-arm64.yaml

+9-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
path: ./wheelhouse/*.whl
4949

5050
- name: Publish to huggingface
51-
if: matrix.python-version == 'cp38'
51+
if: matrix.python-version == 'cp39'
5252
env:
5353
HF_TOKEN: ${{ secrets.HF_TOKEN }}
5454
uses: nick-fields/retry@v3
@@ -82,7 +82,13 @@ jobs:
8282
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
8383
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
8484
run: |
85-
python3 -m pip install --break-system-packages --upgrade pip
86-
python3 -m pip install --break-system-packages wheel twine setuptools
85+
opts='--break-system-packages'
86+
v=${{ matrix.python-version }}
87+
if [[ $v == cp38 || $v == cp39 ]]; then
88+
opts=''
89+
fi
90+
91+
python3 -m pip install $opts --upgrade pip
92+
python3 -m pip install $opts wheel twine setuptools
8793
8894
twine upload ./wheelhouse/*.whl

.github/workflows/build-wheels-macos-universal2.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
path: ./wheelhouse/*.whl
5151

5252
- name: Publish to huggingface
53-
if: matrix.python-version == 'cp38'
53+
if: matrix.python-version == 'cp39'
5454
env:
5555
HF_TOKEN: ${{ secrets.HF_TOKEN }}
5656
uses: nick-fields/retry@v3

.github/workflows/build-wheels-macos-x64.yaml

+9-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
path: ./wheelhouse/*.whl
6666

6767
- name: Publish to huggingface
68-
if: matrix.python-version == 'cp38'
68+
if: matrix.python-version == 'cp39'
6969
env:
7070
HF_TOKEN: ${{ secrets.HF_TOKEN }}
7171
uses: nick-fields/retry@v3
@@ -99,7 +99,13 @@ jobs:
9999
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
100100
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
101101
run: |
102-
python3 -m pip install --break-system-packages --upgrade pip
103-
python3 -m pip install --break-system-packages wheel twine setuptools
102+
opts='--break-system-packages'
103+
v=${{ matrix.python-version }}
104+
if [[ $v == cp38 || $v == cp39 ]]; then
105+
opts=''
106+
fi
107+
108+
python3 -m pip install $opts --upgrade pip
109+
python3 -m pip install $opts wheel twine setuptools
104110
105111
twine upload ./wheelhouse/*.whl

.github/workflows/flutter-macos.yaml

+40-8
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ jobs:
152152
- name: Build flutter
153153
shell: bash
154154
run: |
155+
SHERPA_ONNX_VERSION=v$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
156+
155157
d=$PWD
156158
157159
pushd sherpa-onnx/flutter
@@ -166,7 +168,7 @@ jobs:
166168
167169
tree ./sherpa_onnx.app
168170
169-
app=flutter_sherpa_onnx_macos_${{ matrix.arch }}.app
171+
app=sherpa-onnx-osx-${{ matrix.arch }}-$SHERPA_ONNX_VERSION.app
170172
mv sherpa_onnx.app $app
171173
tar cjfv $app.tar.bz2 $app
172174
ls -lh
@@ -178,13 +180,43 @@ jobs:
178180
179181
- uses: actions/upload-artifact@v4
180182
with:
181-
name: flutter-sherpa-onnx-app-macos-${{ matrix.arch }}
183+
name: sherpa-onnx-osx-${{ matrix.arch }}
182184
path: ./*.tar.bz2
183185

184-
- name: Release android libs
185-
if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/')
186-
uses: svenstaro/upload-release-action@v2
186+
- name: Publish to huggingface
187+
env:
188+
HF_TOKEN: ${{ secrets.HF_TOKEN }}
189+
uses: nick-fields/retry@v3
187190
with:
188-
file_glob: true
189-
overwrite: true
190-
file: flutter*.tar.bz2
191+
max_attempts: 20
192+
timeout_seconds: 200
193+
shell: bash
194+
command: |
195+
git config --global user.email "csukuangfj@gmail.com"
196+
git config --global user.name "Fangjun Kuang"
197+
198+
rm -rf huggingface
199+
export GIT_LFS_SKIP_SMUDGE=1
200+
export GIT_CLONE_PROTECTION_ACTIVE=false
201+
202+
git clone https://huggingface.co/csukuangfj/sherpa-onnx-flutter huggingface
203+
cd huggingface
204+
git fetch
205+
git pull
206+
git merge -m "merge remote" --ff origin main
207+
mkdir -p flutter
208+
cp -v ../*.tar.bz2 ./flutter
209+
210+
git status
211+
git lfs track "*.bz2"
212+
git add .
213+
git commit -m "add more files"
214+
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-flutter main
215+
216+
# - name: Release android libs
217+
# if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/')
218+
# uses: svenstaro/upload-release-action@v2
219+
# with:
220+
# file_glob: true
221+
# overwrite: true
222+
# file: sherpa*.tar.bz2

.github/workflows/flutter-windows-x64.yaml

+38-8
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ jobs:
142142
143143
cd build/windows/x64/runner/
144144
145-
dst=flutter_sherpa_onnx_windows_x64
145+
dst=sherpa-onnx-win-x64-$SHERPA_ONNX_VERSION
146146
mv Release $dst
147147
148148
tar cjfv $dst.tar.bz2 ./$dst
@@ -155,13 +155,43 @@ jobs:
155155
156156
- uses: actions/upload-artifact@v4
157157
with:
158-
name: flutter-sherpa-onnx-windows-x64
158+
name: sherpa-onnx-win-x64
159159
path: ./*.tar.bz2
160160

161-
- name: Release android libs
162-
if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/')
163-
uses: svenstaro/upload-release-action@v2
161+
- name: Publish to huggingface
162+
env:
163+
HF_TOKEN: ${{ secrets.HF_TOKEN }}
164+
uses: nick-fields/retry@v3
164165
with:
165-
file_glob: true
166-
overwrite: true
167-
file: flutter*.tar.bz2
166+
max_attempts: 20
167+
timeout_seconds: 200
168+
shell: bash
169+
command: |
170+
git config --global user.email "csukuangfj@gmail.com"
171+
git config --global user.name "Fangjun Kuang"
172+
173+
rm -rf huggingface
174+
export GIT_LFS_SKIP_SMUDGE=1
175+
export GIT_CLONE_PROTECTION_ACTIVE=false
176+
177+
git clone https://huggingface.co/csukuangfj/sherpa-onnx-flutter huggingface
178+
cd huggingface
179+
git fetch
180+
git pull
181+
git merge -m "merge remote" --ff origin main
182+
mkdir -p flutter
183+
cp -v ../*.tar.bz2 ./flutter
184+
185+
git status
186+
git lfs track "*.bz2"
187+
git add .
188+
git commit -m "add more files"
189+
git push https://csukuangfj:$HF_TOKEN@huggingface.co/csukuangfj/sherpa-onnx-flutter main
190+
191+
# - name: Release android libs
192+
# if: (github.repository_owner == 'csukuangfj' || github.repository_owner == 'k2-fsa') && github.event_name == 'push' && contains(github.ref, 'refs/tags/')
193+
# uses: svenstaro/upload-release-action@v2
194+
# with:
195+
# file_glob: true
196+
# overwrite: true
197+
# file: sherpa*.tar.bz2

.github/workflows/test-dart.yaml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: test-dart
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
paths:
8+
- '.github/workflows/test-dart.yaml'
9+
- 'dart-api-examples/**'
10+
pull_request:
11+
branches:
12+
- master
13+
paths:
14+
- '.github/workflows/test-dart.yaml'
15+
- 'dart-api-examples/**'
16+
17+
workflow_dispatch:
18+
19+
concurrency:
20+
group: test-dart-${{ github.ref }}
21+
cancel-in-progress: true
22+
23+
jobs:
24+
dart:
25+
name: ${{ matrix.os }}
26+
runs-on: ${{ matrix.os }}
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
os: [macos-latest, ubuntu-latest] #, windows-latest]
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
with:
35+
fetch-depth: 0
36+
37+
- name: Setup Flutter SDK
38+
uses: flutter-actions/setup-flutter@v3
39+
with:
40+
channel: stable
41+
version: latest
42+
43+
- name: Display flutter info
44+
shell: bash
45+
run: |
46+
which flutter
47+
which dart
48+
49+
flutter --version
50+
dart --version
51+
flutter doctor
52+
53+
- name: Run tests
54+
shell: bash
55+
run: |
56+
cd dart-api-examples
57+
58+
pushd vad
59+
./run.sh
60+
popd

CMakeLists.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14" CACHE STRING "Minimum OS X deployment ve
44

55
project(sherpa-onnx)
66

7-
set(SHERPA_ONNX_VERSION "1.9.28")
7+
# Remember to update
8+
# ./nodejs-addon-examples
9+
# ./dart-api-examples/
10+
set(SHERPA_ONNX_VERSION "1.9.29")
811

912
# Disable warning about
1013
#

cmake/cmake_extension.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ def get_binaries():
8484
"piper_phonemize.dll",
8585
"sherpa-onnx-c-api.dll",
8686
"sherpa-onnx-core.dll",
87-
"sherpa-onnx-fstfar.lib",
88-
"sherpa-onnx-fst.lib",
89-
"sherpa-onnx-kaldifst-core.lib",
87+
"sherpa-onnx-fstfar.dll",
88+
"sherpa-onnx-fst.dll",
89+
"sherpa-onnx-kaldifst-core.dll",
9090
"sherpa-onnx-portaudio.dll",
9191
"ucd.dll",
9292
]
@@ -211,7 +211,7 @@ def build_extension(self, ext: setuptools.extension.Extension):
211211
binaries = get_binaries()
212212

213213
for f in binaries:
214-
suffix = "" if (".dll" in f or ".lib" in f) else suffix
214+
suffix = "" if ".dll" in f else suffix
215215
src_file = install_dir / "bin" / (f + suffix)
216216
if not src_file.is_file():
217217
src_file = install_dir / "lib" / (f + suffix)

cmake/kaldi-decoder.cmake

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
function(download_kaldi_decoder)
22
include(FetchContent)
33

4-
set(kaldi_decoder_URL "https://github.com/k2-fsa/kaldi-decoder/archive/refs/tags/v0.2.5.tar.gz")
5-
set(kaldi_decoder_URL2 "https://hub.nuaa.cf/k2-fsa/kaldi-decoder/archive/refs/tags/v0.2.5.tar.gz")
6-
set(kaldi_decoder_HASH "SHA256=f663e58aef31b33cd8086eaa09ff1383628039845f31300b5abef817d8cc2fff")
4+
set(kaldi_decoder_URL "https://github.com/k2-fsa/kaldi-decoder/archive/refs/tags/v0.2.6.tar.gz")
5+
set(kaldi_decoder_URL2 "https://hub.nuaa.cf/k2-fsa/kaldi-decoder/archive/refs/tags/v0.2.6.tar.gz")
6+
set(kaldi_decoder_HASH "SHA256=b13c78b37495cafc6ef3f8a7b661b349c55a51abbd7f7f42f389408dcf86a463")
77

88
set(KALDI_DECODER_BUILD_PYTHON OFF CACHE BOOL "" FORCE)
99
set(KALDI_DECODER_ENABLE_TESTS OFF CACHE BOOL "" FORCE)
@@ -12,11 +12,11 @@ function(download_kaldi_decoder)
1212
# If you don't have access to the Internet,
1313
# please pre-download kaldi-decoder
1414
set(possible_file_locations
15-
$ENV{HOME}/Downloads/kaldi-decoder-0.2.5.tar.gz
16-
${CMAKE_SOURCE_DIR}/kaldi-decoder-0.2.5.tar.gz
17-
${CMAKE_BINARY_DIR}/kaldi-decoder-0.2.5.tar.gz
18-
/tmp/kaldi-decoder-0.2.5.tar.gz
19-
/star-fj/fangjun/download/github/kaldi-decoder-0.2.5.tar.gz
15+
$ENV{HOME}/Downloads/kaldi-decoder-0.2.6.tar.gz
16+
${CMAKE_SOURCE_DIR}/kaldi-decoder-0.2.6.tar.gz
17+
${CMAKE_BINARY_DIR}/kaldi-decoder-0.2.6.tar.gz
18+
/tmp/kaldi-decoder-0.2.6.tar.gz
19+
/star-fj/fangjun/download/github/kaldi-decoder-0.2.6.tar.gz
2020
)
2121

2222
foreach(f IN LISTS possible_file_locations)

cmake/kaldifst.cmake

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
function(download_kaldifst)
22
include(FetchContent)
33

4-
set(kaldifst_URL "https://github.com/k2-fsa/kaldifst/archive/refs/tags/v1.7.10.tar.gz")
5-
set(kaldifst_URL2 "https://hub.nuaa.cf/k2-fsa/kaldifst/archive/refs/tags/v1.7.10.tar.gz")
6-
set(kaldifst_HASH "SHA256=7f7b3173a6584a6b1987f65ae7af2ac453d66b845f875a9d31074b8d2cd0de54")
4+
set(kaldifst_URL "https://github.com/k2-fsa/kaldifst/archive/refs/tags/v1.7.11.tar.gz")
5+
set(kaldifst_URL2 "https://hub.nuaa.cf/k2-fsa/kaldifst/archive/refs/tags/v1.7.11.tar.gz")
6+
set(kaldifst_HASH "SHA256=b43b3332faa2961edc730e47995a58cd4e22ead21905d55b0c4a41375b4a525f")
77

88
# If you don't have access to the Internet,
99
# please pre-download kaldifst
1010
set(possible_file_locations
11-
$ENV{HOME}/Downloads/kaldifst-1.7.10.tar.gz
12-
${CMAKE_SOURCE_DIR}/kaldifst-1.7.10.tar.gz
13-
${CMAKE_BINARY_DIR}/kaldifst-1.7.10.tar.gz
14-
/tmp/kaldifst-1.7.10.tar.gz
15-
/star-fj/fangjun/download/github/kaldifst-1.7.10.tar.gz
11+
$ENV{HOME}/Downloads/kaldifst-1.7.11.tar.gz
12+
${CMAKE_SOURCE_DIR}/kaldifst-1.7.11.tar.gz
13+
${CMAKE_BINARY_DIR}/kaldifst-1.7.11.tar.gz
14+
/tmp/kaldifst-1.7.11.tar.gz
15+
/star-fj/fangjun/download/github/kaldifst-1.7.11.tar.gz
1616
)
1717

1818
foreach(f IN LISTS possible_file_locations)
@@ -51,6 +51,7 @@ function(download_kaldifst)
5151
)
5252

5353
set_target_properties(kaldifst_core PROPERTIES OUTPUT_NAME "sherpa-onnx-kaldifst-core")
54+
# installed in ./kaldi-decoder.cmake
5455
endfunction()
5556

5657
download_kaldifst()

cmake/openfst.cmake

+9-11
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
function(download_openfst)
44
include(FetchContent)
55

6-
set(openfst_URL "https://github.com/csukuangfj/openfst/archive/refs/tags/sherpa-onnx-2024-05-22-2.tar.gz")
7-
set(openfst_URL2 "https://hub.nuaa.cf/csukuangfj/openfst/archive/refs/tags/sherpa-onnx-2024-05-22-2.tar.gz")
8-
set(openfst_HASH "SHA256=ec52d32ab46ac884d77c87918155ca9d0cae424095ce3bd7e3cc7eaab8235a39")
6+
set(openfst_URL "https://github.com/csukuangfj/openfst/archive/refs/tags/sherpa-onnx-2024-06-13.tar.gz")
7+
set(openfst_URL2 "https://hub.nuaa.cf/csukuangfj/openfst/archive/refs/tags/sherpa-onnx-2024-06-13.tar.gz")
8+
set(openfst_HASH "SHA256=f10a71c6b64d89eabdc316d372b956c30c825c7c298e2f20c780320e8181ffb6")
99

1010
# If you don't have access to the Internet,
1111
# please pre-download it
1212
set(possible_file_locations
13-
$ENV{HOME}/Downloads/openfst-sherpa-onnx-2024-05-22-2.tar.gz
14-
${CMAKE_SOURCE_DIR}/openfst-sherpa-onnx-2024-05-22-2.tar.gz
15-
${CMAKE_BINARY_DIR}/openfst-sherpa-onnx-2024-05-22-2.tar.gz
16-
/tmp/openfst-sherpa-onnx-2024-05-22-2.tar.gz
17-
/star-fj/fangjun/download/github/openfst-sherpa-onnx-2024-05-22-2.tar.gz
13+
$ENV{HOME}/Downloads/openfst-sherpa-onnx-2024-06-13.tar.gz
14+
${CMAKE_SOURCE_DIR}/openfst-sherpa-onnx-2024-06-13.tar.gz
15+
${CMAKE_BINARY_DIR}/openfst-sherpa-onnx-2024-06-13.tar.gz
16+
/tmp/openfst-sherpa-onnx-2024-06-13.tar.gz
17+
/star-fj/fangjun/download/github/openfst-sherpa-onnx-2024-06-13.tar.gz
1818
)
1919

2020
foreach(f IN LISTS possible_file_locations)
@@ -27,7 +27,7 @@ function(download_openfst)
2727
endforeach()
2828

2929
set(HAVE_BIN OFF CACHE BOOL "" FORCE)
30-
set(HAVE_SCRIPT ON CACHE BOOL "" FORCE)
30+
set(HAVE_SCRIPT OFF CACHE BOOL "" FORCE)
3131
set(HAVE_COMPACT OFF CACHE BOOL "" FORCE)
3232
set(HAVE_COMPRESS OFF CACHE BOOL "" FORCE)
3333
set(HAVE_CONST OFF CACHE BOOL "" FORCE)
@@ -70,8 +70,6 @@ function(download_openfst)
7070
add_subdirectory(${openfst_SOURCE_DIR} ${openfst_BINARY_DIR} EXCLUDE_FROM_ALL)
7171
set(openfst_SOURCE_DIR ${openfst_SOURCE_DIR} PARENT_SCOPE)
7272

73-
# Rename libfst.so.6 to libsherpa-onnx-fst.so.6 to avoid potential conflicts
74-
# when sherpa-onnx is installed.
7573
set_target_properties(fst PROPERTIES OUTPUT_NAME "sherpa-onnx-fst")
7674
set_target_properties(fstfar PROPERTIES OUTPUT_NAME "sherpa-onnx-fstfar")
7775

0 commit comments

Comments
 (0)