run-test.sh 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  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 Zipformer transducer (Chinese, small model 14M)"
  13. log "------------------------------------------------------------"
  14. repo_url=https://huggingface.co/marcoyang/sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23
  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
  20. git lfs pull --include "*.bin"
  21. waves=(
  22. $repo/test_wavs/0.wav
  23. $repo/test_wavs/1.wav
  24. $repo/test_wavs/2.wav
  25. )
  26. popd
  27. for wave in ${waves[@]}; do
  28. for m in greedy_search modified_beam_search; do
  29. log "----test $m ---"
  30. time $EXE \
  31. $repo/tokens.txt \
  32. $repo/encoder_jit_trace-pnnx.ncnn.param \
  33. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  34. $repo/decoder_jit_trace-pnnx.ncnn.param \
  35. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  36. $repo/joiner_jit_trace-pnnx.ncnn.param \
  37. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  38. $wave \
  39. 4 \
  40. $m
  41. done
  42. done
  43. rm -rf $repo
  44. log "------------------------------------------------------------"
  45. log "Run Zipformer transducer (English, small model 20M)"
  46. log "------------------------------------------------------------"
  47. repo_url=https://huggingface.co/marcoyang/sherpa-ncnn-streaming-zipformer-20M-2023-02-17
  48. log "Start testing ${repo_url}"
  49. repo=$(basename $repo_url)
  50. log "Download pretrained model and test-data from $repo_url"
  51. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  52. pushd $repo
  53. git lfs pull --include "*.bin"
  54. waves=(
  55. $repo/test_wavs/0.wav
  56. $repo/test_wavs/1.wav
  57. $repo/test_wavs/2.wav
  58. )
  59. popd
  60. for wave in ${waves[@]}; do
  61. for m in greedy_search modified_beam_search; do
  62. log "----test $m ---"
  63. time $EXE \
  64. $repo/tokens.txt \
  65. $repo/encoder_jit_trace-pnnx.ncnn.param \
  66. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  67. $repo/decoder_jit_trace-pnnx.ncnn.param \
  68. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  69. $repo/joiner_jit_trace-pnnx.ncnn.param \
  70. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  71. $wave \
  72. 4 \
  73. $m
  74. done
  75. done
  76. rm -rf $repo
  77. log "------------------------------------------------------------"
  78. log "Run LSTM transducer (Chinese+English, small model)"
  79. log "------------------------------------------------------------"
  80. repo_url=https://huggingface.co/marcoyang/sherpa-ncnn-lstm-transducer-small-2023-02-13
  81. log "Start testing ${repo_url}"
  82. repo=$(basename $repo_url)
  83. log "Download pretrained model and test-data from $repo_url"
  84. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  85. pushd $repo
  86. git lfs pull --include "*.bin"
  87. waves=(
  88. $repo/test_wavs/0.wav
  89. $repo/test_wavs/1.wav
  90. $repo/test_wavs/2.wav
  91. )
  92. popd
  93. for wave in ${waves[@]}; do
  94. for m in greedy_search modified_beam_search; do
  95. log "----test $m ---"
  96. time $EXE \
  97. $repo/tokens.txt \
  98. $repo/encoder_jit_trace-pnnx.ncnn.param \
  99. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  100. $repo/decoder_jit_trace-pnnx.ncnn.param \
  101. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  102. $repo/joiner_jit_trace-pnnx.ncnn.param \
  103. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  104. $wave \
  105. 4 \
  106. $m
  107. done
  108. done
  109. # Decode a URL
  110. if [ $EXE == "sherpa-ncnn-ffmpeg" ]; then
  111. time $EXE \
  112. $repo/tokens.txt \
  113. $repo/encoder_jit_trace-pnnx.ncnn.param \
  114. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  115. $repo/decoder_jit_trace-pnnx.ncnn.param \
  116. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  117. $repo/joiner_jit_trace-pnnx.ncnn.param \
  118. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  119. https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-04/resolve/main/test_wavs/1089-134686-0001.wav \
  120. 4 \
  121. $m
  122. fi
  123. rm -rf $repo
  124. log "------------------------------------------------------------"
  125. log "Run ConvEmformer transducer (Chinese, small model)"
  126. log "------------------------------------------------------------"
  127. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-08
  128. log "Start testing ${repo_url}"
  129. repo=$(basename $repo_url)
  130. log "Download pretrained model and test-data from $repo_url"
  131. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  132. pushd $repo
  133. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.bin"
  134. git lfs pull --include "decoder_jit_trace-pnnx.ncnn.bin"
  135. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.bin"
  136. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.int8.bin"
  137. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.int8.bin"
  138. popd
  139. waves=(
  140. $repo/test_wavs/0.wav
  141. $repo/test_wavs/1.wav
  142. $repo/test_wavs/2.wav
  143. )
  144. for wave in ${waves[@]}; do
  145. for m in greedy_search modified_beam_search; do
  146. log "----test $m ---"
  147. time $EXE \
  148. $repo/tokens.txt \
  149. $repo/encoder_jit_trace-pnnx.ncnn.param \
  150. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  151. $repo/decoder_jit_trace-pnnx.ncnn.param \
  152. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  153. $repo/joiner_jit_trace-pnnx.ncnn.param \
  154. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  155. $wave \
  156. 4 \
  157. $m
  158. done
  159. done
  160. log "Test int8 models"
  161. for wave in ${waves[@]}; do
  162. for m in greedy_search modified_beam_search; do
  163. log "----test $m ---"
  164. time $EXE \
  165. $repo/tokens.txt \
  166. $repo/encoder_jit_trace-pnnx.ncnn.int8.param \
  167. $repo/encoder_jit_trace-pnnx.ncnn.int8.bin \
  168. $repo/decoder_jit_trace-pnnx.ncnn.param \
  169. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  170. $repo/joiner_jit_trace-pnnx.ncnn.int8.param \
  171. $repo/joiner_jit_trace-pnnx.ncnn.int8.bin \
  172. $wave \
  173. 4 \
  174. $m
  175. done
  176. done
  177. rm -rf $repo
  178. log "------------------------------------------------------------"
  179. log "Run LSTM transducer (Chinese)"
  180. log "------------------------------------------------------------"
  181. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-2022-09-30
  182. log "Start testing ${repo_url}"
  183. repo=$(basename $repo_url)
  184. log "Download pretrained model and test-data from $repo_url"
  185. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  186. pushd $repo
  187. git lfs pull --include "*.bin"
  188. popd
  189. waves=(
  190. $repo/test_wavs/0.wav
  191. $repo/test_wavs/1.wav
  192. $repo/test_wavs/2.wav
  193. )
  194. for wave in ${waves[@]}; do
  195. for m in greedy_search modified_beam_search; do
  196. log "----test $m ---"
  197. time $EXE \
  198. $repo/tokens.txt \
  199. $repo/encoder_jit_trace-pnnx.ncnn.param \
  200. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  201. $repo/decoder_jit_trace-pnnx.ncnn.param \
  202. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  203. $repo/joiner_jit_trace-pnnx.ncnn.param \
  204. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  205. $wave \
  206. 4 \
  207. $m
  208. done
  209. done
  210. rm -rf $repo
  211. log "------------------------------------------------------------"
  212. log "Run LSTM transducer (English)"
  213. log "------------------------------------------------------------"
  214. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-2022-09-05
  215. log "Start testing ${repo_url}"
  216. repo=$(basename $repo_url)
  217. log "Download pretrained model and test-data from $repo_url"
  218. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  219. pushd $repo
  220. git lfs pull --include "*.bin"
  221. popd
  222. waves=(
  223. $repo/test_wavs/1089-134686-0001.wav
  224. $repo/test_wavs/1221-135766-0001.wav
  225. $repo/test_wavs/1221-135766-0002.wav
  226. )
  227. for wave in ${waves[@]}; do
  228. for m in greedy_search modified_beam_search; do
  229. log "----test $m ---"
  230. time $EXE \
  231. $repo/tokens.txt \
  232. $repo/encoder_jit_trace-pnnx.ncnn.param \
  233. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  234. $repo/decoder_jit_trace-pnnx.ncnn.param \
  235. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  236. $repo/joiner_jit_trace-pnnx.ncnn.param \
  237. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  238. $wave \
  239. 4 \
  240. $m
  241. done
  242. done
  243. rm -rf $repo
  244. log "------------------------------------------------------------"
  245. log "Run ConvEmformer transducer (English)"
  246. log "------------------------------------------------------------"
  247. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-04
  248. log "Start testing ${repo_url}"
  249. repo=$(basename $repo_url)
  250. log "Download pretrained model and test-data from $repo_url"
  251. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  252. pushd $repo
  253. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.bin"
  254. git lfs pull --include "decoder_jit_trace-pnnx.ncnn.bin"
  255. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.bin"
  256. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.int8.bin"
  257. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.int8.bin"
  258. popd
  259. waves=(
  260. $repo/test_wavs/1089-134686-0001.wav
  261. $repo/test_wavs/1221-135766-0001.wav
  262. $repo/test_wavs/1221-135766-0002.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. log "Test int8 models"
  281. for wave in ${waves[@]}; do
  282. for m in greedy_search modified_beam_search; do
  283. log "----test $m ---"
  284. time $EXE \
  285. $repo/tokens.txt \
  286. $repo/encoder_jit_trace-pnnx.ncnn.int8.param \
  287. $repo/encoder_jit_trace-pnnx.ncnn.int8.bin \
  288. $repo/decoder_jit_trace-pnnx.ncnn.param \
  289. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  290. $repo/joiner_jit_trace-pnnx.ncnn.int8.param \
  291. $repo/joiner_jit_trace-pnnx.ncnn.int8.bin \
  292. $wave \
  293. 4 \
  294. $m
  295. done
  296. done
  297. rm -rf $repo
  298. log "------------------------------------------------------------"
  299. log "Run ConvEmformer transducer (English + Chinese, mixed model)"
  300. log "------------------------------------------------------------"
  301. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-06
  302. log "Start testing ${repo_url}"
  303. repo=$(basename $repo_url)
  304. log "Download pretrained model and test-data from $repo_url"
  305. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  306. pushd $repo
  307. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.bin"
  308. git lfs pull --include "decoder_jit_trace-pnnx.ncnn.bin"
  309. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.bin"
  310. # for in8 models
  311. git lfs pull --include "encoder_jit_trace-pnnx.ncnn.int8.bin"
  312. git lfs pull --include "joiner_jit_trace-pnnx.ncnn.int8.bin"
  313. popd
  314. waves=(
  315. $repo/test_wavs/0.wav
  316. $repo/test_wavs/1.wav
  317. $repo/test_wavs/2.wav
  318. $repo/test_wavs/3.wav
  319. $repo/test_wavs/4.wav
  320. )
  321. for wave in ${waves[@]}; do
  322. for m in greedy_search modified_beam_search; do
  323. log "----test $m ---"
  324. time $EXE \
  325. $repo/tokens.txt \
  326. $repo/encoder_jit_trace-pnnx.ncnn.param \
  327. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  328. $repo/decoder_jit_trace-pnnx.ncnn.param \
  329. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  330. $repo/joiner_jit_trace-pnnx.ncnn.param \
  331. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  332. $wave \
  333. 4 \
  334. $m
  335. done
  336. done
  337. log "test int8 models"
  338. for wave in ${waves[@]}; do
  339. for m in greedy_search modified_beam_search; do
  340. log "----test $m ---"
  341. time $EXE \
  342. $repo/tokens.txt \
  343. $repo/encoder_jit_trace-pnnx.ncnn.int8.param \
  344. $repo/encoder_jit_trace-pnnx.ncnn.int8.bin \
  345. $repo/decoder_jit_trace-pnnx.ncnn.param \
  346. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  347. $repo/joiner_jit_trace-pnnx.ncnn.int8.param \
  348. $repo/joiner_jit_trace-pnnx.ncnn.int8.bin \
  349. $wave \
  350. 4 \
  351. $m
  352. done
  353. done
  354. rm -rf $repo
  355. log "------------------------------------------------------------"
  356. log "Run Zipformer transducer (English + Chinese, bilingual)"
  357. log "------------------------------------------------------------"
  358. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13
  359. log "Start testing ${repo_url}"
  360. repo=$(basename $repo_url)
  361. log "Download pretrained model and test-data from $repo_url"
  362. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  363. pushd $repo
  364. git lfs pull --include "*.bin"
  365. popd
  366. waves=(
  367. $repo/test_wavs/0.wav
  368. $repo/test_wavs/1.wav
  369. $repo/test_wavs/2.wav
  370. $repo/test_wavs/3.wav
  371. $repo/test_wavs/4.wav
  372. )
  373. for wave in ${waves[@]}; do
  374. for m in greedy_search modified_beam_search; do
  375. log "----test $m ---"
  376. time $EXE \
  377. $repo/tokens.txt \
  378. $repo/encoder_jit_trace-pnnx.ncnn.param \
  379. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  380. $repo/decoder_jit_trace-pnnx.ncnn.param \
  381. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  382. $repo/joiner_jit_trace-pnnx.ncnn.param \
  383. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  384. $wave \
  385. 4 \
  386. $m
  387. done
  388. done
  389. rm -rf $repo
  390. log "------------------------------------------------------------"
  391. log "Run small Zipformer transducer (English + Chinese, bilingual)"
  392. log "------------------------------------------------------------"
  393. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-small-bilingual-zh-en-2023-02-16
  394. log "Start testing ${repo_url}"
  395. repo=$(basename $repo_url)
  396. log "Download pretrained model and test-data from $repo_url"
  397. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  398. pushd $repo
  399. git lfs pull --include "*.bin"
  400. popd
  401. waves=(
  402. $repo/test_wavs/0.wav
  403. $repo/test_wavs/1.wav
  404. $repo/test_wavs/2.wav
  405. $repo/test_wavs/3.wav
  406. $repo/test_wavs/4.wav
  407. )
  408. for wave in ${waves[@]}; do
  409. for m in greedy_search modified_beam_search; do
  410. log "----test $m ---"
  411. time $EXE \
  412. $repo/tokens.txt \
  413. $repo/encoder_jit_trace-pnnx.ncnn.param \
  414. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  415. $repo/decoder_jit_trace-pnnx.ncnn.param \
  416. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  417. $repo/joiner_jit_trace-pnnx.ncnn.param \
  418. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  419. $wave \
  420. 4 \
  421. $m
  422. done
  423. done
  424. rm -rf $repo
  425. log "------------------------------------------------------------"
  426. log "Run Zipformer transducer (English)"
  427. log "------------------------------------------------------------"
  428. repo_url=https://huggingface.co/csukuangfj/sherpa-ncnn-streaming-zipformer-en-2023-02-13
  429. log "Start testing ${repo_url}"
  430. repo=$(basename $repo_url)
  431. log "Download pretrained model and test-data from $repo_url"
  432. GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url
  433. pushd $repo
  434. git lfs pull --include "*.bin"
  435. popd
  436. waves=(
  437. $repo/test_wavs/1089-134686-0001.wav
  438. $repo/test_wavs/1221-135766-0001.wav
  439. $repo/test_wavs/1221-135766-0002.wav
  440. )
  441. for wave in ${waves[@]}; do
  442. for m in greedy_search modified_beam_search; do
  443. log "----test $m ---"
  444. time $EXE \
  445. $repo/tokens.txt \
  446. $repo/encoder_jit_trace-pnnx.ncnn.param \
  447. $repo/encoder_jit_trace-pnnx.ncnn.bin \
  448. $repo/decoder_jit_trace-pnnx.ncnn.param \
  449. $repo/decoder_jit_trace-pnnx.ncnn.bin \
  450. $repo/joiner_jit_trace-pnnx.ncnn.param \
  451. $repo/joiner_jit_trace-pnnx.ncnn.bin \
  452. $wave \
  453. 4 \
  454. $m
  455. done
  456. done
  457. rm -rf $repo