-
Notifications
You must be signed in to change notification settings - Fork 611
/
Copy pathbuild-kws-apk.sh
executable file
·137 lines (102 loc) · 3.98 KB
/
build-kws-apk.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/env bash
# Please set the environment variable ANDROID_NDK
# before running this script
# Inside the $ANDROID_NDK directory, you can find a binary ndk-build
# and some other files like the file "build/cmake/android.toolchain.cmake"
set -e
log() {
# This function is from espnet
local fname=${BASH_SOURCE[1]##*/}
echo -e "$(date '+%Y-%m-%d %H:%M:%S') (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $*"
}
SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2)
log "Building keyword spotting APK for sherpa-onnx v${SHERPA_ONNX_VERSION}"
log "====================arm64-v8a================="
./build-android-arm64-v8a.sh
log "====================armv7-eabi================"
./build-android-armv7-eabi.sh
log "====================x86-64===================="
./build-android-x86-64.sh
log "====================x86===================="
./build-android-x86.sh
mkdir -p apks
# Download the model
repo=sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01
if [ ! -d ./android/SherpaOnnxKws/app/src/main/assets/$repo ]; then
repo_url=https://github.com/pkufool/keyword-spotting-models/releases/download/v0.1/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01.tar.bz
log "Start testing ${repo_url}"
log "Download pretrained model and test-data from $repo_url"
wget -qq $repo_url
tar jxvf ${repo}.tar.bz
pushd $repo
rm *.int8.onnx
rm README.md
rm -rfv test_wavs
ls -lh
popd
mv -v $repo ./android/SherpaOnnxKws/app/src/main/assets/
fi
tree ./android/SherpaOnnxKws/app/src/main/assets/
for arch in arm64-v8a armeabi-v7a x86_64 x86; do
log "------------------------------------------------------------"
log "build apk for $arch"
log "------------------------------------------------------------"
src_arch=$arch
if [ $arch == "armeabi-v7a" ]; then
src_arch=armv7-eabi
elif [ $arch == "x86_64" ]; then
src_arch=x86-64
fi
ls -lh ./build-android-$src_arch/install/lib/*.so
cp -v ./build-android-$src_arch/install/lib/*.so ./android/SherpaOnnxKws/app/src/main/jniLibs/$arch/
pushd ./android/SherpaOnnxKws
./gradlew build
popd
mv android/SherpaOnnxKws/app/build/outputs/apk/debug/app-debug.apk ./apks/sherpa-onnx-kws-wenetspeech-zh-${SHERPA_ONNX_VERSION}-$arch.apk
ls -lh apks
rm -v ./android/SherpaOnnxKws/app/src/main/jniLibs/$arch/*.so
done
git checkout .
rm -rf ./android/SherpaOnnxKws/app/src/main/assets/$repo
# English model
repo=sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01
if [ ! -d ./android/SherpaOnnxKws/app/src/main/assets/$repo ]; then
repo_url=https://github.com/pkufool/keyword-spotting-models/releases/download/v0.1/sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01.tar.bz
log "Start testing ${repo_url}"
log "Download pretrained model and test-data from $repo_url"
wget -qq $repo_url
tar jxvf ${repo}.tar.bz
pushd $repo
rm *.int8.onnx
rm README.md
rm -rfv test_wavs
ls -lh
popd
mv -v $repo ./android/SherpaOnnxKws/app/src/main/assets/
fi
tree ./android/SherpaOnnxKws/app/src/main/assets/
pushd android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx
sed -i.bak s/"type = 0"/"type = 1"/ ./MainActivity.kt
git diff
popd
for arch in arm64-v8a armeabi-v7a x86_64 x86; do
log "------------------------------------------------------------"
log "build apk for $arch"
log "------------------------------------------------------------"
src_arch=$arch
if [ $arch == "armeabi-v7a" ]; then
src_arch=armv7-eabi
elif [ $arch == "x86_64" ]; then
src_arch=x86-64
fi
ls -lh ./build-android-$src_arch/install/lib/*.so
cp -v ./build-android-$src_arch/install/lib/*.so ./android/SherpaOnnxKws/app/src/main/jniLibs/$arch/
pushd ./android/SherpaOnnxKws
./gradlew build
popd
mv android/SherpaOnnxKws/app/build/outputs/apk/debug/app-debug.apk ./apks/sherpa-onnx-kws-gigaspeech-en-${SHERPA_ONNX_VERSION}-$arch.apk
ls -lh apks
rm -v ./android/SherpaOnnxKws/app/src/main/jniLibs/$arch/*.so
done
git checkout .
rm -rf ./android/SherpaOnnxKws/app/src/main/assets/$repo