univoice 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +211 -0
- package/dist/{base-BsWrB3Ae.d.ts → base--a8Bo2f0.d.ts} +48 -7
- package/dist/base-Bae_riVx.d.ts +191 -0
- package/dist/{chunk-IDAZ5B4H.js → chunk-CM7VAOIV.js} +359 -71
- package/dist/chunk-CM7VAOIV.js.map +1 -0
- package/dist/{chunk-B5H2N2DT.js → chunk-RRXTYGBU.js} +981 -10
- package/dist/chunk-RRXTYGBU.js.map +1 -0
- package/dist/chunk-TY2HDS4F.js +304 -0
- package/dist/chunk-TY2HDS4F.js.map +1 -0
- package/dist/{qwen-C0osjLg0.d.ts → qwen-0GGX_nkP.d.ts} +13 -6
- package/dist/{qwen-DUJgbnDy.d.ts → qwen-DzZEciEh.d.ts} +16 -9
- package/dist/{save-BrWMA1TW.d.ts → save-DGQVjHM1.d.ts} +25 -3
- package/dist/src/asr/index.d.ts +4 -3
- package/dist/src/asr/index.js +2 -2
- package/dist/src/asr/providers/index.d.ts +4 -3
- package/dist/src/asr/providers/index.js +2 -2
- package/dist/src/asr/providers/index.js.map +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.js +3 -3
- package/dist/src/tts/index.d.ts +4 -3
- package/dist/src/tts/index.js +1 -1
- package/dist/src/tts/providers/index.d.ts +23 -4
- package/dist/src/tts/providers/index.js +1 -1
- package/dist/{tee-Bo5N4gEG.d.ts → tee-BufkUu6s.d.ts} +2 -2
- package/examples/README.md +150 -130
- package/examples/{ogg-to-asr-demo.ts → asr/advanced/ogg-to-asr.ts} +10 -3
- package/examples/{opus-packets-to-asr-demo.ts → asr/advanced/opus-packets-to-asr.ts} +7 -21
- package/examples/asr/basic/listen-non-stream.ts +51 -0
- package/examples/{asr-listen-stream-demo.ts → asr/basic/listen-stream.ts} +2 -2
- package/examples/asr/providers/doubao/README.md +103 -0
- package/examples/asr/providers/doubao/connect-and-listen.ts +103 -0
- package/examples/asr/providers/doubao/direct-instance-stream-in-stream-out.ts +95 -0
- package/examples/asr/providers/doubao/non-stream-in-non-stream-out.ts +79 -0
- package/examples/asr/providers/doubao/ogg-opus-stream-in-stream-out.ts +101 -0
- package/examples/asr/providers/doubao/stream-in-stream-out.ts +101 -0
- package/examples/asr/providers/glm/README.md +136 -0
- package/examples/asr/providers/glm/basic.ts +40 -0
- package/examples/asr/providers/glm/glm-asr-2512/README.md +47 -0
- package/examples/asr/providers/glm/glm-asr-2512/direct-instance.ts +117 -0
- package/examples/asr/providers/glm/glm-asr-2512/non-stream-in-non-stream-out.ts +81 -0
- package/examples/asr/providers/glm/glm-asr-2512/stream-in-stream-out.ts +123 -0
- package/examples/asr/providers/openai/basic.ts +52 -0
- package/examples/asr/providers/qwen/README.md +154 -0
- package/examples/asr/providers/qwen/paraformer-realtime-8k-v1/README.md +60 -0
- package/examples/asr/providers/qwen/paraformer-realtime-8k-v1/direct-instance.ts +106 -0
- package/examples/asr/providers/qwen/paraformer-realtime-8k-v1/non-stream-in-non-stream-out.ts +82 -0
- package/examples/asr/providers/qwen/paraformer-realtime-8k-v1/stream-in-stream-out.ts +119 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v1/README.md +60 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v1/direct-instance.ts +106 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v1/non-stream-in-non-stream-out.ts +82 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v1/stream-in-stream-out.ts +119 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v2/README.md +52 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v2/connect-and-listen.ts +110 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v2/direct-instance.ts +105 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v2/non-stream-in-non-stream-out.ts +81 -0
- package/examples/asr/providers/qwen/paraformer-realtime-v2/stream-in-stream-out.ts +118 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/1.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/10.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/100.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/101.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/102.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/103.opus +1 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/104.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/105.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/106.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/107.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/108.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/109.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/11.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/110.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/111.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/112.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/113.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/114.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/115.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/116.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/117.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/118.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/119.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/12.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/120.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/121.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/122.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/123.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/124.opus +5 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/125.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/126.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/127.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/128.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/129.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/13.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/130.opus +4 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/131.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/132.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/133.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/134.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/135.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/136.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/137.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/138.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/139.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/14.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/140.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/141.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/142.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/143.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/144.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/145.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/146.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/147.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/148.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/149.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/15.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/150.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/151.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/152.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/153.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/154.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/155.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/156.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/157.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/158.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/159.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/16.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/160.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/161.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/162.opus +1 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/163.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/164.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/165.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/166.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/167.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/168.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/169.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/17.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/170.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/171.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/172.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/173.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/174.opus +4 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/175.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/176.opus +1 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/177.opus +1 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/178.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/179.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/18.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/180.opus +2 -1
- package/examples/assets/16khz_opus_60ms_opus-packets/181.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/182.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/183.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/184.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/185.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/186.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/187.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/188.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/189.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/19.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/190.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/191.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/192.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/193.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/194.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/195.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/196.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/197.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/198.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/199.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/2.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/20.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/200.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/201.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/202.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/203.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/204.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/205.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/206.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/207.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/208.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/209.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/21.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/210.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/211.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/212.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/213.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/214.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/215.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/216.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/217.opus +4 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/218.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/219.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/22.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/220.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/221.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/222.opus +5 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/223.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/224.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/225.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/226.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/227.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/228.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/229.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/23.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/230.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/231.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/232.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/233.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/234.opus +5 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/235.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/236.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/237.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/238.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/239.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/24.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/240.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/241.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/242.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/243.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/244.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/245.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/246.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/25.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/26.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/27.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/28.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/29.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/3.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/30.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/31.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/32.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/33.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/34.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/35.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/36.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/37.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/38.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/39.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/4.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/40.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/41.opus +4 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/42.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/43.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/44.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/45.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/46.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/47.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/48.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/49.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/5.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/50.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/51.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/52.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/53.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/54.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/55.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/56.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/57.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/58.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/59.opus +5 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/6.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/60.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/61.opus +3 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/62.opus +7 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/63.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/64.opus +2 -1
- package/examples/assets/16khz_opus_60ms_opus-packets/65.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/66.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/67.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/68.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/69.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/7.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/70.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/71.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/72.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/73.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/74.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/75.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/76.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/77.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/78.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/79.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/8.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/80.opus +4 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/81.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/82.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/83.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/84.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/85.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/86.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/87.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/88.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/89.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/9.opus +1 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/90.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/91.opus +2 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/92.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/93.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/94.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/95.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/96.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/97.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/98.opus +0 -0
- package/examples/assets/16khz_opus_60ms_opus-packets/99.opus +0 -0
- package/examples/{ogg-to-opus-packets-demo.ts → audio/ogg-to-opus-packets.ts} +4 -5
- package/examples/{opus-packets-to-ogg-demo.ts → audio/opus-packets-to-ogg.ts} +5 -6
- package/examples/{llm-to-tts-demo.ts → tts/advanced/llm-to-tts.ts} +1 -1
- package/examples/tts/basic/speak-stream.ts +194 -0
- package/examples/tts/basic/speak-string.ts +193 -0
- package/examples/tts/providers/doubao/README.md +96 -0
- package/examples/{doubao-tts-demo.ts → tts/providers/doubao/basic.ts} +2 -2
- package/examples/tts/providers/doubao/connect-and-speak-stream.ts +98 -0
- package/examples/tts/providers/doubao/connect-and-synthesize.ts +83 -0
- package/examples/tts/providers/doubao/pcm-output.ts +45 -0
- package/examples/tts/providers/doubao/seed-tts-1.0/README.md +56 -0
- package/examples/tts/providers/doubao/seed-tts-1.0/direct-instance.ts +89 -0
- package/examples/tts/providers/doubao/seed-tts-1.0/non-stream-in-non-stream-out.ts +73 -0
- package/examples/tts/providers/doubao/seed-tts-1.0/stream-in-stream-out.ts +89 -0
- package/examples/tts/providers/doubao/seed-tts-2.0/README.md +49 -0
- package/examples/tts/providers/doubao/seed-tts-2.0/direct-instance.ts +89 -0
- package/examples/tts/providers/doubao/seed-tts-2.0/non-stream-in-non-stream-out.ts +73 -0
- package/examples/{doubao-tts-speak-string.ts → tts/providers/doubao/seed-tts-2.0/stream-in-stream-out.ts} +22 -10
- package/examples/tts/providers/glm/README.md +98 -0
- package/examples/{glm-tts-demo.ts → tts/providers/glm/basic.ts} +2 -14
- package/examples/tts/providers/glm/glm-tts/README.md +60 -0
- package/examples/tts/providers/glm/glm-tts/direct-instance.ts +87 -0
- package/examples/tts/providers/glm/glm-tts/non-stream-in-non-stream-out.ts +70 -0
- package/examples/tts/providers/glm/glm-tts/stream-in-stream-out.ts +89 -0
- package/examples/tts/providers/minimax/README.md +106 -0
- package/examples/tts/providers/minimax/basic.ts +48 -0
- package/examples/tts/providers/minimax/speech-02/README.md +46 -0
- package/examples/tts/providers/minimax/speech-02/direct-instance.ts +86 -0
- package/examples/tts/providers/minimax/speech-02/non-stream-in-non-stream-out.ts +76 -0
- package/examples/tts/providers/minimax/speech-02/stream-in-stream-out.ts +88 -0
- package/examples/tts/providers/minimax/speech-2.6-hd/README.md +46 -0
- package/examples/tts/providers/minimax/speech-2.6-hd/direct-instance.ts +86 -0
- package/examples/tts/providers/minimax/speech-2.6-hd/non-stream-in-non-stream-out.ts +76 -0
- package/examples/tts/providers/minimax/speech-2.6-hd/stream-in-stream-out.ts +88 -0
- package/examples/tts/providers/minimax/speech-2.8-hd/README.md +46 -0
- package/examples/tts/providers/minimax/speech-2.8-hd/direct-instance.ts +84 -0
- package/examples/tts/providers/minimax/speech-2.8-hd/non-stream-in-non-stream-out.ts +76 -0
- package/examples/tts/providers/minimax/speech-2.8-hd/stream-in-stream-out.ts +88 -0
- package/examples/tts/providers/qwen/README.md +228 -0
- package/examples/tts/providers/qwen/basic.ts +134 -0
- package/examples/tts/providers/qwen/cosyvoice-v1/README.md +48 -0
- package/examples/tts/providers/qwen/cosyvoice-v1/direct-instance.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v1/non-stream-in-non-stream-out.ts +69 -0
- package/examples/tts/providers/qwen/cosyvoice-v1/stream-in-stream-out.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v2/README.md +48 -0
- package/examples/tts/providers/qwen/cosyvoice-v2/direct-instance.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v2/non-stream-in-non-stream-out.ts +69 -0
- package/examples/tts/providers/qwen/cosyvoice-v2/stream-in-stream-out.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-flash/README.md +48 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-flash/connect-and-speak.ts +103 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-flash/direct-instance.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-flash/non-stream-in-non-stream-out.ts +69 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-flash/stream-in-stream-out.ts +85 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-plus/README.md +48 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-plus/direct-instance.ts +87 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-plus/non-stream-in-non-stream-out.ts +69 -0
- package/examples/tts/providers/qwen/cosyvoice-v3-plus/stream-in-stream-out.ts +85 -0
- package/examples/tts/providers/qwen/non-stream-output.ts +157 -0
- package/examples/tts/providers/qwen/opus-output.ts +49 -0
- package/examples/tts/providers/qwen/qwen3-tts-flash-realtime/README.md +44 -0
- package/examples/tts/providers/qwen/qwen3-tts-flash-realtime/direct-instance.ts +85 -0
- package/examples/tts/providers/qwen/qwen3-tts-flash-realtime/stream-in-stream-out.ts +86 -0
- package/examples/tts/providers/qwen/qwen3-tts-instruct-flash-realtime/README.md +58 -0
- package/examples/tts/providers/qwen/qwen3-tts-instruct-flash-realtime/direct-instance.ts +94 -0
- package/examples/tts/providers/qwen/qwen3-tts-instruct-flash-realtime/stream-in-stream-out.ts +93 -0
- package/examples/tts/providers/qwen/realtime.ts +67 -0
- package/examples/tts/providers/qwen/stream-input.ts +110 -0
- package/examples/utils/common.ts +129 -9
- package/examples/utils/ogg-muxer-stream.ts +9 -409
- package/package.json +9 -1
- package/dist/base-CfHq7-hs.d.ts +0 -87
- package/dist/chunk-B5H2N2DT.js.map +0 -1
- package/dist/chunk-IDAZ5B4H.js.map +0 -1
- package/dist/chunk-XKOFZUYW.js +0 -38
- package/dist/chunk-XKOFZUYW.js.map +0 -1
- package/examples/.env.example +0 -23
- package/examples/asr-listen-non-stream-demo.ts +0 -55
- package/examples/doubao-asr-demo.ts +0 -50
- package/examples/doubao-asr-stream-demo.ts +0 -82
- package/examples/doubao-asr-stream-pcm-demo.ts +0 -60
- package/examples/doubao-asr-streamfrom-file-demo.ts +0 -76
- package/examples/doubao-tts-speak-collect.ts +0 -53
- package/examples/doubao-tts-speak-non-stream.ts +0 -75
- package/examples/doubao-tts-speak-stream-input.ts +0 -94
- package/examples/doubao-tts-stream-chunks.ts +0 -57
- package/examples/doubao-tts-stream-direct.ts +0 -40
- package/examples/extract-opus-from-ogg-demo.ts +0 -29
- package/examples/glm-asr-demo.ts +0 -56
- package/examples/glm-asr-stream-demo.ts +0 -86
- package/examples/glm-tts-stream-demo.ts +0 -65
- package/examples/minimax-tts-speak-collect.ts +0 -111
- package/examples/minimax-tts-speak-non-stream.ts +0 -88
- package/examples/minimax-tts-speak-stream-input.ts +0 -129
- package/examples/minimax-tts-speak-string.ts +0 -92
- package/examples/openai-stream-demo.ts +0 -71
- package/examples/opus-packets-stream-to-asr-demo.ts +0 -145
- package/examples/qwen-asr-demo.ts +0 -56
- package/examples/qwen-asr-stream-demo.ts +0 -88
- package/examples/qwen-asr-stream-input-demo.ts +0 -207
- package/examples/qwen-tts-demo.ts +0 -62
- package/examples/qwen-tts-speak-stream-input.ts +0 -120
- package/examples/qwen-tts-speak-string.ts +0 -91
- package/examples/utils/opus-packets-to-pcm-stream.ts +0 -225
package/README.md
CHANGED
|
@@ -476,6 +476,217 @@ const asr = createASR({
|
|
|
476
476
|
|
|
477
477
|
---
|
|
478
478
|
|
|
479
|
+
<!-- PERFORMANCE_TABLE_START -->
|
|
480
|
+
|
|
481
|
+
# Univoice 性能基准测试报告
|
|
482
|
+
|
|
483
|
+
> ⚠️ **重要说明**
|
|
484
|
+
>
|
|
485
|
+
> 本报告仅反映在使用 **univoice** 时不同服务商和模型之间的**相对性能差异**,仅供参考,不代表服务商和模型的绝对性能。
|
|
486
|
+
>
|
|
487
|
+
> 实际测试结果受多种因素影响,包括但不限于:
|
|
488
|
+
> - 网络波动与延迟
|
|
489
|
+
> - 测试环境与地理位置
|
|
490
|
+
> - univoice 的实现方式
|
|
491
|
+
> - 服务商当前的负载情况
|
|
492
|
+
> - 服务商对模型的迭代
|
|
493
|
+
>
|
|
494
|
+
> 如需评估服务商的真实性能,建议直接使用服务商官方 SDK 进行测试。
|
|
495
|
+
|
|
496
|
+
> 生成时间: 2026/3/29 21:20:30
|
|
497
|
+
|
|
498
|
+
> 环境: Node.js v24.14.0, darwin arm64
|
|
499
|
+
|
|
500
|
+
## TTS 性能指标
|
|
501
|
+
|
|
502
|
+
### 场景说明
|
|
503
|
+
|
|
504
|
+
| 场景 | 说明 |
|
|
505
|
+
|------|------|
|
|
506
|
+
| 非流式入/流式出 | 完整文本输入,实时音频流输出 |
|
|
507
|
+
| 非流式入/非流式出 | 完整文本输入,完整音频返回 |
|
|
508
|
+
|
|
509
|
+
### 指标说明
|
|
510
|
+
|
|
511
|
+
| 指标 | 含义 | 计算方法 | 作用 |
|
|
512
|
+
|------|------|----------|------|
|
|
513
|
+
| 首包延迟 | 从发送请求到收到第一个音频块的时间 | 所有测试首包延迟的平均值 | 反映 TTS 服务的响应速度 |
|
|
514
|
+
| 平均间隔 | 稳定状态下平均每个 chunk 的间隔时间 | (总耗时 - 首包延迟) / (chunk数 - 1) 的平均值 | 反映 TTS 服务吐数据块的节奏 |
|
|
515
|
+
| P50 | 中位数,50% 请求低于此值 | 所有耗时排序后取中位数 | 反映典型请求的性能 |
|
|
516
|
+
| P95 | 95% 请求低于此值 | 所有耗时排序后取第95百分位 | 评估尾部延迟,了解最坏情况 |
|
|
517
|
+
| 标准差 | 延迟的离散程度 | 各耗时与平均值差值的平方的均值的平方根 | 值越小性能越稳定 |
|
|
518
|
+
| 吞吐量 | 每秒处理的字符数 | 文本长度 / 平均耗时(秒) | 值越大处理效率越高 |
|
|
519
|
+
|
|
520
|
+
### 非流式入/流式出
|
|
521
|
+
|
|
522
|
+
| 服务商 | 模型 | 音色 | 编码格式 | 采样率 (Hz) | 测试次数 | 首包延迟 (ms) | 平均间隔 (ms) | P50 (ms) | P95 (ms) | 标准差 (ms) | 吞吐量 (chars/s) |
|
|
523
|
+
|--------|------|------|----------|-------------|----------|---------------|---------------|----------|----------|-------------|-----------------|
|
|
524
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 8000 | 6 | 624 | 118 | 8726 | 10184 | 838 | 64.1 |
|
|
525
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 16000 | 6 | 556 | 64 | 8586 | 9838 | 3129 | 77.1 |
|
|
526
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 22050 | 6 | 573 | 57 | 8328 | 11354 | 1178 | 65.2 |
|
|
527
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 24000 | 6 | 704 | 67 | 11027 | 12958 | 1619 | 54.0 |
|
|
528
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 44100 | 6 | 532 | 27 | 8558 | 10379 | 3168 | 76.3 |
|
|
529
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | pcm | 48000 | 6 | 578 | 27 | 8588 | 9112 | 443 | 67.5 |
|
|
530
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 8000 | 9 | 729 | 23 | 8813 | 12104 | 1307 | 92.0 |
|
|
531
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 16000 | 9 | 760 | 23 | 8797 | 13435 | 3442 | 94.0 |
|
|
532
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 22050 | 18 | 测试失败 | - | - | - | - | - |
|
|
533
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 24000 | 9 | 821 | 20 | 8368 | 13894 | 3968 | 105.0 |
|
|
534
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 44100 | 6 | 测试失败 | - | - | - | - | - |
|
|
535
|
+
| 通义千问 | cosyvoice-v3-flash | longanyang | opus | 48000 | 12 | 662 | 21 | 8402 | *17053* | 4134 | 136.8 |
|
|
536
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 8000 | 6 | 839 | 153 | 11754 | 11923 | 517 | 49.3 |
|
|
537
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 16000 | 6 | 792 | 81 | 11509 | 12051 | 4063 | 59.6 |
|
|
538
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 22050 | 6 | 832 | 69 | 10916 | 11902 | 1025 | 52.8 |
|
|
539
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 24000 | 6 | 868 | 75 | 11809 | 12117 | 195 | 48.2 |
|
|
540
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 44100 | 6 | 801 | 34 | 11631 | 11973 | 3981 | 59.3 |
|
|
541
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | pcm | 48000 | 6 | 868 | 37 | *11900* | 13024 | 882 | 48.6 |
|
|
542
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 8000 | 9 | 1063 | 30 | 11896 | 12627 | 331 | 71.7 |
|
|
543
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 16000 | 9 | 902 | 22 | 11514 | 12601 | 4307 | 93.2 |
|
|
544
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 22050 | 9 | 测试失败 | - | - | - | - | - |
|
|
545
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 24000 | 9 | 819 | 17 | 11060 | 11858 | 5180 | 122.9 |
|
|
546
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 44100 | 9 | 测试失败 | - | - | - | - | - |
|
|
547
|
+
| 通义千问 | cosyvoice-v3-plus | longanyang | opus | 48000 | 9 | 846 | 17 | 11501 | 12383 | *5206* | 118.3 |
|
|
548
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 8000 | 6 | 1602 | 99 | 9461 | 12421 | 3538 | 66.8 |
|
|
549
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 16000 | 6 | 1575 | 67 | 9929 | 11489 | 3463 | 65.0 |
|
|
550
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 22050 | 6 | 1299 | 49 | 9829 | 11190 | 3612 | 67.4 |
|
|
551
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 24000 | 6 | 1673 | 60 | 10435 | 11589 | 875 | 54.7 |
|
|
552
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 44100 | 6 | 1299 | 32 | 9563 | 11176 | 917 | 59.3 |
|
|
553
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | pcm | 48000 | 6 | *1700* | 30 | 10863 | 12202 | 1336 | 53.8 |
|
|
554
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 8000 | 6 | 920 | 16 | 8183 | 12148 | 4475 | 85.7 |
|
|
555
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 16000 | 6 | 1141 | 15 | 9283 | 10047 | 4008 | 84.3 |
|
|
556
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 22050 | 6 | 测试失败 | - | - | - | - | - |
|
|
557
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 24000 | 6 | 1443 | 20 | 9942 | 11236 | 3302 | 64.7 |
|
|
558
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 44100 | 6 | 测试失败 | - | - | - | - | - |
|
|
559
|
+
| 通义千问 | cosyvoice-v2 | longyingxiao | opus | 48000 | 6 | 1085 | 19 | 9183 | 10977 | 3316 | 70.5 |
|
|
560
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 8000 | 6 | 675 | 114 | 6465 | 6533 | 220 | 89.6 |
|
|
561
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 16000 | 6 | 728 | 58 | 6363 | 6776 | 199 | 88.9 |
|
|
562
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 22050 | 6 | 681 | 43 | 6336 | 7031 | 303 | 88.2 |
|
|
563
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 24000 | 6 | 694 | 39 | 6246 | 7566 | 551 | 87.8 |
|
|
564
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 44100 | 6 | 1029 | 23 | 6641 | 10311 | 1427 | 79.5 |
|
|
565
|
+
| 通义千问 | cosyvoice-v1 | longwan | pcm | 48000 | 6 | 661 | 20 | 6626 | 6753 | 219 | 87.3 |
|
|
566
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | pcm | 8000 | 9 | 815 | 127 | 6269 | 7875 | 745 | 132.4 |
|
|
567
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | pcm | 16000 | 6 | 903 | 123 | 6208 | 6887 | 337 | 91.3 |
|
|
568
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | pcm | 24000 | 4 | 961 | 122 | 6331 | 6854 | 512 | 60.9 |
|
|
569
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | pcm | 48000 | 3 | 1274 | 121 | 6379 | 6867 | 415 | 44.8 |
|
|
570
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | opus | 8000 | 6 | 1039 | 16 | 6191 | 7811 | 680 | 87.9 |
|
|
571
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | opus | 16000 | 4 | 1101 | 16 | 6600 | 6928 | 273 | 57.4 |
|
|
572
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | opus | 24000 | 3 | 1078 | 16 | 6665 | 7372 | 446 | *42.0* |
|
|
573
|
+
| qwen-realtime | qwen3-tts-instruct-flash-realtime | Cherry | opus | 48000 | 3 | 941 | 16 | 6339 | 6852 | 346 | 44.5 |
|
|
574
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | pcm | 8000 | 3 | 494 | 81 | 3877 | 3883 | 91 | 74.7 |
|
|
575
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | pcm | 16000 | 3 | 489 | 85 | 3923 | 4608 | 355 | 69.3 |
|
|
576
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | pcm | 24000 | 3 | 450 | 82 | 3951 | 4131 | 125 | 71.8 |
|
|
577
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | pcm | 48000 | 3 | 570 | 79 | 3859 | 3861 | 73 | 74.8 |
|
|
578
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | opus | 8000 | 3 | 508 | 10 | 3918 | 3987 | 136 | 73.9 |
|
|
579
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | opus | 16000 | 3 | 501 | 11 | 3786 | 3846 | 68 | 75.6 |
|
|
580
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | opus | 24000 | 3 | 473 | 10 | 3899 | 4131 | 124 | 72.0 |
|
|
581
|
+
| qwen-realtime | qwen3-tts-flash-realtime | Cherry | opus | 48000 | 3 | 457 | 10 | 3807 | 4134 | 176 | 73.3 |
|
|
582
|
+
| qwen-realtime | qwen-tts-realtime | Cherry | pcm | 24000 | 3 | 667 | 63 | 4585 | 4897 | 169 | 61.1 |
|
|
583
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | pcm | 8000 | 3 | 679 | 62 | 3082 | 3373 | 156 | 90.3 |
|
|
584
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | pcm | 16000 | 3 | 710 | 61 | 3224 | 3297 | 35 | 87.8 |
|
|
585
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | pcm | 24000 | 3 | 935 | 112 | 3531 | 9650 | 2997 | 52.6 |
|
|
586
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | pcm | 48000 | 3 | 760 | 61 | 3181 | 3397 | 151 | 89.0 |
|
|
587
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | ogg_opus | 8000 | 3 | 827 | 60 | 3146 | 3722 | 318 | 86.8 |
|
|
588
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | ogg_opus | 16000 | 3 | 653 | 62 | 3254 | 3461 | 231 | 88.9 |
|
|
589
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | ogg_opus | 24000 | 3 | 670 | 102 | 3429 | 7919 | 2209 | 59.3 |
|
|
590
|
+
| 豆包 | seed-tts-1.0 | zh_male_lengkugege_emo_v2_mars_bigtts | ogg_opus | 48000 | 3 | 698 | 65 | 3217 | 3603 | 200 | 85.8 |
|
|
591
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | pcm | 8000 | 3 | 491 | 65 | 3810 | 3859 | **29 🏆** | 74.6 |
|
|
592
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | pcm | 16000 | 3 | 500 | 66 | 3752 | 3832 | 43 | 75.5 |
|
|
593
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | pcm | 24000 | 3 | 510 | 65 | 3760 | 3783 | 50 | 76.3 |
|
|
594
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | pcm | 48000 | 3 | 560 | 64 | 3770 | 3835 | 43 | 75.4 |
|
|
595
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | ogg_opus | 8000 | 3 | 511 | 65 | 3733 | 3798 | 70 | 76.6 |
|
|
596
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | ogg_opus | 16000 | 3 | 509 | 65 | 3740 | 3761 | 52 | 76.7 |
|
|
597
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | ogg_opus | 24000 | 3 | 514 | 66 | 3810 | 3837 | 41 | 75.1 |
|
|
598
|
+
| 豆包 | seed-tts-2.0 | zh_female_vv_uranus_bigtts | ogg_opus | 48000 | 3 | 476 | 64 | 3631 | 3839 | 125 | 77.7 |
|
|
599
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 8000 | 3 | 399 | 10 | 2496 | 2728 | 112 | 110.9 |
|
|
600
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 16000 | 3 | 431 | 6 | 2533 | 2989 | 295 | 109.6 |
|
|
601
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 22050 | 3 | 458 | 3 | 2203 | 2379 | 88 | 126.4 |
|
|
602
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 24000 | 3 | 453 | 3 | 2281 | 3109 | 436 | 114.0 |
|
|
603
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 32000 | 3 | 490 | 3 | 2781 | 2945 | 288 | 107.0 |
|
|
604
|
+
| MiniMax | speech-2.8-hd | male-qn-qingse | pcm | 44100 | 3 | 465 | 2 | 2323 | 2410 | 61 | 122.2 |
|
|
605
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 8000 | 3 | **374 🏆** | 8 | **1890 🏆** | **2051 🏆** | 88 | **147.8 🏆** |
|
|
606
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 16000 | 3 | 419 | 5 | 2528 | 2876 | 367 | 115.7 |
|
|
607
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 22050 | 3 | 386 | 3 | 2188 | 2298 | 80 | 129.8 |
|
|
608
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 24000 | 3 | 486 | 3 | 2483 | 2679 | 156 | 114.6 |
|
|
609
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 32000 | 3 | 395 | 2 | 2382 | 2453 | 169 | 123.9 |
|
|
610
|
+
| MiniMax | speech-2.8-turbo | male-qn-qingse | pcm | 44100 | 3 | 447 | 2 | 2398 | 2489 | 213 | 124.2 |
|
|
611
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 8000 | 3 | 484 | 12 | 2552 | 2889 | 174 | 107.7 |
|
|
612
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 16000 | 3 | 708 | 6 | 2824 | 3097 | 214 | 100.6 |
|
|
613
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 22050 | 3 | 554 | 4 | 2581 | 3188 | 296 | 102.9 |
|
|
614
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 24000 | 3 | 522 | 4 | 2799 | 2902 | 156 | 103.9 |
|
|
615
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 32000 | 3 | 490 | 3 | 2526 | 2707 | 164 | 113.4 |
|
|
616
|
+
| MiniMax | speech-2.6-hd | male-qn-qingse | pcm | 44100 | 3 | 588 | 2 | 2821 | 2943 | 167 | 102.9 |
|
|
617
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 8000 | 3 | 479 | 9 | 2201 | 2225 | 53 | 131.0 |
|
|
618
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 16000 | 3 | 511 | 5 | 2203 | 2574 | 196 | 123.9 |
|
|
619
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 22050 | 3 | 458 | 4 | 2157 | 2740 | 318 | 124.0 |
|
|
620
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 24000 | 3 | 450 | 3 | 1990 | 2484 | 235 | 132.4 |
|
|
621
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 32000 | 3 | 526 | 3 | 2291 | 2415 | 86 | 123.7 |
|
|
622
|
+
| MiniMax | speech-2.6-turbo | male-qn-qingse | pcm | 44100 | 3 | 476 | 2 | 2037 | 2113 | 79 | 140.9 |
|
|
623
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 8000 | 3 | 490 | 15 | 2680 | 3387 | 1141 | 126.5 |
|
|
624
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 16000 | 3 | 497 | 6 | 2485 | 2625 | 90 | 113.7 |
|
|
625
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 22050 | 3 | 519 | 4 | 2674 | 2795 | 154 | 108.3 |
|
|
626
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 24000 | 3 | 528 | 4 | 2785 | 3025 | 116 | 99.6 |
|
|
627
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 32000 | 3 | 610 | 3 | 2816 | 3432 | 303 | 94.8 |
|
|
628
|
+
| MiniMax | speech-02-hd | male-qn-qingse | pcm | 44100 | 3 | 555 | 2 | 2837 | 3231 | 197 | 96.5 |
|
|
629
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 8000 | 3 | 429 | 10 | 1979 | 2730 | 370 | 129.1 |
|
|
630
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 16000 | 3 | 456 | 5 | 2026 | 2761 | 431 | 131.0 |
|
|
631
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 22050 | 3 | 418 | 4 | 2563 | 2919 | 349 | 113.2 |
|
|
632
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 24000 | 3 | 862 | 4 | 2714 | 2877 | 277 | 109.4 |
|
|
633
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 32000 | 3 | 424 | 2 | 1995 | 2120 | 75 | 141.2 |
|
|
634
|
+
| MiniMax | speech-02-turbo | male-qn-qingse | pcm | 44100 | 3 | 436 | 2 | 2244 | 2815 | 270 | 117.1 |
|
|
635
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 8000 | 3 | 484 | 10 | 2247 | 2306 | 30 | 125.9 |
|
|
636
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 16000 | 3 | 505 | 6 | 2531 | 2559 | 46 | 113.4 |
|
|
637
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 22050 | 3 | 464 | 4 | 2375 | 2483 | 227 | 125.5 |
|
|
638
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 24000 | 3 | 538 | 4 | 2325 | 2856 | 266 | 114.8 |
|
|
639
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 32000 | 3 | 590 | 3 | 2548 | 2634 | 143 | 114.3 |
|
|
640
|
+
| MiniMax | speech-01-hd | male-qn-qingse | pcm | 44100 | 3 | 592 | 2 | 2432 | 2509 | 136 | 119.9 |
|
|
641
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 8000 | 3 | 427 | 10 | 2146 | 2243 | 72 | 132.4 |
|
|
642
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 16000 | 3 | 516 | 4 | 1965 | 2055 | 59 | 144.1 |
|
|
643
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 22050 | 3 | 465 | 4 | 2088 | 2247 | 119 | 135.9 |
|
|
644
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 24000 | 3 | 471 | 3 | 2048 | 2201 | 74 | 135.9 |
|
|
645
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 32000 | 3 | 490 | 2 | 2101 | 2148 | 99 | 138.6 |
|
|
646
|
+
| MiniMax | speech-01-turbo | male-qn-qingse | pcm | 44100 | 3 | 448 | **2 🏆** | 1920 | 2100 | 99 | 145.2 |
|
|
647
|
+
| 智谱 GLM | glm-tts | tongtong | pcm | 24000 | 3 | 861 | *542* | 5037 | 5614 | 296 | 54.8 |
|
|
648
|
+
|
|
649
|
+
## ASR 性能指标
|
|
650
|
+
|
|
651
|
+
### 场景说明
|
|
652
|
+
|
|
653
|
+
| 场景 | 说明 |
|
|
654
|
+
|------|------|
|
|
655
|
+
| 流式入/流式出 | 实时音频流输入,实时识别结果输出 |
|
|
656
|
+
| 非流式入/非流式出 | 完整音频输入,完整结果返回 |
|
|
657
|
+
| 非流式入/流式出 | 完整音频输入,实时识别结果输出 |
|
|
658
|
+
|
|
659
|
+
> **注意**:标记 `*` 的场景使用 WebSocket 流式传输后聚合结果,并非原生非流式。
|
|
660
|
+
|
|
661
|
+
### 指标说明
|
|
662
|
+
|
|
663
|
+
| 指标 | 含义 | 计算方法 | 作用 |
|
|
664
|
+
|------|------|----------|------|
|
|
665
|
+
| 首包延迟 | 从发送请求到收到第一个识别结果的时间 | 所有测试首包延迟的平均值 | 反映 ASR 服务的响应速度 |
|
|
666
|
+
| 平均间隔 | 稳定状态下平均每个 chunk 的间隔时间 | (总耗时 - 首包延迟) / (chunk数 - 1) 的平均值 | 反映 ASR 服务吐识别结果的节奏 |
|
|
667
|
+
| P50 | 中位数,50% 请求低于此值 | 所有耗时排序后取中位数 | 反映典型请求的性能 |
|
|
668
|
+
| P95 | 95% 请求低于此值 | 所有耗时排序后取第95百分位 | 评估尾部延迟,了解最坏情况 |
|
|
669
|
+
| 标准差 | 延迟的离散程度 | 各耗时与平均值差值的平方的均值的平方根 | 值越小性能越稳定 |
|
|
670
|
+
| RTF | 实时因子,处理时间与音频时长的比值 | 处理耗时 / 音频时长 | 值越小效率越高,<1 表示快于实时 |
|
|
671
|
+
| 准确率 | 识别正确的字符比例 | 正确字符数 / 总字符数 | 值越高识别越准确 |
|
|
672
|
+
| CER | 字符错误率,需编辑操作的字符比例 | (替换+删除+插入) / 总字符数 | 值越低识别越准确 |
|
|
673
|
+
|
|
674
|
+
### 非流式入/流式出
|
|
675
|
+
|
|
676
|
+
| 服务商 | 模型 | 语言 | 输入格式 | 采样率 (Hz) | 测试次数 | 首包延迟 (ms) | 平均间隔 (ms) | P50 (ms) | P95 (ms) | 标准差 (ms) | RTF |
|
|
677
|
+
|--------|------|------|----------|-------------|----------|---------------|---------------|----------|----------|-------------|-----|
|
|
678
|
+
| 通义千问 | paraformer-realtime-v2 | zh-CN | pcm | 16000 | 3 | *978* | *82* | 685 | *2085* | *666* | *1.32* |
|
|
679
|
+
| 通义千问 | paraformer-realtime-v1 | zh-CN | pcm | 16000 | 3 | **439 🏆** | **29 🏆** | **498 🏆** | **509 🏆** | **10 🏆** | **0.57 🏆** |
|
|
680
|
+
| 豆包 | bigmodel | zh-CN | pcm | 16000 | 3 | 513 | 69 | *904* | 960 | 107 | 0.99 |
|
|
681
|
+
|
|
682
|
+
---
|
|
683
|
+
|
|
684
|
+
*数据更新于: 2026-03-29*
|
|
685
|
+
|
|
686
|
+
<!-- PERFORMANCE_TABLE_END -->
|
|
687
|
+
|
|
688
|
+
---
|
|
689
|
+
|
|
479
690
|
## 开发指南
|
|
480
691
|
|
|
481
692
|
### 本地开发
|
|
@@ -5,36 +5,61 @@ interface AudioFormat {
|
|
|
5
5
|
}
|
|
6
6
|
type AudioContainerFormat = 'pcm' | 'wav' | 'ogg' | 'mp3';
|
|
7
7
|
type AudioCodecFormat = 'raw' | 'opus';
|
|
8
|
-
interface
|
|
9
|
-
provider: string;
|
|
8
|
+
interface BaseASROptions {
|
|
10
9
|
apiKey?: string;
|
|
11
10
|
baseUrl?: string;
|
|
12
11
|
model?: string;
|
|
13
12
|
language?: string;
|
|
14
13
|
prompt?: string;
|
|
15
14
|
responseFormat?: 'json' | 'text' | 'srt' | 'vtt' | 'verbose_json';
|
|
15
|
+
format?: AudioContainerFormat;
|
|
16
|
+
codec?: AudioCodecFormat;
|
|
17
|
+
}
|
|
18
|
+
interface DoubaoASROptions extends BaseASROptions {
|
|
16
19
|
appKey?: string;
|
|
17
20
|
accessKey?: string;
|
|
18
21
|
resourceId?: string;
|
|
19
22
|
mode?: 'streaming' | 'nostream' | 'async';
|
|
20
23
|
audioFormat?: AudioFormat;
|
|
21
|
-
format?: AudioContainerFormat;
|
|
22
|
-
codec?: AudioCodecFormat;
|
|
23
24
|
segmentDuration?: number;
|
|
24
25
|
enableItn?: boolean;
|
|
25
26
|
enablePunc?: boolean;
|
|
26
27
|
enableDdc?: boolean;
|
|
27
28
|
showUtterances?: boolean;
|
|
29
|
+
}
|
|
30
|
+
interface QwenASROptions extends BaseASROptions {
|
|
31
|
+
audioFormat?: {
|
|
32
|
+
sampleRate?: number;
|
|
33
|
+
};
|
|
34
|
+
enableItn?: boolean;
|
|
35
|
+
enablePunc?: boolean;
|
|
28
36
|
enableWords?: boolean;
|
|
37
|
+
}
|
|
38
|
+
interface GlmASROptions extends BaseASROptions {
|
|
29
39
|
hotwords?: string[];
|
|
30
40
|
context?: string;
|
|
31
41
|
}
|
|
42
|
+
type ASROptions = ({
|
|
43
|
+
provider: 'doubao';
|
|
44
|
+
} & DoubaoASROptions) | ({
|
|
45
|
+
provider: 'qwen';
|
|
46
|
+
} & QwenASROptions) | ({
|
|
47
|
+
provider: 'glm';
|
|
48
|
+
} & GlmASROptions) | ({
|
|
49
|
+
provider: 'minimax';
|
|
50
|
+
} & BaseASROptions) | ({
|
|
51
|
+
provider: 'openai';
|
|
52
|
+
} & BaseASROptions) | ({
|
|
53
|
+
provider: 'gemini';
|
|
54
|
+
} & BaseASROptions) | ({
|
|
55
|
+
provider: string;
|
|
56
|
+
} & BaseASROptions);
|
|
32
57
|
interface ListenInstanceOptions {
|
|
33
58
|
stream?: boolean;
|
|
34
59
|
}
|
|
35
60
|
interface ASRRequest {
|
|
36
61
|
audio: Buffer | Uint8Array | string;
|
|
37
|
-
options?: Partial<
|
|
62
|
+
options?: Partial<BaseASROptions>;
|
|
38
63
|
}
|
|
39
64
|
interface ASRResponse {
|
|
40
65
|
text: string;
|
|
@@ -63,6 +88,21 @@ interface ASRProvider {
|
|
|
63
88
|
type ASRProviderType = 'doubao' | 'minimax' | 'qwen' | 'openai' | 'gemini' | string;
|
|
64
89
|
type AudioStream = AsyncIterable<Buffer | Uint8Array>;
|
|
65
90
|
type AudioStreamInput = AudioStream | Buffer | Uint8Array | string;
|
|
91
|
+
type ASRConnectionState = 'connected' | 'closed' | 'error';
|
|
92
|
+
interface ASRConnectOptions {
|
|
93
|
+
timeout?: number;
|
|
94
|
+
}
|
|
95
|
+
interface ASRConnection {
|
|
96
|
+
readonly state: ASRConnectionState;
|
|
97
|
+
listen(audio: AudioStreamInput, options: ListenInstanceOptions & {
|
|
98
|
+
stream: true;
|
|
99
|
+
}): AsyncIterable<ASRStreamChunk>;
|
|
100
|
+
listen(audio: AudioStreamInput, options?: ListenInstanceOptions & {
|
|
101
|
+
stream?: false;
|
|
102
|
+
}): Promise<ASRResponse>;
|
|
103
|
+
listen(audio: AudioStreamInput, options?: ListenInstanceOptions): Promise<ASRResponse> | AsyncIterable<ASRStreamChunk>;
|
|
104
|
+
close(): void;
|
|
105
|
+
}
|
|
66
106
|
|
|
67
107
|
declare abstract class BaseASR {
|
|
68
108
|
abstract name: string;
|
|
@@ -74,12 +114,13 @@ declare abstract class BaseASR {
|
|
|
74
114
|
responseFormat: 'json' | 'text' | 'srt' | 'vtt' | 'verbose_json';
|
|
75
115
|
format: AudioContainerFormat;
|
|
76
116
|
codec: AudioCodecFormat;
|
|
77
|
-
constructor(options:
|
|
117
|
+
constructor(options: BaseASROptions);
|
|
78
118
|
abstract listenStream(audio: AudioStream): AsyncIterable<ASRStreamChunk>;
|
|
79
119
|
private isAudioStream;
|
|
80
120
|
private isString;
|
|
81
121
|
private adaptAudioInput;
|
|
82
122
|
private fileToPcmAudioStream;
|
|
123
|
+
connect(_options?: ASRConnectOptions): Promise<ASRConnection>;
|
|
83
124
|
private createStreamIterable;
|
|
84
125
|
private collectASRResponse;
|
|
85
126
|
listen(audio: AudioStreamInput, options: ListenInstanceOptions & {
|
|
@@ -90,4 +131,4 @@ declare abstract class BaseASR {
|
|
|
90
131
|
}): Promise<ASRResponse>;
|
|
91
132
|
}
|
|
92
133
|
|
|
93
|
-
export { type
|
|
134
|
+
export { type ASRConnectOptions as A, BaseASR as B, type DoubaoASROptions as D, type GlmASROptions as G, type ListenInstanceOptions as L, type QwenASROptions as Q, type ASRConnection as a, type ASRConnectionState as b, type ASROptions as c, type ASRProvider as d, type ASRProviderType as e, type ASRRequest as f, type ASRResponse as g, type ASRSegment as h, type ASRStreamChunk as i, type AudioCodecFormat as j, type AudioContainerFormat as k, type AudioFormat as l, type AudioStream as m, type AudioStreamInput as n, type BaseASROptions as o };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
interface OpenAIChatCompletionChunk {
|
|
2
|
+
choices?: Array<{
|
|
3
|
+
delta?: {
|
|
4
|
+
content?: string | null;
|
|
5
|
+
reasoning_content?: string | null;
|
|
6
|
+
};
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
type OpenAIStream = AsyncIterable<OpenAIChatCompletionChunk>;
|
|
10
|
+
|
|
11
|
+
type DoubaoV2Voice = 'zh_female_vv_uranus_bigtts' | 'zh_female_xiaohe_uranus_bigtts' | 'zh_male_m191_uranus_bigtts' | 'zh_male_taocheng_uranus_bigtts' | 'zh_male_liufei_uranus_bigtts' | 'zh_male_sophie_uranus_bigtts' | 'zh_female_qingxinnvsheng_uranus_bigtts' | 'zh_female_cancan_uranus_bigtts' | 'zh_female_sajiaoxuemei_uranus_bigtts' | 'zh_female_tianmeixiaoyuan_uranus_bigtts' | 'zh_female_tianmeitaozi_uranus_bigtts' | 'zh_female_shuangkuaisisi_uranus_bigtts' | 'zh_female_peiqi_uranus_bigtts' | 'zh_female_linjianvhai_uranus_bigtts' | 'zh_male_shaonianzixin_uranus_bigtts' | 'zh_male_sunwukong_uranus_bigtts' | 'zh_female_yingyujiaoxue_uranus_bigtts' | 'zh_female_kefunvsheng_uranus_bigtts' | 'zh_female_xiaoxue_uranus_bigtts' | 'zh_male_dayi_uranus_bigtts' | 'zh_female_mizai_uranus_bigtts' | 'zh_female_jitangnv_uranus_bigtts' | 'zh_female_meilinvyou_uranus_bigtts' | 'zh_female_liuchangnvsheng_uranus_bigtts' | 'zh_male_ruyayichen_uranus_bigtts' | 'en_male_tim_uranus_bigtts' | 'en_female_dacey_uranus_bigtts' | 'en_female_stokie_uranus_bigtts' | 'saturn_zh_female_keainvsheng_tob' | 'saturn_zh_female_tiaopigongzhu_tob' | 'saturn_zh_male_shuanglangshaonian_tob' | 'saturn_zh_male_tiancaitongzhuo_tob' | 'saturn_zh_female_cancan_tob' | 'saturn_zh_female_qingyingduoduo_cs_tob' | 'saturn_zh_female_wenwanshanshan_cs_tob' | 'saturn_zh_female_reqingaina_cs_tob';
|
|
12
|
+
type DoubaoJupiterVoice = 'zh_female_vv_jupiter_bigtts' | 'zh_female_xiaohe_jupiter_bigtts' | 'zh_male_yunzhou_jupiter_bigtts' | 'zh_male_xiaotian_jupiter_bigtts';
|
|
13
|
+
type DoubaoV1Voice = 'zh_male_lengkugege_emo_v2_mars_bigtts' | 'zh_female_tianxinxiaomei_emo_v2_mars_bigtts' | 'zh_female_gaolengyujie_emo_v2_mars_bigtts' | 'zh_male_aojiaobazong_emo_v2_mars_bigtts' | 'zh_male_guangzhoudege_emo_mars_bigtts' | 'zh_male_jingqiangkanye_emo_mars_bigtts' | 'zh_female_linjuayi_emo_v2_mars_bigtts' | 'zh_male_yourougongzi_emo_v2_mars_bigtts' | 'zh_male_ruyayichen_emo_v2_mars_bigtts' | 'zh_male_junlangnanyou_emo_v2_mars_bigtts' | 'zh_male_beijingxiaoye_emo_v2_mars_bigtts' | 'zh_female_roumeinvyou_emo_v2_mars_bigtts' | 'zh_male_yangguangqingnian_emo_v2_mars_bigtts' | 'zh_female_meilinvyou_emo_v2_mars_bigtts' | 'zh_female_shuangkuaisisi_emo_v2_mars_bigtts' | 'en_female_candice_emo_v2_mars_bigtts' | 'en_female_skye_emo_v2_mars_bigtts' | 'en_male_glen_emo_v2_mars_bigtts' | 'en_male_sylus_emo_v2_mars_bigtts' | 'en_male_corey_emo_v2_mars_bigtts' | 'en_female_nadia_tips_emo_v2_mars_bigtts' | 'zh_male_shenyeboke_emo_v2_mars_bigtts' | 'zh_female_yingyujiaoyu_mars_bigtts' | 'ICL_zh_female_wenrounvshen_239eff5e8ffa_tob' | 'zh_female_vv_mars_bigtts' | 'zh_female_qinqienvsheng_moon_bigtts' | 'ICL_zh_male_shenmi_v1_tob' | 'ICL_zh_female_wuxi_tob' | 'ICL_zh_female_wenyinvsheng_v1_tob' | 'zh_male_qingyiyuxuan_mars_bigtts' | 'zh_male_xudong_conversation_wvae_bigtts' | 'ICL_zh_male_lengkugege_v1_tob' | 'ICL_zh_female_feicui_v1_tob' | 'ICL_zh_female_yuxin_v1_tob' | 'ICL_zh_female_xnx_tob' | 'ICL_zh_female_yry_tob' | 'ICL_zh_male_BV705_streaming_cs_tob' | 'en_male_jason_conversation_wvae_bigtts' | 'zh_female_sophie_conversation_wvae_bigtts' | 'ICL_zh_female_yilin_tob' | 'zh_female_tianmeitaozi_mars_bigtts' | 'zh_female_qingxinnvsheng_mars_bigtts' | 'zh_female_zhixingnvsheng_mars_bigtts' | 'zh_male_qingshuangnanda_mars_bigtts' | 'zh_female_linjianvhai_moon_bigtts' | 'zh_male_yuanboxiaoshu_moon_bigtts' | 'zh_male_yangguangqingnian_moon_bigtts' | 'zh_female_tianmeixiaoyuan_moon_bigtts' | 'zh_female_qingchezizi_moon_bigtts' | 'zh_male_jieshuoxiaoming_moon_bigtts' | 'zh_female_kailangjiejie_moon_bigtts' | 'zh_male_linjiananhai_moon_bigtts' | 'zh_female_tianmeiyueyue_moon_bigtts' | 'zh_female_xinlingjitang_moon_bigtts' | 'ICL_zh_female_zhixingwenwan_tob' | 'ICL_zh_male_nuanxintitie_tob' | 'ICL_zh_male_kailangqingkuai_tob' | 'ICL_zh_male_huoposhuanglang_tob' | 'ICL_zh_male_shuaizhenxiaohuo_tob' | 'zh_male_wenrouxiaoge_mars_bigtts' | 'zh_female_cancan_mars_bigtts' | 'zh_female_shuangkuaisisi_moon_bigtts' | 'zh_male_wennuanahu_moon_bigtts' | 'zh_male_shaonianzixin_moon_bigtts' | 'ICL_zh_female_wenrouwenya_tob' | 'zh_male_hupunan_mars_bigtts' | 'zh_male_lubanqihao_mars_bigtts' | 'zh_female_yangmi_mars_bigtts' | 'zh_female_linzhiling_mars_bigtts' | 'zh_female_jiyejizi2_mars_bigtts' | 'zh_male_tangseng_mars_bigtts' | 'zh_male_zhuangzhou_mars_bigtts' | 'zh_male_zhubajie_mars_bigtts' | 'zh_female_ganmaodianyin_mars_bigtts' | 'zh_female_naying_mars_bigtts' | 'zh_female_leidian_mars_bigtts' | 'zh_female_yueyunv_mars_bigtts' | 'zh_male_yuzhouzixuan_moon_bigtts' | 'zh_female_daimengchuanmei_moon_bigtts' | 'zh_male_guangxiyuanzhou_moon_bigtts' | 'zh_male_zhoujielun_emo_v2_mars_bigtts' | 'zh_female_wanwanxiaohe_moon_bigtts' | 'zh_female_wanqudashu_moon_bigtts' | 'zh_male_guozhoudege_moon_bigtts' | 'zh_male_haoyuxiaoge_moon_bigtts' | 'zh_male_beijingxiaoye_moon_bigtts' | 'zh_male_jingqiangkanye_moon_bigtts' | 'zh_female_meituojieer_moon_bigtts' | 'ICL_zh_female_chunzhenshaonv_e588402fb8ad_tob' | 'ICL_zh_male_xiaonaigou_edf58cf28b8b_tob' | 'ICL_zh_female_jinglingxiangdao_1beb294a9e3e_tob' | 'ICL_zh_male_menyoupingxiaoge_ffed9fc2fee7_tob' | 'ICL_zh_male_anrenqinzhu_cd62e63dcdab_tob' | 'ICL_zh_male_badaozongcai_v1_tob' | 'ICL_zh_female_ganli_v1_tob' | 'ICL_zh_female_xiangliangya_v1_tob' | 'ICL_zh_male_ms_tob' | 'ICL_zh_male_you_tob' | 'ICL_zh_male_guaogongzi_v1_tob' | 'ICL_zh_male_huzi_v1_tob' | 'ICL_zh_female_luoqing_v1_tob' | 'ICL_zh_male_bingruogongzi_tob' | 'ICL_zh_female_bingjiao3_tob' | 'ICL_zh_male_aomanqingnian_tob' | 'ICL_zh_male_cujingnansheng_tob' | 'ICL_zh_male_shuanglangshaonian_tob' | 'ICL_zh_male_sajiaonanyou_tob' | 'ICL_zh_male_wenrounanyou_tob' | 'ICL_zh_male_wenshunshaonian_tob' | 'ICL_zh_male_naigounanyou_tob' | 'ICL_zh_male_sajiaonansheng_tob' | 'ICL_zh_male_huoponanyou_tob' | 'ICL_zh_male_tianxinanyou_tob' | 'ICL_zh_male_huoliqingnian_tob' | 'ICL_zh_male_kailangqingnian_tob' | 'ICL_zh_male_lengmoxiongzhang_tob' | 'ICL_zh_male_tiancaitongzhuo_tob' | 'ICL_zh_male_pianpiangongzi_tob' | 'ICL_zh_male_mengdongqingnian_tob' | 'ICL_zh_male_lenglianxiongzhang_tob' | 'ICL_zh_male_bingjiaoshaonian_tob' | 'ICL_zh_male_bingjiaonanyou_tob' | 'ICL_zh_male_bingruoshaonian_tob' | 'ICL_zh_male_yiqishaonian_tob' | 'ICL_zh_male_ganjingshaonian_tob' | 'ICL_zh_male_lengmonanyou_tob' | 'ICL_zh_male_jingyingqingnian_tob' | 'ICL_zh_male_rexueshaonian_tob' | 'ICL_zh_male_qingshuangshaonian_tob' | 'ICL_zh_male_zhongerqingnian_tob' | 'ICL_zh_male_lingyunqingnian_tob' | 'ICL_zh_male_zifuqingnian_tob' | 'ICL_zh_male_bujiqingnian_tob' | 'ICL_zh_male_ruyajunzi_tob' | 'ICL_zh_male_diyinchenyu_tob' | 'ICL_zh_male_lenglianxueba_tob' | 'ICL_zh_male_ruyazongcai_tob' | 'ICL_zh_male_shenchenzongcai_tob' | 'ICL_zh_male_xiaohouye_tob' | 'ICL_zh_male_gugaogongzi_tob' | 'ICL_zh_male_zhangjianjunzi_tob' | 'ICL_zh_male_wenrunxuezhe_tob' | 'ICL_zh_male_qinqieqingnian_tob' | 'ICL_zh_male_wenrouxuezhang_tob' | 'ICL_zh_male_gaolengzongcai_tob' | 'ICL_zh_male_lengjungaozhi_tob' | 'ICL_zh_male_chanruoshaoye_tob' | 'ICL_zh_male_zixinqingnian_tob' | 'ICL_zh_male_qingseqingnian_tob' | 'ICL_zh_male_xuebatongzhuo_tob' | 'ICL_zh_male_lengaozongcai_tob' | 'ICL_zh_male_yuanqishaonian_tob' | 'ICL_zh_male_satuoqingnian_tob' | 'ICL_zh_male_zhishuaiqingnian_tob' | 'ICL_zh_male_siwenqingnian_tob' | 'ICL_zh_male_junyigongzi_tob' | 'ICL_zh_male_zhangjianxiake_tob' | 'ICL_zh_male_jijiaozhineng_tob' | 'zh_male_naiqimengwa_mars_bigtts' | 'zh_female_popo_mars_bigtts' | 'zh_female_gaolengyujie_moon_bigtts' | 'zh_male_aojiaobazong_moon_bigtts' | 'zh_female_meilinvyou_moon_bigtts' | 'zh_male_shenyeboke_moon_bigtts' | 'zh_female_sajiaonvyou_moon_bigtts' | 'zh_female_yuanqinvyou_moon_bigtts' | 'ICL_zh_female_bingruoshaonv_tob' | 'ICL_zh_female_huoponvhai_tob' | 'zh_male_dongfanghaoran_moon_bigtts' | 'ICL_zh_male_lvchaxiaoge_tob' | 'ICL_zh_female_jiaoruoluoli_tob' | 'ICL_zh_male_lengdanshuli_tob' | 'ICL_zh_male_hanhoudunshi_tob' | 'ICL_zh_female_huopodiaoman_tob' | 'ICL_zh_male_guzhibingjiao_tob' | 'ICL_zh_male_sajiaonianren_tob' | 'ICL_zh_female_aomanjiaosheng_tob' | 'ICL_zh_male_xiaosasuixing_tob' | 'ICL_zh_male_guiyishenmi_tob' | 'ICL_zh_male_ruyacaijun_tob' | 'ICL_zh_male_zhengzhiqingnian_tob' | 'ICL_zh_female_jiaohannvwang_tob' | 'ICL_zh_female_bingjiaomengmei_tob' | 'ICL_zh_male_qingsenaigou_tob' | 'ICL_zh_male_chunzhenxuedi_tob' | 'ICL_zh_male_youroubangzhu_tob' | 'ICL_zh_male_yourougongzi_tob' | 'ICL_zh_female_tiaopigongzhu_tob' | 'ICL_zh_male_tiexinnanyou_tob' | 'ICL_zh_male_shaonianjiangjun_tob' | 'ICL_zh_male_bingjiaogege_tob' | 'ICL_zh_male_xuebanantongzhuo_tob' | 'ICL_zh_male_youmoshushu_tob' | 'ICL_zh_female_jiaxiaozi_tob' | 'ICL_zh_male_wenrounantongzhuo_tob' | 'ICL_zh_male_youmodaye_tob' | 'ICL_zh_male_asmryexiu_tob' | 'ICL_zh_male_shenmifashi_tob' | 'zh_female_jiaochuan_mars_bigtts' | 'zh_male_livelybro_mars_bigtts' | 'zh_female_flattery_mars_bigtts' | 'ICL_zh_male_lengjunshangsi_tob' | 'ICL_zh_male_xiaoge_v1_tob' | 'ICL_zh_male_renyuwangzi_v1_tob' | 'ICL_zh_male_xiaosha_v1_tob' | 'ICL_zh_male_liyisheng_v1_tob' | 'ICL_zh_male_qinglen_v1_tob' | 'ICL_zh_male_chongqingzhanzhan_v1_tob' | 'ICL_zh_male_xingjiwangzi_v1_tob' | 'ICL_zh_male_sigeshiye_v1_tob' | 'ICL_zh_male_lanyingcaohunshi_v1_tob' | 'ICL_zh_female_liumengdie_v1_tob' | 'ICL_zh_female_linxueying_v1_tob' | 'ICL_zh_female_rouguhunshi_v1_tob' | 'ICL_zh_female_tianmei_v1_tob' | 'ICL_zh_female_chengshu_v1_tob' | 'ICL_zh_female_xnx_v1_tob' | 'ICL_zh_female_yry_v1_tob' | 'zh_male_bv139_audiobook_ummv3_bigtts' | 'ICL_zh_male_cujingnanyou_tob' | 'ICL_zh_male_fengfashaonian_tob' | 'ICL_zh_male_cixingnansang_tob' | 'ICL_zh_male_chengshuzongcai_tob' | 'ICL_zh_male_aojiaojingying_tob' | 'ICL_zh_male_aojiaogongzi_tob' | 'ICL_zh_male_badaoshaoye_tob' | 'ICL_zh_male_fuheigongzi_tob' | 'ICL_zh_female_nuanxinxuejie_tob' | 'ICL_zh_female_keainvsheng_tob' | 'ICL_zh_female_chengshujiejie_tob' | 'ICL_zh_female_bingjiaojiejie_tob' | 'ICL_zh_female_wumeiyujie_tob' | 'ICL_zh_female_aojiaonvyou_tob' | 'ICL_zh_female_tiexinnvyou_tob' | 'ICL_zh_female_xingganyujie_tob' | 'ICL_zh_male_bingjiaodidi_tob' | 'ICL_zh_male_aomanshaoye_tob' | 'ICL_zh_male_aiqilingren_tob' | 'ICL_zh_male_bingjiaobailian_tob' | 'en_female_lauren_moon_bigtts' | 'en_male_campaign_jamal_moon_bigtts' | 'en_male_chris_moon_bigtts' | 'en_female_product_darcie_moon_bigtts' | 'en_female_emotional_moon_bigtts' | 'en_female_nara_moon_bigtts' | 'en_male_bruce_moon_bigtts' | 'en_male_michael_moon_bigtts' | 'ICL_en_male_cc_sha_v1_tob' | 'zh_male_M100_conversation_wvae_bigtts' | 'en_female_dacey_conversation_wvae_bigtts' | 'en_male_charlie_conversation_wvae_bigtts' | 'en_female_sarah_new_conversation_wvae_bigtts' | 'ICL_en_male_michael_tob' | 'ICL_en_female_cc_cm_v1_tob' | 'ICL_en_male_oogie2_tob' | 'ICL_en_male_frosty1_tob' | 'ICL_en_male_grinch2_tob' | 'ICL_en_male_zayne_tob' | 'ICL_en_male_cc_jigsaw_tob' | 'ICL_en_male_cc_chucky_tob' | 'ICL_en_male_cc_penny_v1_tob' | 'ICL_en_male_kevin2_tob' | 'ICL_en_male_xavier1_v1_tob' | 'ICL_en_male_cc_dracula_v1_tob' | 'en_male_adam_mars_bigtts' | 'en_female_amanda_mars_bigtts' | 'en_male_jackson_mars_bigtts' | 'en_female_daisy_moon_bigtts' | 'en_male_dave_moon_bigtts' | 'en_male_hades_moon_bigtts' | 'en_female_onez_moon_bigtts' | 'en_female_emily_mars_bigtts' | 'en_male_smith_mars_bigtts' | 'en_female_anna_mars_bigtts' | 'ICL_en_male_aussie_v1_tob' | 'en_female_sarah_mars_bigtts' | 'en_male_dryw_mars_bigtts' | 'multi_female_maomao_conversation_wvae_bigtts' | 'multi_male_M100_conversation_wvae_bigtts' | 'multi_female_sophie_conversation_wvae_bigtts' | 'multi_male_xudong_conversation_wvae_bigtts' | 'multi_zh_male_youyoujunzi_moon_bigtts' | 'multi_female_gaolengyujie_moon_bigtts' | 'multi_male_jingqiangkanye_moon_bigtts' | 'multi_female_shuangkuaisisi_moon_bigtts' | 'multi_male_wanqudashu_moon_bigtts' | 'ICL_zh_female_lixingyuanzi_cs_tob' | 'ICL_zh_female_qingtiantaotao_cs_tob' | 'ICL_zh_female_qingxixiaoxue_cs_tob' | 'ICL_zh_female_qingtianmeimei_cs_tob' | 'ICL_zh_female_kailangtingting_cs_tob' | 'ICL_zh_male_qingxinmumu_cs_tob' | 'ICL_zh_male_shuanglangxiaoyang_cs_tob' | 'ICL_zh_male_qingxinbobo_cs_tob' | 'ICL_zh_female_wenwanshanshan_cs_tob' | 'ICL_zh_female_tianmeixiaoyu_cs_tob' | 'ICL_zh_female_reqingaina_cs_tob' | 'ICL_zh_female_tianmeixiaoju_cs_tob' | 'ICL_zh_male_chenwenmingzai_cs_tob' | 'ICL_zh_male_qinqiexiaozhuo_cs_tob' | 'ICL_zh_female_lingdongxinxin_cs_tob' | 'ICL_zh_female_guaiqiaokeer_cs_tob' | 'ICL_zh_female_nuanxinqianqian_cs_tob' | 'ICL_zh_female_ruanmengtuanzi_cs_tob' | 'ICL_zh_male_yangguangyangyang_cs_tob' | 'ICL_zh_female_ruanmengtangtang_cs_tob' | 'ICL_zh_female_xiuliqianqian_cs_tob' | 'ICL_zh_female_kaixinxiaohong_cs_tob' | 'ICL_zh_female_qingyingduoduo_cs_tob' | 'zh_female_kefunvsheng_mars_bigtts' | 'zh_female_maomao_conversation_wvae_bigtts' | 'ICL_zh_female_qiuling_v1_tob' | 'ICL_zh_male_buyan_v1_tob' | 'ICL_zh_male_BV144_paoxiaoge_v1_tob' | 'ICL_zh_female_heainainai_tob' | 'ICL_zh_female_linjuayi_tob' | 'zh_female_wenrouxiaoya_moon_bigtts' | 'zh_male_tiancaitongsheng_mars_bigtts' | 'zh_male_sunwukong_mars_bigtts' | 'zh_male_xionger_mars_bigtts' | 'zh_female_peiqi_mars_bigtts' | 'zh_female_wuzetian_mars_bigtts' | 'zh_female_gujie_mars_bigtts' | 'zh_female_yingtaowanzi_mars_bigtts' | 'zh_male_chunhui_mars_bigtts' | 'zh_female_shaoergushi_mars_bigtts' | 'zh_male_silang_mars_bigtts' | 'zh_female_qiaopinvsheng_mars_bigtts' | 'zh_male_lanxiaoyang_mars_bigtts' | 'zh_male_dongmanhaimian_mars_bigtts' | 'zh_male_jieshuonansheng_mars_bigtts' | 'zh_female_jitangmeimei_mars_bigtts' | 'zh_female_tiexinnvsheng_mars_bigtts' | 'zh_female_mengyatou_mars_bigtts' | 'ICL_zh_male_neiliancaijun_e991be511569_tob' | 'ICL_zh_male_yangyang_v1_tob' | 'ICL_zh_male_flc_v1_tob' | 'zh_male_changtianyi_mars_bigtts' | 'zh_male_ruyaqingnian_mars_bigtts' | 'zh_male_baqiqingshu_mars_bigtts' | 'zh_male_qingcang_mars_bigtts' | 'zh_male_yangguangqingnian_mars_bigtts' | 'zh_female_gufengshaoyu_mars_bigtts' | 'zh_female_wenroushunv_mars_bigtts' | 'zh_male_fanjuanqingnian_mars_bigtts';
|
|
14
|
+
type DoubaoVoice = DoubaoV2Voice | DoubaoJupiterVoice | DoubaoV1Voice;
|
|
15
|
+
|
|
16
|
+
type GlmVoice = 'tongtong' | 'chuichui' | 'xiaochen' | 'jam' | 'kazi' | 'douji' | 'luodo';
|
|
17
|
+
|
|
18
|
+
type MinimaxChineseMandarinVoice = 'male-qn-qingse' | 'male-qn-jingying' | 'male-qn-badao' | 'male-qn-daxuesheng' | 'female-shaonv' | 'female-yujie' | 'female-chengshu' | 'female-tianmei' | 'male-qn-qingse-jingpin' | 'male-qn-jingying-jingpin' | 'male-qn-badao-jingpin' | 'male-qn-daxuesheng-jingpin' | 'female-shaonv-jingpin' | 'female-yujie-jingpin' | 'female-chengshu-jingpin' | 'female-tianmei-jingpin' | 'clever_boy' | 'cute_boy' | 'lovely_girl' | 'cartoon_pig' | 'bingjiao_didi' | 'junlang_nanyou' | 'chunzhen_xuedi' | 'lengdan_xiongzhang' | 'badao_shaoye' | 'tianxin_xiaoling' | 'qiaopi_mengmei' | 'wumei_yujie' | 'diadia_xuemei' | 'danya_xuejie' | 'Chinese (Mandarin)_Reliable_Executive' | 'Chinese (Mandarin)_News_Anchor' | 'Chinese (Mandarin)_Mature_Woman' | 'Chinese (Mandarin)_Unrestrained_Young_Man' | 'Arrogant_Miss' | 'Robot_Armor' | 'Chinese (Mandarin)_Kind-hearted_Antie' | 'Chinese (Mandarin)_HK_Flight_Attendant' | 'Chinese (Mandarin)_Humorous_Elder' | 'Chinese (Mandarin)_Gentleman' | 'Chinese (Mandarin)_Warm_Bestie' | 'Chinese (Mandarin)_Male_Announcer' | 'Chinese (Mandarin)_Sweet_Lady' | 'Chinese (Mandarin)_Southern_Young_Man' | 'Chinese (Mandarin)_Wise_Women' | 'Chinese (Mandarin)_Gentle_Youth' | 'Chinese (Mandarin)_Warm_Girl' | 'Chinese (Mandarin)_Kind-hearted_Elder' | 'Chinese (Mandarin)_Cute_Spirit' | 'Chinese (Mandarin)_Radio_Host' | 'Chinese (Mandarin)_Lyrical_Voice' | 'Chinese (Mandarin)_Straightforward_Boy' | 'Chinese (Mandarin)_Sincere_Adult' | 'Chinese (Mandarin)_Gentle_Senior' | 'Chinese (Mandarin)_Stubborn_Friend' | 'Chinese (Mandarin)_Crisp_Girl' | 'Chinese (Mandarin)_Pure-hearted_Boy' | 'Chinese (Mandarin)_Soft_Girl';
|
|
19
|
+
type MinimaxChineseCantoneseVoice = 'Cantonese_ProfessionalHost(F)' | 'Cantonese_GentleLady' | 'Cantonese_ProfessionalHost(M)' | 'Cantonese_PlayfulMan' | 'Cantonese_CuteGirl' | 'Cantonese_KindWoman';
|
|
20
|
+
type MinimaxEnglishVoice = 'Santa_Claus' | 'Grinch' | 'Rudolph' | 'Arnold' | 'Charming_Santa' | 'Charming_Lady' | 'Sweet_Girl' | 'Cute_Elf' | 'Attractive_Girl' | 'Serene_Woman' | 'English_Trustworthy_Man' | 'English_Graceful_Lady' | 'English_Aussie_Bloke' | 'English_Whispering_girl' | 'English_Diligent_Man' | 'English_Gentle-voiced_man';
|
|
21
|
+
type MinimaxJapaneseVoice = 'Japanese_IntellectualSenior' | 'Japanese_DecisivePrincess' | 'Japanese_LoyalKnight' | 'Japanese_DominantMan' | 'Japanese_SeriousCommander' | 'Japanese_ColdQueen' | 'Japanese_DependableWoman' | 'Japanese_GentleButler' | 'Japanese_KindLady' | 'Japanese_CalmLady' | 'Japanese_OptimisticYouth' | 'Japanese_GenerousIzakayaOwner' | 'Japanese_SportyStudent' | 'Japanese_InnocentBoy' | 'Japanese_GracefulMaiden';
|
|
22
|
+
type MinimaxKoreanVoice = 'Korean_SweetGirl' | 'Korean_CheerfulBoyfriend' | 'Korean_EnchantingSister' | 'Korean_ShyGirl' | 'Korean_ReliableSister' | 'Korean_StrictBoss' | 'Korean_SassyGirl' | 'Korean_ChildhoodFriendGirl' | 'Korean_PlayboyCharmer' | 'Korean_ElegantPrincess' | 'Korean_BraveFemaleWarrior' | 'Korean_BraveYouth' | 'Korean_CalmLady' | 'Korean_EnthusiasticTeen' | 'Korean_SoothingLady' | 'Korean_IntellectualSenior' | 'Korean_LonelyWarrior' | 'Korean_MatureLady' | 'Korean_InnocentBoy' | 'Korean_CharmingSister' | 'Korean_AthleticStudent' | 'Korean_BraveAdventurer' | 'Korean_CalmGentleman' | 'Korean_WiseElf' | 'Korean_CheerfulCoolJunior' | 'Korean_DecisiveQueen' | 'Korean_ColdYoungMan' | 'Korean_MysteriousGirl' | 'Korean_QuirkyGirl' | 'Korean_ConsiderateSenior' | 'Korean_CheerfulLittleSister' | 'Korean_DominantMan' | 'Korean_AirheadedGirl' | 'Korean_ReliableYouth' | 'Korean_FriendlyBigSister' | 'Korean_GentleBoss' | 'Korean_ColdGirl' | 'Korean_HaughtyLady' | 'Korean_CharmingElderSister' | 'Korean_IntellectualMan' | 'Korean_CaringWoman' | 'Korean_WiseTeacher' | 'Korean_ConfidentBoss' | 'Korean_AthleticGirl' | 'Korean_PossessiveMan' | 'Korean_GentleWoman' | 'Korean_CockyGuy' | 'Korean_ThoughtfulWoman' | 'Korean_OptimisticYouth';
|
|
23
|
+
type MinimaxSpanishVoice = 'Spanish_SereneWoman' | 'Spanish_MaturePartner' | 'Spanish_CaptivatingStoryteller' | 'Spanish_Narrator' | 'Spanish_WiseScholar' | 'Spanish_Kind-heartedGirl' | 'Spanish_DeterminedManager' | 'Spanish_BossyLeader' | 'Spanish_ReservedYoungMan' | 'Spanish_ConfidentWoman' | 'Spanish_ThoughtfulMan' | 'Spanish_Strong-WilledBoy' | 'Spanish_SophisticatedLady' | 'Spanish_RationalMan' | 'Spanish_AnimeCharacter' | 'Spanish_Deep-tonedMan' | 'Spanish_Fussyhostess' | 'Spanish_SincereTeen' | 'Spanish_FrankLady' | 'Spanish_Comedian' | 'Spanish_Debator' | 'Spanish_ToughBoss' | 'Spanish_Wiselady' | 'Spanish_Steadymentor' | 'Spanish_Jovialman' | 'Spanish_SantaClaus' | 'Spanish_Rudolph' | 'Spanish_Intonategirl' | 'Spanish_Arnold' | 'Spanish_Ghost' | 'Spanish_HumorousElder' | 'Spanish_EnergeticBoy' | 'Spanish_WhimsicalGirl' | 'Spanish_StrictBoss' | 'Spanish_ReliableMan' | 'Spanish_SereneElder' | 'Spanish_AngryMan' | 'Spanish_AssertiveQueen' | 'Spanish_CaringGirlfriend' | 'Spanish_PowerfulSoldier' | 'Spanish_PassionateWarrior' | 'Spanish_ChattyGirl' | 'Spanish_RomanticHusband' | 'Spanish_CompellingGirl' | 'Spanish_PowerfulVeteran' | 'Spanish_SensibleManager' | 'Spanish_ThoughtfulLady';
|
|
24
|
+
type MinimaxPortugueseVoice = 'Portuguese_SentimentalLady' | 'Portuguese_BossyLeader' | 'Portuguese_Wiselady' | 'Portuguese_Strong-WilledBoy' | 'Portuguese_Deep-VoicedGentleman' | 'Portuguese_UpsetGirl' | 'Portuguese_PassionateWarrior' | 'Portuguese_AnimeCharacter' | 'Portuguese_ConfidentWoman' | 'Portuguese_AngryMan' | 'Portuguese_CaptivatingStoryteller' | 'Portuguese_Godfather' | 'Portuguese_ReservedYoungMan' | 'Portuguese_SmartYoungGirl' | 'Portuguese_Kind-heartedGirl' | 'Portuguese_Pompouslady' | 'Portuguese_Grinch' | 'Portuguese_Debator' | 'Portuguese_SweetGirl' | 'Portuguese_AttractiveGirl' | 'Portuguese_ThoughtfulMan' | 'Portuguese_PlayfulGirl' | 'Portuguese_GorgeousLady' | 'Portuguese_LovelyLady' | 'Portuguese_SereneWoman' | 'Portuguese_SadTeen' | 'Portuguese_MaturePartner' | 'Portuguese_Comedian' | 'Portuguese_NaughtySchoolgirl' | 'Portuguese_Narrator' | 'Portuguese_ToughBoss' | 'Portuguese_Fussyhostess' | 'Portuguese_Dramatist' | 'Portuguese_Steadymentor' | 'Portuguese_Jovialman' | 'Portuguese_CharmingQueen' | 'Portuguese_SantaClaus' | 'Portuguese_Rudolph' | 'Portuguese_Arnold' | 'Portuguese_CharmingSanta' | 'Portuguese_CharmingLady' | 'Portuguese_Ghost' | 'Portuguese_HumorousElder' | 'Portuguese_CalmLeader' | 'Portuguese_GentleTeacher' | 'Portuguese_EnergeticBoy' | 'Portuguese_ReliableMan' | 'Portuguese_SereneElder' | 'Portuguese_GrimReaper' | 'Portuguese_AssertiveQueen' | 'Portuguese_WhimsicalGirl' | 'Portuguese_StressedLady' | 'Portuguese_FriendlyNeighbor' | 'Portuguese_CaringGirlfriend' | 'Portuguese_PowerfulSoldier' | 'Portuguese_FascinatingBoy' | 'Portuguese_RomanticHusband' | 'Portuguese_StrictBoss' | 'Portuguese_InspiringLady' | 'Portuguese_PlayfulSpirit' | 'Portuguese_ElegantGirl' | 'Portuguese_CompellingGirl' | 'Portuguese_PowerfulVeteran' | 'Portuguese_SensibleManager' | 'Portuguese_ThoughtfulLady' | 'Portuguese_TheatricalActor' | 'Portuguese_FragileBoy' | 'Portuguese_ChattyGirl' | 'Portuguese_Conscientiousinstructor' | 'Portuguese_RationalMan' | 'Portuguese_WiseScholar' | 'Portuguese_FrankLady' | 'Portuguese_DeterminedManager';
|
|
25
|
+
type MinimaxFrenchVoice = 'French_Male_Speech_New' | 'French_Female_News Anchor' | 'French_CasualMan' | 'French_MovieLeadFemale' | 'French_FemaleAnchor' | 'French_MaleNarrator';
|
|
26
|
+
type MinimaxIndonesianVoice = 'Indonesian_SweetGirl' | 'Indonesian_ReservedYoungMan' | 'Indonesian_CharmingGirl' | 'Indonesian_CalmWoman' | 'Indonesian_ConfidentWoman' | 'Indonesian_CaringMan' | 'Indonesian_BossyLeader' | 'Indonesian_DeterminedBoy' | 'Indonesian_GentleGirl';
|
|
27
|
+
type MinimaxGermanVoice = 'German_FriendlyMan' | 'German_SweetLady' | 'German_PlayfulMan';
|
|
28
|
+
type MinimaxRussianVoice = 'Russian_HandsomeChildhoodFriend' | 'Russian_BrightHeroine' | 'Russian_AmbitiousWoman' | 'Russian_ReliableMan' | 'Russian_CrazyQueen' | 'Russian_PessimisticGirl' | 'Russian_AttractiveGuy' | 'Russian_Bad-temperedBoy';
|
|
29
|
+
type MinimaxItalianVoice = 'Italian_BraveHeroine' | 'Italian_Narrator' | 'Italian_WanderingSorcerer' | 'Italian_DiligentLeader';
|
|
30
|
+
type MinimaxArabicVoice = 'Arabic_CalmWoman' | 'Arabic_FriendlyGuy';
|
|
31
|
+
type MinimaxTurkishVoice = 'Turkish_CalmWoman' | 'Turkish_Trustworthyman';
|
|
32
|
+
type MinimaxUkrainianVoice = 'Ukrainian_CalmWoman' | 'Ukrainian_WiseScholar';
|
|
33
|
+
type MinimaxDutchVoice = 'Dutch_kindhearted_girl' | 'Dutch_bossy_leader';
|
|
34
|
+
type MinimaxVietnameseVoice = 'Vietnamese_kindhearted_girl';
|
|
35
|
+
type MinimaxThaiVoice = 'Thai_male_1_sample8' | 'Thai_male_2_sample2' | 'Thai_female_1_sample1' | 'Thai_female_2_sample2';
|
|
36
|
+
type MinimaxPolishVoice = 'Polish_male_1_sample4' | 'Polish_male_2_sample3' | 'Polish_female_1_sample1' | 'Polish_female_2_sample3';
|
|
37
|
+
type MinimaxRomanianVoice = 'Romanian_male_1_sample2' | 'Romanian_male_2_sample1' | 'Romanian_female_1_sample4' | 'Romanian_female_2_sample1';
|
|
38
|
+
type MinimaxGreekVoice = 'greek_male_1a_v1' | 'Greek_female_1_sample1' | 'Greek_female_2_sample3';
|
|
39
|
+
type MinimaxCzechVoice = 'czech_male_1_v1' | 'czech_female_5_v7' | 'czech_female_2_v2';
|
|
40
|
+
type MinimaxFinnishVoice = 'finnish_male_3_v1' | 'finnish_male_1_v2' | 'finnish_female_4_v1';
|
|
41
|
+
type MinimaxHindiVoice = 'hindi_male_1_v2' | 'hindi_female_2_v1' | 'hindi_female_1_v2';
|
|
42
|
+
type MinimaxVoice = MinimaxChineseMandarinVoice | MinimaxChineseCantoneseVoice | MinimaxEnglishVoice | MinimaxJapaneseVoice | MinimaxKoreanVoice | MinimaxSpanishVoice | MinimaxPortugueseVoice | MinimaxFrenchVoice | MinimaxIndonesianVoice | MinimaxGermanVoice | MinimaxRussianVoice | MinimaxItalianVoice | MinimaxArabicVoice | MinimaxTurkishVoice | MinimaxUkrainianVoice | MinimaxDutchVoice | MinimaxVietnameseVoice | MinimaxThaiVoice | MinimaxPolishVoice | MinimaxRomanianVoice | MinimaxGreekVoice | MinimaxCzechVoice | MinimaxFinnishVoice | MinimaxHindiVoice;
|
|
43
|
+
|
|
44
|
+
type QwenTTSModel = 'cosyvoice-v1' | 'cosyvoice-v2' | 'cosyvoice-v3-flash' | 'cosyvoice-v3-plus';
|
|
45
|
+
type CosyVoiceV1Voice = 'longwan' | 'longcheng' | 'longhua' | 'longxiaochun' | 'longxiaoxia' | 'longxiaocheng' | 'longxiaobai' | 'longlaotie' | 'longshu' | 'longshuo' | 'longjing' | 'longmiao' | 'longyue' | 'longyuan' | 'longfei' | 'longjielidou' | 'longtong' | 'longxiang' | 'loongstella' | 'loongbella';
|
|
46
|
+
type CosyVoiceV2Voice = 'longyingxiao' | 'longjiqi' | 'longhouge' | 'longjixin' | 'longanyue' | 'longshange' | 'longanmin' | 'longdaiyu' | 'longgaoseng' | 'longanli' | 'longanlang' | 'longanwen' | 'longanyun' | 'longyumi_v2' | 'longxiaochun_v2' | 'longxiaoxia_v2' | 'longyichen' | 'longwanjun' | 'longlaobo' | 'longlaoyi' | 'longbaizhi' | 'longsanshu' | 'longxiu_v2' | 'longmiao_v2' | 'longyue_v2' | 'longnan_v2' | 'longyuan_v2' | 'longanqin' | 'longanya' | 'longanshuo' | 'longanling' | 'longanzhi' | 'longanrou' | 'longqiang_v2' | 'longhan_v2' | 'longxing_v2' | 'longhua_v2' | 'longwan_v2' | 'longcheng_v2' | 'longfeifei_v2' | 'longxiaocheng_v2' | 'longzhe_v2' | 'longyan_v2' | 'longtian_v2' | 'longze_v2' | 'longshao_v2' | 'longhao_v2' | 'kabuleshen_v2' | 'longhuhu' | 'longanpei' | 'longwangwang' | 'longpaopao' | 'longshanshan' | 'longniuniu' | 'longyingmu' | 'longyingxun' | 'longyingcui' | 'longyingda' | 'longyingjing' | 'longyingyan' | 'longyingtian' | 'longyingbing' | 'longyingtao' | 'longyingling' | 'longanran' | 'longanxuan' | 'longanchong' | 'longanping' | 'longjielidou_v2' | 'longling_v2' | 'longke_v2' | 'longxian_v2' | 'longlaotie_v2' | 'longjiayi_v2' | 'longtao_v2' | 'longfei_v2' | 'libai_v2' | 'longjin_v2' | 'longshu_v2' | 'loongbella_v2' | 'longshuo_v2' | 'longxiaobai_v2' | 'longjing_v2' | 'loongstella_v2' | 'loongyuuna_v2' | 'loongyuuma_v2' | 'loongjihun_v2' | 'loongeva_v2' | 'loongbrian_v2' | 'loongluna_v2' | 'loongluca_v2' | 'loongemily_v2' | 'loongeric_v2' | 'loongabby_v2' | 'loongannie_v2' | 'loongandy_v2' | 'loongava_v2' | 'loongbeth_v2' | 'loongbetty_v2' | 'loongcindy_v2' | 'loongcally_v2' | 'loongdavid_v2' | 'loongdonna_v2' | 'loongkyong_v2' | 'loongtomoka_v2' | 'loongtomoya_v2';
|
|
47
|
+
type CosyVoiceV3FlashVoice = 'longanyang' | 'longanhuan' | 'longhuhu_v3' | 'longpaopao_v3' | 'longjielidou_v3' | 'longxian_v3' | 'longling_v3' | 'longshanshan_v3' | 'longniuniu_v3' | 'longjiaxin_v3' | 'longjiayi_v3' | 'longanyue_v3' | 'longlaotie_v3' | 'longshange_v3' | 'longanmin_v3' | 'loongkyong_v3' | 'loongriko_v3' | 'loongtomoka_v3' | 'longfei_v3' | 'longyingxiao_v3' | 'longyingxun_v3' | 'longyingjing_v3' | 'longyingling_v3' | 'longyingtao_v3' | 'longxiaochun_v3' | 'longxiaoxia_v3' | 'longyumi_v3' | 'longanyun_v3' | 'longanwen_v3' | 'longanli_v3' | 'longanlang_v3' | 'longyingmu_v3' | 'longantai_v3' | 'longhua_v3' | 'longcheng_v3' | 'longze_v3' | 'longzhe_v3' | 'longyan_v3' | 'longxing_v3' | 'longtian_v3' | 'longwan_v3' | 'longqiang_v3' | 'longfeifei_v3' | 'longhao_v3' | 'longanrou_v3' | 'longhan_v3' | 'longanzhi_v3' | 'longanling_v3' | 'longanya_v3' | 'longanqin_v3' | 'longmiao_v3' | 'longsanshu_v3' | 'longyuan_v3' | 'longyue_v3' | 'longxiu_v3' | 'longnan_v3' | 'longwanjun_v3' | 'longyichen_v3' | 'longlaobo_v3' | 'longlaoyi_v3' | 'longjiqi_v3' | 'longhouge_v3' | 'longdaiyu_v3' | 'longanran_v3' | 'longanxuan_v3' | 'longshuo_v3' | 'longshu_v3' | 'loongbella_v3';
|
|
48
|
+
type CosyVoiceV3PlusVoice = 'longanyang' | 'longanhuan';
|
|
49
|
+
type CosyVoiceVoice = CosyVoiceV1Voice | CosyVoiceV2Voice | CosyVoiceV3FlashVoice | CosyVoiceV3PlusVoice;
|
|
50
|
+
type QwenRealtimeVoice = 'Cherry' | 'Serena' | 'Ethan' | 'Chelsie' | 'Momo' | 'Vivian' | 'Moon' | 'Maia' | 'Kai' | 'Nofish' | 'Bella' | 'Jennifer' | 'Ryan' | 'Katerina' | 'Aiden' | 'Eldric Sage' | 'Mia' | 'Mochi' | 'Bellona' | 'Vincent' | 'Bunny' | 'Neil' | 'Elias' | 'Arthur' | 'Nini' | 'Seren' | 'Pip' | 'Stella' | 'Bodega' | 'Sonrisa' | 'Alek' | 'Dolce' | 'Sohee' | 'Ono Anna' | 'Lenn' | 'Emilien' | 'Andre' | 'Radio Gol' | 'Jada' | 'Dylan' | 'Li' | 'Marcus' | 'Roy' | 'Peter' | 'Sunny' | 'Eric' | 'Rocky' | 'Kiki';
|
|
51
|
+
|
|
52
|
+
type AcceptAnyString<T extends string> = T | (string & {});
|
|
53
|
+
interface QwenRealtimeOptions {
|
|
54
|
+
mode?: 'server_commit' | 'commit';
|
|
55
|
+
languageType?: 'Auto' | 'Chinese' | 'English' | 'Japanese' | 'Korean';
|
|
56
|
+
instructions?: string;
|
|
57
|
+
optimizeInstructions?: boolean;
|
|
58
|
+
speechRate?: number;
|
|
59
|
+
pitchRate?: number;
|
|
60
|
+
bitrate?: number;
|
|
61
|
+
}
|
|
62
|
+
interface BaseTTSOptions {
|
|
63
|
+
apiKey?: string;
|
|
64
|
+
baseUrl?: string;
|
|
65
|
+
model?: string;
|
|
66
|
+
voice?: string;
|
|
67
|
+
speed?: number;
|
|
68
|
+
volume?: number;
|
|
69
|
+
pitch?: number;
|
|
70
|
+
format?: 'mp3' | 'wav' | 'ogg' | 'flac' | 'pcm' | 'opus' | 'ogg_opus';
|
|
71
|
+
language?: string;
|
|
72
|
+
}
|
|
73
|
+
interface DoubaoTTSOptions extends BaseTTSOptions {
|
|
74
|
+
voice?: AcceptAnyString<DoubaoVoice>;
|
|
75
|
+
appId?: string;
|
|
76
|
+
accessToken?: string;
|
|
77
|
+
resourceId?: string;
|
|
78
|
+
sampleRate?: number;
|
|
79
|
+
enableTimestamp?: boolean;
|
|
80
|
+
}
|
|
81
|
+
interface MinimaxTTSOptions extends BaseTTSOptions {
|
|
82
|
+
voice?: AcceptAnyString<MinimaxVoice>;
|
|
83
|
+
sampleRate?: number;
|
|
84
|
+
bitrate?: number;
|
|
85
|
+
}
|
|
86
|
+
interface QwenTTSOptions extends BaseTTSOptions {
|
|
87
|
+
voice?: AcceptAnyString<CosyVoiceVoice>;
|
|
88
|
+
sampleRate?: number;
|
|
89
|
+
instruction?: string;
|
|
90
|
+
}
|
|
91
|
+
interface QwenRealtimeTTSOptions extends BaseTTSOptions {
|
|
92
|
+
voice?: AcceptAnyString<QwenRealtimeVoice>;
|
|
93
|
+
sampleRate?: number;
|
|
94
|
+
realtime?: QwenRealtimeOptions;
|
|
95
|
+
}
|
|
96
|
+
interface GlmTTSOptions extends BaseTTSOptions {
|
|
97
|
+
voice?: AcceptAnyString<GlmVoice>;
|
|
98
|
+
}
|
|
99
|
+
type TTSOptions = ({
|
|
100
|
+
provider: 'doubao';
|
|
101
|
+
} & DoubaoTTSOptions) | ({
|
|
102
|
+
provider: 'minimax';
|
|
103
|
+
} & MinimaxTTSOptions) | ({
|
|
104
|
+
provider: 'qwen';
|
|
105
|
+
} & QwenTTSOptions) | ({
|
|
106
|
+
provider: 'qwen-realtime';
|
|
107
|
+
} & QwenRealtimeTTSOptions) | ({
|
|
108
|
+
provider: 'openai';
|
|
109
|
+
} & BaseTTSOptions) | ({
|
|
110
|
+
provider: 'gemini';
|
|
111
|
+
} & BaseTTSOptions) | ({
|
|
112
|
+
provider: 'glm';
|
|
113
|
+
} & GlmTTSOptions) | ({
|
|
114
|
+
provider: string;
|
|
115
|
+
} & BaseTTSOptions);
|
|
116
|
+
interface TTSRequest {
|
|
117
|
+
text: string;
|
|
118
|
+
options?: Partial<BaseTTSOptions>;
|
|
119
|
+
}
|
|
120
|
+
interface TTSResponse {
|
|
121
|
+
audio: Buffer | Uint8Array;
|
|
122
|
+
format: string;
|
|
123
|
+
duration?: number;
|
|
124
|
+
}
|
|
125
|
+
interface SpeakInstanceOptions {
|
|
126
|
+
stream?: boolean;
|
|
127
|
+
}
|
|
128
|
+
interface TTSProvider {
|
|
129
|
+
name: string;
|
|
130
|
+
synthesize(request: TTSRequest): Promise<TTSResponse>;
|
|
131
|
+
speak?(input: string | TextStream, options?: SpeakInstanceOptions): AsyncIterable<TTSStreamChunk> | Promise<TTSResponse>;
|
|
132
|
+
listVoices?(): Promise<TTSVoice[]>;
|
|
133
|
+
}
|
|
134
|
+
interface TTSStreamChunk {
|
|
135
|
+
audioChunk: Uint8Array;
|
|
136
|
+
}
|
|
137
|
+
type TextStream = AsyncIterable<string> | AsyncGenerator<string> | OpenAIStream;
|
|
138
|
+
interface TTSVoice {
|
|
139
|
+
id: string;
|
|
140
|
+
name: string;
|
|
141
|
+
language: string;
|
|
142
|
+
gender?: 'male' | 'female' | 'neutral';
|
|
143
|
+
}
|
|
144
|
+
type TTSProviderType = 'doubao' | 'minimax' | 'qwen' | 'openai' | 'gemini' | string;
|
|
145
|
+
type TTSConnectionState = 'connected' | 'closed' | 'error';
|
|
146
|
+
interface TTSConnectOptions {
|
|
147
|
+
timeout?: number;
|
|
148
|
+
}
|
|
149
|
+
interface TTSConnection {
|
|
150
|
+
readonly state: TTSConnectionState;
|
|
151
|
+
speak(input: string | TextStream, options: SpeakInstanceOptions & {
|
|
152
|
+
stream: true;
|
|
153
|
+
}): AsyncIterable<TTSStreamChunk>;
|
|
154
|
+
speak(input: string | TextStream, options?: SpeakInstanceOptions & {
|
|
155
|
+
stream?: false;
|
|
156
|
+
}): Promise<TTSResponse>;
|
|
157
|
+
speak(input: string | TextStream, options?: SpeakInstanceOptions): Promise<TTSResponse> | AsyncIterable<TTSStreamChunk>;
|
|
158
|
+
close(): void;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
declare abstract class BaseTTS implements TTSProvider {
|
|
162
|
+
abstract name: string;
|
|
163
|
+
apiKey: string;
|
|
164
|
+
baseUrl: string;
|
|
165
|
+
model: string;
|
|
166
|
+
voice: string;
|
|
167
|
+
speed: number;
|
|
168
|
+
volume: number;
|
|
169
|
+
pitch: number;
|
|
170
|
+
format: 'mp3' | 'wav' | 'ogg' | 'flac' | 'pcm' | 'opus' | 'ogg_opus';
|
|
171
|
+
language: string;
|
|
172
|
+
constructor(options: BaseTTSOptions);
|
|
173
|
+
abstract synthesize(request: TTSRequest): Promise<TTSResponse>;
|
|
174
|
+
speak(input: string | TextStream): Promise<TTSResponse>;
|
|
175
|
+
speak(input: string | TextStream, options: SpeakInstanceOptions & {
|
|
176
|
+
stream: true;
|
|
177
|
+
}): AsyncIterable<TTSStreamChunk>;
|
|
178
|
+
speak(input: string | TextStream, options: SpeakInstanceOptions & {
|
|
179
|
+
stream: false;
|
|
180
|
+
}): Promise<TTSResponse>;
|
|
181
|
+
private createSpeakStreamIterable;
|
|
182
|
+
private synthesizeFromInput;
|
|
183
|
+
protected speakStream(_input: string | TextStream): AsyncIterable<TTSStreamChunk>;
|
|
184
|
+
listVoices(): Promise<TTSVoice[]>;
|
|
185
|
+
connect(_options?: TTSConnectOptions): Promise<TTSConnection>;
|
|
186
|
+
buildRequestOptions(request: TTSRequest): BaseTTSOptions & {
|
|
187
|
+
provider: string;
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { BaseTTS as B, type CosyVoiceV1Voice as C, type DoubaoTTSOptions as D, type GlmTTSOptions as G, type MinimaxTTSOptions as M, type OpenAIChatCompletionChunk as O, type QwenRealtimeOptions as Q, type SpeakInstanceOptions as S, type TTSConnectOptions as T, type BaseTTSOptions as a, type QwenRealtimeTTSOptions as b, type QwenTTSOptions as c, type TTSConnection as d, type TTSConnectionState as e, type TTSOptions as f, type TTSProvider as g, type TTSProviderType as h, type TTSRequest as i, type TTSResponse as j, type TTSStreamChunk as k, type TTSVoice as l, type TextStream as m, type CosyVoiceV2Voice as n, type CosyVoiceV3FlashVoice as o, type CosyVoiceV3PlusVoice as p, type CosyVoiceVoice as q, type DoubaoJupiterVoice as r, type DoubaoV1Voice as s, type DoubaoV2Voice as t, type DoubaoVoice as u, type MinimaxVoice as v, type OpenAIStream as w, type QwenRealtimeVoice as x, type QwenTTSModel as y };
|