run-test.sh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. #!/usr/bin/env bash
  2. set -e
  3. log() {
  4. # This function is from espnet
  5. local fname=${BASH_SOURCE[1]##*/}
  6. echo -e "$(date '+%Y-%m-%d %H:%M:%S') (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $*"
  7. }
  8. echo "EXE is $EXE"
  9. echo "PATH: $PATH"
  10. which $EXE
  11. log "------------------------------------------------------------"
  12. log "Run ConvEmformer transducer (Chinese, small model)"
  13. log "------------------------------------------------------------"
  14. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-08
  15. log "Start testing ${repo_url}"
  16. repo=$(basename $repo_url)
  17. log "Download pretrained model and test-data from $repo_url"
  18. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  19. pushd $repo/v2
  20. git lfs pull --include "encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin"
  21. git lfs pull --include "decoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin"
  22. git lfs pull --include "joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin"
  23. git lfs pull --include "encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.bin"
  24. git lfs pull --include "joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.bin"
  25. popd
  26. waves=(
  27. $repo/test_wavs/0.wav
  28. $repo/test_wavs/1.wav
  29. $repo/test_wavs/2.wav
  30. )
  31. for wave in ${waves[@]}; do
  32. for m in greedy_search modified_beam_search; do
  33. log "----test $m ---"
  34. time $EXE \
  35. $repo/v2/tokens.txt \
  36. $repo/v2/encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.param \
  37. $repo/v2/encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin \
  38. $repo/v2/decoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.param \
  39. $repo/v2/decoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin \
  40. $repo/v2/joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.param \
  41. $repo/v2/joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin \
  42. $wave \
  43. 4 \
  44. $m
  45. done
  46. done
  47. log "Test int8 models"
  48. for wave in ${waves[@]}; do
  49. for m in greedy_search modified_beam_search; do
  50. log "----test $m ---"
  51. time $EXE \
  52. $repo/v2/tokens.txt \
  53. $repo/v2/encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.param \
  54. $repo/v2/encoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.bin \
  55. $repo/v2/decoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.param \
  56. $repo/v2/decoder_jit_trace-pnnx-epoch-15-avg-3.ncnn.bin \
  57. $repo/v2/joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.param \
  58. $repo/v2/joiner_jit_trace-pnnx-epoch-15-avg-3.ncnn.int8.bin \
  59. $wave \
  60. 4 \
  61. $m
  62. done
  63. done
  64. rm -rf $repo
  65. log "------------------------------------------------------------"
  66. log "Run LSTM transducer (Chinese)"
  67. log "------------------------------------------------------------"
  68. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-2022-09-30
  69. log "Start testing ${repo_url}"
  70. repo=$(basename $repo_url)
  71. log "Download pretrained model and test-data from $repo_url"
  72. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  73. pushd $repo
  74. git lfs pull --include "encoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin"
  75. git lfs pull --include "decoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin"
  76. git lfs pull --include "joiner_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin"
  77. popd
  78. waves=(
  79. $repo/test_wavs/0.wav
  80. $repo/test_wavs/1.wav
  81. $repo/test_wavs/2.wav
  82. )
  83. for wave in ${waves[@]}; do
  84. for m in greedy_search modified_beam_search; do
  85. log "----test $m ---"
  86. time $EXE \
  87. $repo/tokens.txt \
  88. $repo/encoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.param \
  89. $repo/encoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin \
  90. $repo/decoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.param \
  91. $repo/decoder_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin \
  92. $repo/joiner_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.param \
  93. $repo/joiner_jit_trace-v2-epoch-11-avg-2-pnnx.ncnn.bin \
  94. $wave \
  95. 4 \
  96. $m
  97. done
  98. done
  99. rm -rf $repo
  100. log "------------------------------------------------------------"
  101. log "Run LSTM transducer (English)"
  102. log "------------------------------------------------------------"
  103. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-2022-09-05
  104. log "Start testing ${repo_url}"
  105. repo=$(basename $repo_url)
  106. log "Download pretrained model and test-data from $repo_url"
  107. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  108. pushd $repo
  109. git lfs pull --include "bar/encoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin"
  110. git lfs pull --include "bar/decoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin"
  111. git lfs pull --include "bar/joiner_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin"
  112. popd
  113. waves=(
  114. $repo/test_wavs/1089-134686-0001.wav
  115. $repo/test_wavs/1221-135766-0001.wav
  116. $repo/test_wavs/1221-135766-0002.wav
  117. )
  118. for wave in ${waves[@]}; do
  119. for m in greedy_search modified_beam_search; do
  120. log "----test $m ---"
  121. time $EXE \
  122. $repo/tokens.txt \
  123. $repo/bar/encoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.param \
  124. $repo/bar/encoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin \
  125. $repo/bar/decoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.param \
  126. $repo/bar/decoder_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin \
  127. $repo/bar/joiner_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.param \
  128. $repo/bar/joiner_jit_trace-v2-iter-468000-avg-16-pnnx.ncnn.bin \
  129. $wave \
  130. 4 \
  131. $m
  132. done
  133. done
  134. rm -rf $repo
  135. log "------------------------------------------------------------"
  136. log "Run ConvEmformer transducer (English)"
  137. log "------------------------------------------------------------"
  138. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-04
  139. log "Start testing ${repo_url}"
  140. repo=$(basename $repo_url)
  141. log "Download pretrained model and test-data from $repo_url"
  142. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  143. pushd $repo
  144. git lfs pull --include "encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin"
  145. git lfs pull --include "decoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin"
  146. git lfs pull --include "joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin"
  147. git lfs pull --include "encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.bin"
  148. git lfs pull --include "joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.bin"
  149. popd
  150. waves=(
  151. $repo/test_wavs/1089-134686-0001.wav
  152. $repo/test_wavs/1221-135766-0001.wav
  153. $repo/test_wavs/1221-135766-0002.wav
  154. )
  155. for wave in ${waves[@]}; do
  156. for m in greedy_search modified_beam_search; do
  157. log "----test $m ---"
  158. time $EXE \
  159. $repo/tokens.txt \
  160. $repo/encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.param \
  161. $repo/encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin \
  162. $repo/decoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.param \
  163. $repo/decoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin \
  164. $repo/joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.param \
  165. $repo/joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin \
  166. $wave \
  167. 4 \
  168. $m
  169. done
  170. done
  171. log "Test int8 models"
  172. for wave in ${waves[@]}; do
  173. for m in greedy_search modified_beam_search; do
  174. log "----test $m ---"
  175. time $EXE \
  176. $repo/tokens.txt \
  177. $repo/encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.param \
  178. $repo/encoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.bin \
  179. $repo/decoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.param \
  180. $repo/decoder_jit_trace-epoch-30-avg-10-pnnx.ncnn.bin \
  181. $repo/joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.param \
  182. $repo/joiner_jit_trace-epoch-30-avg-10-pnnx.ncnn.int8.bin \
  183. $wave \
  184. 4 \
  185. $m
  186. done
  187. done
  188. rm -rf $repo
  189. log "------------------------------------------------------------"
  190. log "Run ConvEmformer transducer (English + Chinese, mixed model)"
  191. log "------------------------------------------------------------"
  192. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-06
  193. log "Start testing ${repo_url}"
  194. repo=$(basename $repo_url)
  195. log "Download pretrained model and test-data from $repo_url"
  196. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  197. pushd $repo
  198. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.bin"
  199. git lfs pull --include "decoder_jit_trace-pnnx.ncnn.bin"
  200. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.bin"
  201. # for in8 models
  202. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.int8.bin"
  203. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.int8.bin"
  204. popd
  205. waves=(
  206. $repo/test_wavs/0.wav
  207. $repo/test_wavs/1.wav
  208. $repo/test_wavs/2.wav
  209. $repo/test_wavs/3.wav
  210. $repo/test_wavs/4.wav
  211. )
  212. for wave in ${waves[@]}; do
  213. for m in greedy_search modified_beam_search; do
  214. log "----test $m ---"
  215. time $EXE \
  216. $repo/tokens.txt \
  217. $repo/encoder_jit_trace-pnnx.ncnn.param \
  218. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  219. $repo/decoder_jit_trace-pnnx.ncnn.param \
  220. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  221. $repo/joiner_jit_trace-pnnx.ncnn.param \
  222. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  223. $wave \
  224. 4 \
  225. $m
  226. done
  227. done
  228. log "test int8 models"
  229. for wave in ${waves[@]}; do
  230. for m in greedy_search modified_beam_search; do
  231. log "----test $m ---"
  232. time $EXE \
  233. $repo/tokens.txt \
  234. $repo/encoder_jit_trace-pnnx.ncnn.int8.param \
  235. $repo/encoder_jit_trace-pnnx.ncnn.int8.bin \
  236. $repo/decoder_jit_trace-pnnx.ncnn.param \
  237. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  238. $repo/joiner_jit_trace-pnnx.ncnn.int8.param \
  239. $repo/joiner_jit_trace-pnnx.ncnn.int8.bin \
  240. $wave \
  241. 4 \
  242. $m
  243. done
  244. done
  245. rm -rf $repo
  246. log "------------------------------------------------------------"
  247. log "Run Zipformer transducer (English + Chinese, bilingual)"
  248. log "------------------------------------------------------------"
  249. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13
  250. log "Start testing ${repo_url}"
  251. repo=$(basename $repo_url)
  252. log "Download pretrained model and test-data from $repo_url"
  253. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  254. pushd $repo
  255. git lfs pull --include "*.bin"
  256. popd
  257. waves=(
  258. $repo/test_wavs/0.wav
  259. $repo/test_wavs/1.wav
  260. $repo/test_wavs/2.wav
  261. $repo/test_wavs/3.wav
  262. $repo/test_wavs/4.wav
  263. )
  264. for wave in ${waves[@]}; do
  265. for m in greedy_search modified_beam_search; do
  266. log "----test $m ---"
  267. time $EXE \
  268. $repo/tokens.txt \
  269. $repo/encoder_jit_trace-pnnx.ncnn.param \
  270. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  271. $repo/decoder_jit_trace-pnnx.ncnn.param \
  272. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  273. $repo/joiner_jit_trace-pnnx.ncnn.param \
  274. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  275. $wave \
  276. 4 \
  277. $m
  278. done
  279. done
  280. rm -rf $repo
  281. log "------------------------------------------------------------"
  282. log "Run Zipformer transducer (English)"
  283. log "------------------------------------------------------------"
  284. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-en-2023-02-13
  285. log "Start testing ${repo_url}"
  286. repo=$(basename $repo_url)
  287. log "Download pretrained model and test-data from $repo_url"
  288. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  289. pushd $repo
  290. git lfs pull --include "*.bin"
  291. popd
  292. waves=(
  293. $repo/test_wavs/1089-134686-0001.wav
  294. $repo/test_wavs/1221-135766-0001.wav
  295. $repo/test_wavs/1221-135766-0002.wav
  296. )
  297. for wave in ${waves[@]}; do
  298. for m in greedy_search modified_beam_search; do
  299. log "----test $m ---"
  300. time $EXE \
  301. $repo/tokens.txt \
  302. $repo/encoder_jit_trace-pnnx.ncnn.param \
  303. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  304. $repo/decoder_jit_trace-pnnx.ncnn.param \
  305. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  306. $repo/joiner_jit_trace-pnnx.ncnn.param \
  307. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  308. $wave \
  309. 4 \
  310. $m
  311. done
  312. done
  313. rm -rf $repo
  314. log "------------------------------------------------------------"
  315. log "Run Zipformer transducer (Japanese, fluent)"
  316. log "------------------------------------------------------------"
  317. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-ja-fluent-2023-02-14
  318. log "Start testing ${repo_url}"
  319. repo=$(basename $repo_url)
  320. log "Download pretrained model and test-data from $repo_url"
  321. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  322. pushd $repo
  323. git lfs pull --include "*.bin"
  324. git lfs pull --include "test_wavs/*.wav"
  325. popd
  326. waves=(
  327. $repo/test_wavs/aps-smp.wav
  328. $repo/test_wavs/interview_aps-smp.wav
  329. $repo/test_wavs/reproduction-smp.wav
  330. $repo/test_wavs/sps-smp.wav
  331. $repo/test_wavs/task-smp.wav
  332. )
  333. for wave in ${waves[@]}; do
  334. for m in greedy_search modified_beam_search; do
  335. log "----test $m ---"
  336. time $EXE \
  337. $repo/tokens.txt \
  338. $repo/encoder_jit_trace-pnnx.ncnn.param \
  339. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  340. $repo/decoder_jit_trace-pnnx.ncnn.param \
  341. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  342. $repo/joiner_jit_trace-pnnx.ncnn.param \
  343. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  344. $wave \
  345. 4 \
  346. $m
  347. done
  348. done
  349. rm -rf $repo
  350. log "------------------------------------------------------------"
  351. log "Run Zipformer transducer (Japanese, disfluent)"
  352. log "------------------------------------------------------------"
  353. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-ja-disfluent-2023-02-14
  354. log "Start testing ${repo_url}"
  355. repo=$(basename $repo_url)
  356. log "Download pretrained model and test-data from $repo_url"
  357. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  358. pushd $repo
  359. git lfs pull --include "*.bin"
  360. git lfs pull --include "test_wavs/*.wav"
  361. popd
  362. waves=(
  363. $repo/test_wavs/aps-smp.wav
  364. $repo/test_wavs/interview_aps-smp.wav
  365. $repo/test_wavs/reproduction-smp.wav
  366. $repo/test_wavs/sps-smp.wav
  367. $repo/test_wavs/task-smp.wav
  368. )
  369. for wave in ${waves[@]}; do
  370. for m in greedy_search modified_beam_search; do
  371. log "----test $m ---"
  372. time $EXE \
  373. $repo/tokens.txt \
  374. $repo/encoder_jit_trace-pnnx.ncnn.param \
  375. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  376. $repo/decoder_jit_trace-pnnx.ncnn.param \
  377. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  378. $repo/joiner_jit_trace-pnnx.ncnn.param \
  379. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  380. $wave \
  381. 4 \
  382. $m
  383. done
  384. done
  385. rm -rf $repo