翼度科技»论坛 编程开发 python 查看内容

口播神器,基于Edge,微软TTS(text-to-speech)文字转语音免费开源库edge-tts

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
不能否认,微软Azure在TTS(text-to-speech文字转语音)这个人工智能细分领域的影响力是统治级的,一如ChatGPT在NLP领域的随心所欲,予取予求。君不见几乎所有的抖音营销号口播均采用微软的语音合成技术,其影响力由此可见一斑,仅有的白璧微瑕之处就是价格略高,虽然国内也可以使用科大讯飞语音合成进行平替,但我们只想要最好的那一个,本次我们使用免费的开源库edge-tts来实现文本转语音操作,薅微软edge的羊毛。
TTS文本转语音基础使用方式

首先安装edge-tts库:
  1. pip3 install edge-tts
复制代码
安装成功后,直接在终端运行edge-tts命令:
  1. edge-tts
复制代码
显示帮助菜单即代表安装成功:
  1. ➜  Downloads edge-tts  
  2. usage: edge-tts [-h] [-t TEXT] [-f FILE] [-v VOICE] [-l] [--rate RATE] [--volume VOLUME] [-O OVERLAPPING]  
  3.                 [--write-media WRITE_MEDIA] [--write-subtitles WRITE_SUBTITLES] [--proxy PROXY]
复制代码
随后输入命令:
  1. edge-tts --list-voices
复制代码
该命令可以将Edge浏览器中,内置的语言角色列表列出来:
  1. Name: af-ZA-AdriNeural  
  2. Gender: Female  
  3.   
  4. Name: af-ZA-WillemNeural  
  5. Gender: Male  
  6.   
  7. Name: am-ET-AmehaNeural  
  8. Gender: Male  
  9.   
  10. Name: am-ET-MekdesNeural  
  11. Gender: Female  
  12.   
  13. Name: ar-AE-FatimaNeural  
  14. Gender: Female  
  15.   
  16. Name: ar-AE-HamdanNeural  
  17. Gender: Male  
  18.   
  19. Name: ar-BH-AliNeural  
  20. Gender: Male  
  21.   
  22. Name: ar-BH-LailaNeural  
  23. Gender: Female  
  24.   
  25. Name: ar-DZ-AminaNeural  
  26. Gender: Female  
  27.   
  28. Name: ar-DZ-IsmaelNeural  
  29. Gender: Male  
  30.   
  31. Name: ar-EG-SalmaNeural  
  32. Gender: Female  
  33.   
  34. Name: ar-EG-ShakirNeural  
  35. Gender: Male  
  36.   
  37. Name: ar-IQ-BasselNeural  
  38. Gender: Male  
  39.   
  40. Name: ar-IQ-RanaNeural  
  41. Gender: Female  
  42.   
  43. Name: ar-JO-SanaNeural  
  44. Gender: Female  
  45.   
  46. Name: ar-JO-TaimNeural  
  47. Gender: Male  
  48.   
  49. Name: ar-KW-FahedNeural  
  50. Gender: Male  
  51.   
  52. Name: ar-KW-NouraNeural  
  53. Gender: Female  
  54.   
  55. Name: ar-LB-LaylaNeural  
  56. Gender: Female  
  57.   
  58. Name: ar-LB-RamiNeural  
  59. Gender: Male  
  60.   
  61. Name: ar-LY-ImanNeural  
  62. Gender: Female  
  63.   
  64. Name: ar-LY-OmarNeural  
  65. Gender: Male  
  66.   
  67. Name: ar-MA-JamalNeural  
  68. Gender: Male  
  69.   
  70. Name: ar-MA-MounaNeural  
  71. Gender: Female  
  72.   
  73. Name: ar-OM-AbdullahNeural  
  74. Gender: Male  
  75.   
  76. Name: ar-OM-AyshaNeural  
  77. Gender: Female  
  78.   
  79. Name: ar-QA-AmalNeural  
  80. Gender: Female  
  81.   
  82. Name: ar-QA-MoazNeural  
  83. Gender: Male  
  84.   
  85. Name: ar-SA-HamedNeural  
  86. Gender: Male  
  87.   
  88. Name: ar-SA-ZariyahNeural  
  89. Gender: Female  
  90.   
  91. Name: ar-SY-AmanyNeural  
  92. Gender: Female  
  93.   
  94. Name: ar-SY-LaithNeural  
  95. Gender: Male  
  96.   
  97. Name: ar-TN-HediNeural  
  98. Gender: Male  
  99.   
  100. Name: ar-TN-ReemNeural  
  101. Gender: Female  
  102.   
  103. Name: ar-YE-MaryamNeural  
  104. Gender: Female  
  105.   
  106. Name: ar-YE-SalehNeural  
  107. Gender: Male  
  108.   
  109. Name: az-AZ-BabekNeural  
  110. Gender: Male  
  111.   
  112. Name: az-AZ-BanuNeural  
  113. Gender: Female  
  114.   
  115. Name: bg-BG-BorislavNeural  
  116. Gender: Male  
  117.   
  118. Name: bg-BG-KalinaNeural  
  119. Gender: Female  
  120.   
  121. Name: bn-BD-NabanitaNeural  
  122. Gender: Female  
  123.   
  124. Name: bn-BD-PradeepNeural  
  125. Gender: Male  
  126.   
  127. Name: bn-IN-BashkarNeural  
  128. Gender: Male  
  129.   
  130. Name: bn-IN-TanishaaNeural  
  131. Gender: Female  
  132.   
  133. Name: bs-BA-GoranNeural  
  134. Gender: Male  
  135.   
  136. Name: bs-BA-VesnaNeural  
  137. Gender: Female  
  138.   
  139. Name: ca-ES-EnricNeural  
  140. Gender: Male  
  141.   
  142. Name: ca-ES-JoanaNeural  
  143. Gender: Female  
  144.   
  145. Name: cs-CZ-AntoninNeural  
  146. Gender: Male  
  147.   
  148. Name: cs-CZ-VlastaNeural  
  149. Gender: Female  
  150.   
  151. Name: cy-GB-AledNeural  
  152. Gender: Male  
  153.   
  154. Name: cy-GB-NiaNeural  
  155. Gender: Female  
  156.   
  157. Name: da-DK-ChristelNeural  
  158. Gender: Female  
  159.   
  160. Name: da-DK-JeppeNeural  
  161. Gender: Male  
  162.   
  163. Name: de-AT-IngridNeural  
  164. Gender: Female  
  165.   
  166. Name: de-AT-JonasNeural  
  167. Gender: Male  
  168.   
  169. Name: de-CH-JanNeural  
  170. Gender: Male  
  171.   
  172. Name: de-CH-LeniNeural  
  173. Gender: Female  
  174.   
  175. Name: de-DE-AmalaNeural  
  176. Gender: Female  
  177.   
  178. Name: de-DE-ConradNeural  
  179. Gender: Male  
  180.   
  181. Name: de-DE-KatjaNeural  
  182. Gender: Female  
  183.   
  184. Name: de-DE-KillianNeural  
  185. Gender: Male  
  186.   
  187. Name: el-GR-AthinaNeural  
  188. Gender: Female  
  189.   
  190. Name: el-GR-NestorasNeural  
  191. Gender: Male  
  192.   
  193. Name: en-AU-NatashaNeural  
  194. Gender: Female  
  195.   
  196. Name: en-AU-WilliamNeural  
  197. Gender: Male  
  198.   
  199. Name: en-CA-ClaraNeural  
  200. Gender: Female  
  201.   
  202. Name: en-CA-LiamNeural  
  203. Gender: Male  
  204.   
  205. Name: en-GB-LibbyNeural  
  206. Gender: Female  
  207.   
  208. Name: en-GB-MaisieNeural  
  209. Gender: Female  
  210.   
  211. Name: en-GB-RyanNeural  
  212. Gender: Male  
  213.   
  214. Name: en-GB-SoniaNeural  
  215. Gender: Female  
  216.   
  217. Name: en-GB-ThomasNeural  
  218. Gender: Male  
  219.   
  220. Name: en-HK-SamNeural  
  221. Gender: Male  
  222.   
  223. Name: en-HK-YanNeural  
  224. Gender: Female  
  225.   
  226. Name: en-IE-ConnorNeural  
  227. Gender: Male  
  228.   
  229. Name: en-IE-EmilyNeural  
  230. Gender: Female  
  231.   
  232. Name: en-IN-NeerjaExpressiveNeural  
  233. Gender: Female  
  234.   
  235. Name: en-IN-NeerjaNeural  
  236. Gender: Female  
  237.   
  238. Name: en-IN-PrabhatNeural  
  239. Gender: Male  
  240.   
  241. Name: en-KE-AsiliaNeural  
  242. Gender: Female  
  243.   
  244. Name: en-KE-ChilembaNeural  
  245. Gender: Male  
  246.   
  247. Name: en-NG-AbeoNeural  
  248. Gender: Male  
  249.   
  250. Name: en-NG-EzinneNeural  
  251. Gender: Female  
  252.   
  253. Name: en-NZ-MitchellNeural  
  254. Gender: Male  
  255.   
  256. Name: en-NZ-MollyNeural  
  257. Gender: Female  
  258.   
  259. Name: en-PH-JamesNeural  
  260. Gender: Male  
  261.   
  262. Name: en-PH-RosaNeural  
  263. Gender: Female  
  264.   
  265. Name: en-SG-LunaNeural  
  266. Gender: Female  
  267.   
  268. Name: en-SG-WayneNeural  
  269. Gender: Male  
  270.   
  271. Name: en-TZ-ElimuNeural  
  272. Gender: Male  
  273.   
  274. Name: en-TZ-ImaniNeural  
  275. Gender: Female  
  276.   
  277. Name: en-US-AnaNeural  
  278. Gender: Female  
  279.   
  280. Name: en-US-AriaNeural  
  281. Gender: Female  
  282.   
  283. Name: en-US-ChristopherNeural  
  284. Gender: Male  
  285.   
  286. Name: en-US-EricNeural  
  287. Gender: Male  
  288.   
  289. Name: en-US-GuyNeural  
  290. Gender: Male  
  291.   
  292. Name: en-US-JennyNeural  
  293. Gender: Female  
  294.   
  295. Name: en-US-MichelleNeural  
  296. Gender: Female  
  297.   
  298. Name: en-US-RogerNeural  
  299. Gender: Male  
  300.   
  301. Name: en-US-SteffanNeural  
  302. Gender: Male  
  303.   
  304. Name: en-ZA-LeahNeural  
  305. Gender: Female  
  306.   
  307. Name: en-ZA-LukeNeural  
  308. Gender: Male  
  309.   
  310. Name: es-AR-ElenaNeural  
  311. Gender: Female  
  312.   
  313. Name: es-AR-TomasNeural  
  314. Gender: Male  
  315.   
  316. Name: es-BO-MarceloNeural  
  317. Gender: Male  
  318.   
  319. Name: es-BO-SofiaNeural  
  320. Gender: Female  
  321.   
  322. Name: es-CL-CatalinaNeural  
  323. Gender: Female  
  324.   
  325. Name: es-CL-LorenzoNeural  
  326. Gender: Male  
  327.   
  328. Name: es-CO-GonzaloNeural  
  329. Gender: Male  
  330.   
  331. Name: es-CO-SalomeNeural  
  332. Gender: Female  
  333.   
  334. Name: es-CR-JuanNeural  
  335. Gender: Male  
  336.   
  337. Name: es-CR-MariaNeural  
  338. Gender: Female  
  339.   
  340. Name: es-CU-BelkysNeural  
  341. Gender: Female  
  342.   
  343. Name: es-CU-ManuelNeural  
  344. Gender: Male  
  345.   
  346. Name: es-DO-EmilioNeural  
  347. Gender: Male  
  348.   
  349. Name: es-DO-RamonaNeural  
  350. Gender: Female  
  351.   
  352. Name: es-EC-AndreaNeural  
  353. Gender: Female  
  354.   
  355. Name: es-EC-LuisNeural  
  356. Gender: Male  
  357.   
  358. Name: es-ES-AlvaroNeural  
  359. Gender: Male  
  360.   
  361. Name: es-ES-ElviraNeural  
  362. Gender: Female  
  363.   
  364. Name: es-ES-ManuelEsCUNeural  
  365. Gender: Male  
  366.   
  367. Name: es-GQ-JavierNeural  
  368. Gender: Male  
  369.   
  370. Name: es-GQ-TeresaNeural  
  371. Gender: Female  
  372.   
  373. Name: es-GT-AndresNeural  
  374. Gender: Male  
  375.   
  376. Name: es-GT-MartaNeural  
  377. Gender: Female  
  378.   
  379. Name: es-HN-CarlosNeural  
  380. Gender: Male  
  381.   
  382. Name: es-HN-KarlaNeural  
  383. Gender: Female  
  384.   
  385. Name: es-MX-DaliaNeural  
  386. Gender: Female  
  387.   
  388. Name: es-MX-JorgeNeural  
  389. Gender: Male  
  390.   
  391. Name: es-MX-LorenzoEsCLNeural  
  392. Gender: Male  
  393.   
  394. Name: es-NI-FedericoNeural  
  395. Gender: Male  
  396.   
  397. Name: es-NI-YolandaNeural  
  398. Gender: Female  
  399.   
  400. Name: es-PA-MargaritaNeural  
  401. Gender: Female  
  402.   
  403. Name: es-PA-RobertoNeural  
  404. Gender: Male  
  405.   
  406. Name: es-PE-AlexNeural  
  407. Gender: Male  
  408.   
  409. Name: es-PE-CamilaNeural  
  410. Gender: Female  
  411.   
  412. Name: es-PR-KarinaNeural  
  413. Gender: Female  
  414.   
  415. Name: es-PR-VictorNeural  
  416. Gender: Male  
  417.   
  418. Name: es-PY-MarioNeural  
  419. Gender: Male  
  420.   
  421. Name: es-PY-TaniaNeural  
  422. Gender: Female  
  423.   
  424. Name: es-SV-LorenaNeural  
  425. Gender: Female  
  426.   
  427. Name: es-SV-RodrigoNeural  
  428. Gender: Male  
  429.   
  430. Name: es-US-AlonsoNeural  
  431. Gender: Male  
  432.   
  433. Name: es-US-PalomaNeural  
  434. Gender: Female  
  435.   
  436. Name: es-UY-MateoNeural  
  437. Gender: Male  
  438.   
  439. Name: es-UY-ValentinaNeural  
  440. Gender: Female  
  441.   
  442. Name: es-VE-PaolaNeural  
  443. Gender: Female  
  444.   
  445. Name: es-VE-SebastianNeural  
  446. Gender: Male  
  447.   
  448. Name: et-EE-AnuNeural  
  449. Gender: Female  
  450.   
  451. Name: et-EE-KertNeural  
  452. Gender: Male  
  453.   
  454. Name: fa-IR-DilaraNeural  
  455. Gender: Female  
  456.   
  457. Name: fa-IR-FaridNeural  
  458. Gender: Male  
  459.   
  460. Name: fi-FI-HarriNeural  
  461. Gender: Male  
  462.   
  463. Name: fi-FI-NooraNeural  
  464. Gender: Female  
  465.   
  466. Name: fil-PH-AngeloNeural  
  467. Gender: Male  
  468.   
  469. Name: fil-PH-BlessicaNeural  
  470. Gender: Female  
  471.   
  472. Name: fr-BE-CharlineNeural  
  473. Gender: Female  
  474.   
  475. Name: fr-BE-GerardNeural  
  476. Gender: Male  
  477.   
  478. Name: fr-CA-AntoineNeural  
  479. Gender: Male  
  480.   
  481. Name: fr-CA-JeanNeural  
  482. Gender: Male  
  483.   
  484. Name: fr-CA-SylvieNeural  
  485. Gender: Female  
  486.   
  487. Name: fr-CH-ArianeNeural  
  488. Gender: Female  
  489.   
  490. Name: fr-CH-FabriceNeural  
  491. Gender: Male  
  492.   
  493. Name: fr-FR-DeniseNeural  
  494. Gender: Female  
  495.   
  496. Name: fr-FR-EloiseNeural  
  497. Gender: Female  
  498.   
  499. Name: fr-FR-HenriNeural  
  500. Gender: Male  
  501.   
  502. Name: ga-IE-ColmNeural  
  503. Gender: Male  
  504.   
  505. Name: ga-IE-OrlaNeural  
  506. Gender: Female  
  507.   
  508. Name: gl-ES-RoiNeural  
  509. Gender: Male  
  510.   
  511. Name: gl-ES-SabelaNeural  
  512. Gender: Female  
  513.   
  514. Name: gu-IN-DhwaniNeural  
  515. Gender: Female  
  516.   
  517. Name: gu-IN-NiranjanNeural  
  518. Gender: Male  
  519.   
  520. Name: he-IL-AvriNeural  
  521. Gender: Male  
  522.   
  523. Name: he-IL-HilaNeural  
  524. Gender: Female  
  525.   
  526. Name: hi-IN-MadhurNeural  
  527. Gender: Male  
  528.   
  529. Name: hi-IN-SwaraNeural  
  530. Gender: Female  
  531.   
  532. Name: hr-HR-GabrijelaNeural  
  533. Gender: Female  
  534.   
  535. Name: hr-HR-SreckoNeural  
  536. Gender: Male  
  537.   
  538. Name: hu-HU-NoemiNeural  
  539. Gender: Female  
  540.   
  541. Name: hu-HU-TamasNeural  
  542. Gender: Male  
  543.   
  544. Name: id-ID-ArdiNeural  
  545. Gender: Male  
  546.   
  547. Name: id-ID-GadisNeural  
  548. Gender: Female  
  549.   
  550. Name: is-IS-GudrunNeural  
  551. Gender: Female  
  552.   
  553. Name: is-IS-GunnarNeural  
  554. Gender: Male  
  555.   
  556. Name: it-IT-DiegoNeural  
  557. Gender: Male  
  558.   
  559. Name: it-IT-ElsaNeural  
  560. Gender: Female  
  561.   
  562. Name: it-IT-IsabellaNeural  
  563. Gender: Female  
  564.   
  565. Name: ja-JP-KeitaNeural  
  566. Gender: Male  
  567.   
  568. Name: ja-JP-NanamiNeural  
  569. Gender: Female  
  570.   
  571. Name: jv-ID-DimasNeural  
  572. Gender: Male  
  573.   
  574. Name: jv-ID-SitiNeural  
  575. Gender: Female  
  576.   
  577. Name: ka-GE-EkaNeural  
  578. Gender: Female  
  579.   
  580. Name: ka-GE-GiorgiNeural  
  581. Gender: Male  
  582.   
  583. Name: kk-KZ-AigulNeural  
  584. Gender: Female  
  585.   
  586. Name: kk-KZ-DauletNeural  
  587. Gender: Male  
  588.   
  589. Name: km-KH-PisethNeural  
  590. Gender: Male  
  591.   
  592. Name: km-KH-SreymomNeural  
  593. Gender: Female  
  594.   
  595. Name: kn-IN-GaganNeural  
  596. Gender: Male  
  597.   
  598. Name: kn-IN-SapnaNeural  
  599. Gender: Female  
  600.   
  601. Name: ko-KR-InJoonNeural  
  602. Gender: Male  
  603.   
  604. Name: ko-KR-SunHiNeural  
  605. Gender: Female  
  606.   
  607. Name: lo-LA-ChanthavongNeural  
  608. Gender: Male  
  609.   
  610. Name: lo-LA-KeomanyNeural  
  611. Gender: Female  
  612.   
  613. Name: lt-LT-LeonasNeural  
  614. Gender: Male  
  615.   
  616. Name: lt-LT-OnaNeural  
  617. Gender: Female  
  618.   
  619. Name: lv-LV-EveritaNeural  
  620. Gender: Female  
  621.   
  622. Name: lv-LV-NilsNeural  
  623. Gender: Male  
  624.   
  625. Name: mk-MK-AleksandarNeural  
  626. Gender: Male  
  627.   
  628. Name: mk-MK-MarijaNeural  
  629. Gender: Female  
  630.   
  631. Name: ml-IN-MidhunNeural  
  632. Gender: Male  
  633.   
  634. Name: ml-IN-SobhanaNeural  
  635. Gender: Female  
  636.   
  637. Name: mn-MN-BataaNeural  
  638. Gender: Male  
  639.   
  640. Name: mn-MN-YesuiNeural  
  641. Gender: Female  
  642.   
  643. Name: mr-IN-AarohiNeural  
  644. Gender: Female  
  645.   
  646. Name: mr-IN-ManoharNeural  
  647. Gender: Male  
  648.   
  649. Name: ms-MY-OsmanNeural  
  650. Gender: Male  
  651.   
  652. Name: ms-MY-YasminNeural  
  653. Gender: Female  
  654.   
  655. Name: mt-MT-GraceNeural  
  656. Gender: Female  
  657.   
  658. Name: mt-MT-JosephNeural  
  659. Gender: Male  
  660.   
  661. Name: my-MM-NilarNeural  
  662. Gender: Female  
  663.   
  664. Name: my-MM-ThihaNeural  
  665. Gender: Male  
  666.   
  667. Name: nb-NO-FinnNeural  
  668. Gender: Male  
  669.   
  670. Name: nb-NO-PernilleNeural  
  671. Gender: Female  
  672.   
  673. Name: ne-NP-HemkalaNeural  
  674. Gender: Female  
  675.   
  676. Name: ne-NP-SagarNeural  
  677. Gender: Male  
  678.   
  679. Name: nl-BE-ArnaudNeural  
  680. Gender: Male  
  681.   
  682. Name: nl-BE-DenaNeural  
  683. Gender: Female  
  684.   
  685. Name: nl-NL-ColetteNeural  
  686. Gender: Female  
  687.   
  688. Name: nl-NL-FennaNeural  
  689. Gender: Female  
  690.   
  691. Name: nl-NL-MaartenNeural  
  692. Gender: Male  
  693.   
  694. Name: pl-PL-MarekNeural  
  695. Gender: Male  
  696.   
  697. Name: pl-PL-ZofiaNeural  
  698. Gender: Female  
  699.   
  700. Name: ps-AF-GulNawazNeural  
  701. Gender: Male  
  702.   
  703. Name: ps-AF-LatifaNeural  
  704. Gender: Female  
  705.   
  706. Name: pt-BR-AntonioNeural  
  707. Gender: Male  
  708.   
  709. Name: pt-BR-FranciscaNeural  
  710. Gender: Female  
  711.   
  712. Name: pt-PT-DuarteNeural  
  713. Gender: Male  
  714.   
  715. Name: pt-PT-RaquelNeural  
  716. Gender: Female  
  717.   
  718. Name: ro-RO-AlinaNeural  
  719. Gender: Female  
  720.   
  721. Name: ro-RO-EmilNeural  
  722. Gender: Male  
  723.   
  724. Name: ru-RU-DmitryNeural  
  725. Gender: Male  
  726.   
  727. Name: ru-RU-SvetlanaNeural  
  728. Gender: Female  
  729.   
  730. Name: si-LK-SameeraNeural  
  731. Gender: Male  
  732.   
  733. Name: si-LK-ThiliniNeural  
  734. Gender: Female  
  735.   
  736. Name: sk-SK-LukasNeural  
  737. Gender: Male  
  738.   
  739. Name: sk-SK-ViktoriaNeural  
  740. Gender: Female  
  741.   
  742. Name: sl-SI-PetraNeural  
  743. Gender: Female  
  744.   
  745. Name: sl-SI-RokNeural  
  746. Gender: Male  
  747.   
  748. Name: so-SO-MuuseNeural  
  749. Gender: Male  
  750.   
  751. Name: so-SO-UbaxNeural  
  752. Gender: Female  
  753.   
  754. Name: sq-AL-AnilaNeural  
  755. Gender: Female  
  756.   
  757. Name: sq-AL-IlirNeural  
  758. Gender: Male  
  759.   
  760. Name: sr-RS-NicholasNeural  
  761. Gender: Male  
  762.   
  763. Name: sr-RS-SophieNeural  
  764. Gender: Female  
  765.   
  766. Name: su-ID-JajangNeural  
  767. Gender: Male  
  768.   
  769. Name: su-ID-TutiNeural  
  770. Gender: Female  
  771.   
  772. Name: sv-SE-MattiasNeural  
  773. Gender: Male  
  774.   
  775. Name: sv-SE-SofieNeural  
  776. Gender: Female  
  777.   
  778. Name: sw-KE-RafikiNeural  
  779. Gender: Male  
  780.   
  781. Name: sw-KE-ZuriNeural  
  782. Gender: Female  
  783.   
  784. Name: sw-TZ-DaudiNeural  
  785. Gender: Male  
  786.   
  787. Name: sw-TZ-RehemaNeural  
  788. Gender: Female  
  789.   
  790. Name: ta-IN-PallaviNeural  
  791. Gender: Female  
  792.   
  793. Name: ta-IN-ValluvarNeural  
  794. Gender: Male  
  795.   
  796. Name: ta-LK-KumarNeural  
  797. Gender: Male  
  798.   
  799. Name: ta-LK-SaranyaNeural  
  800. Gender: Female  
  801.   
  802. Name: ta-MY-KaniNeural  
  803. Gender: Female  
  804.   
  805. Name: ta-MY-SuryaNeural  
  806. Gender: Male  
  807.   
  808. Name: ta-SG-AnbuNeural  
  809. Gender: Male  
  810.   
  811. Name: ta-SG-VenbaNeural  
  812. Gender: Female  
  813.   
  814. Name: te-IN-MohanNeural  
  815. Gender: Male  
  816.   
  817. Name: te-IN-ShrutiNeural  
  818. Gender: Female  
  819.   
  820. Name: th-TH-NiwatNeural  
  821. Gender: Male  
  822.   
  823. Name: th-TH-PremwadeeNeural  
  824. Gender: Female  
  825.   
  826. Name: tr-TR-AhmetNeural  
  827. Gender: Male  
  828.   
  829. Name: tr-TR-EmelNeural  
  830. Gender: Female  
  831.   
  832. Name: uk-UA-OstapNeural  
  833. Gender: Male  
  834.   
  835. Name: uk-UA-PolinaNeural  
  836. Gender: Female  
  837.   
  838. Name: ur-IN-GulNeural  
  839. Gender: Female  
  840.   
  841. Name: ur-IN-SalmanNeural  
  842. Gender: Male  
  843.   
  844. Name: ur-PK-AsadNeural  
  845. Gender: Male  
  846.   
  847. Name: ur-PK-UzmaNeural  
  848. Gender: Female  
  849.   
  850. Name: uz-UZ-MadinaNeural  
  851. Gender: Female  
  852.   
  853. Name: uz-UZ-SardorNeural  
  854. Gender: Male  
  855.   
  856. Name: vi-VN-HoaiMyNeural  
  857. Gender: Female  
  858.   
  859. Name: vi-VN-NamMinhNeural  
  860. Gender: Male  
  861.   
  862. Name: zh-CN-XiaoxiaoNeural  
  863. Gender: Female  
  864.   
  865. Name: zh-CN-XiaoyiNeural  
  866. Gender: Female  
  867.   
  868. Name: zh-CN-YunjianNeural  
  869. Gender: Male  
  870.   
  871. Name: zh-CN-YunxiNeural  
  872. Gender: Male  
  873.   
  874. Name: zh-CN-YunxiaNeural  
  875. Gender: Male  
  876.   
  877. Name: zh-CN-YunyangNeural  
  878. Gender: Male  
  879.   
  880. Name: zh-CN-liaoning-XiaobeiNeural  
  881. Gender: Female  
  882.   
  883. Name: zh-CN-shaanxi-XiaoniNeural  
  884. Gender: Female  
  885.   
  886. Name: zh-HK-HiuGaaiNeural  
  887. Gender: Female  
  888.   
  889. Name: zh-HK-HiuMaanNeural  
  890. Gender: Female  
  891.   
  892. Name: zh-HK-WanLungNeural  
  893. Gender: Male  
  894.   
  895. Name: zh-TW-HsiaoChenNeural  
  896. Gender: Female  
  897.   
  898. Name: zh-TW-HsiaoYuNeural  
  899. Gender: Female  
  900.   
  901. Name: zh-TW-YunJheNeural  
  902. Gender: Male  
  903.   
  904. Name: zu-ZA-ThandoNeural  
  905. Gender: Female  
  906.   
  907. Name: zu-ZA-ThembaNeural  
  908. Gender: Male
复制代码
一望而知,几乎支持所有主流的通用语,Gender字段为合成语音的性别,Male代表男性,Female代表女性,zh开头的就是中文语音角色,这里以微软的小伊为例子:
  1. edge-tts --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手" --write-media hello_in_cn.mp3
复制代码
该命令含义是通过zh-CN-XiaoyiNeural角色合成语音:"你好啊,我是智能语音助手"的内容,随后将音频流写入hello_in_cn.mp3文件。
程序返回:
  1. Downloads edge-tts --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手" --write-media hello_in_cn.mp3  
  2. WEBVTT  
  3.   
  4. 00:00:00.100 --> 00:00:00.525  
  5. 你好  
  6.   
  7. 00:00:00.525 --> 00:00:00.912  
  8. 啊  
  9.   
  10. 00:00:01.050 --> 00:00:01.238  
  11. 我  
  12.   
  13. 00:00:01.238 --> 00:00:01.375  
  14. 是  
  15.   
  16. 00:00:01.387 --> 00:00:01.700  
  17. 智能  
  18.   
  19. 00:00:01.700 --> 00:00:02.050  
  20. 语音  
  21.   
  22. 00:00:02.062 --> 00:00:02.550  
  23. 助手
复制代码
程序会自动将时间轴和语音文本匹配输出,如此一来,连字幕文件也有了,可谓是一举两得,一箭双雕。
与此同时,我们也可以调整合成语音的语速:
  1. edge-tts --rate=-50% --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手" --write-media hello_in_cn.mp3
复制代码
--rate参数可以通过加号或者减号同步加快或者减慢合成语音的语速。
亦或者,调整合成语音的音量:
  1. edge-tts --volume=-50%  --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手" --write-media hello_in_cn.mp3
复制代码
--volume参数可以调整语音的音量。
遗憾的是,和微软Azure官方的语音合成库相比,开源的语音合成库并不支持基于标记语言 (SSML)的语音调优,比如语调、情绪的调整,但这毕竟是免费的,要求也不能太高了。
Python脚本语音合成

除了通过命令进行语音合成,edge-tts也支持在Python脚本,编辑test.py文件:
  1. import asyncio  
  2.   
  3. import edge_tts  
  4.   
  5. TEXT = "你好哟,我是智能语音助手,小伊"  
  6. VOICE = "zh-CN-XiaoyiNeural"  
  7. OUTPUT_FILE = "/Users/liuyue/Downloads/test.mp3"  
  8.   
  9.   
  10. async def _main() -> None:  
  11.     communicate = edge_tts.Communicate(TEXT, VOICE)  
  12.     await communicate.save(OUTPUT_FILE)  
  13.   
  14.   
  15. if __name__ == "__main__":  
  16.     asyncio.run(_main())
复制代码
这里我们直接通过异步模式调用communicate实例的save方法,就可以并发异步生成语音合成的音频文件,非常方便。
也可以通过语音管理库来自动寻找我们需要的语言:
  1. import asyncio  
  2. import random  
  3.   
  4. import edge_tts  
  5. from edge_tts import VoicesManager  
  6.   
  7. TEXT = "中文语音测试"  
  8. OUTPUT_FILE ="china.mp3"  
  9.   
  10.   
  11. async def _main() -> None:  
  12.     voices = await VoicesManager.create()  
  13.     voice = voices.find(Gender="Female", Language="zh")  
  14.   
  15.     communicate = edge_tts.Communicate(TEXT, random.choice(voice)["Name"])  
  16.     await communicate.save(OUTPUT_FILE)  
  17.   
  18.   
  19. if __name__ == "__main__":  
  20.     asyncio.run(_main())
复制代码
这里通过内置的VoicesManager库来随机挑选中文语音角色完成语音合成操作。
除此之外,也可以通过脚本将语音流和字母同步进行生成:
  1. import asyncio  
  2.   
  3. import edge_tts  
  4.   
  5. TEXT = "这里是语音流测试"  
  6. VOICE = "zh-CN-XiaoyiNeural"  
  7. OUTPUT_FILE = "test.mp3"  
  8. WEBVTT_FILE = "test.vtt"  
  9.   
  10.   
  11. async def _main() -> None:  
  12.     communicate = edge_tts.Communicate(TEXT, VOICE)  
  13.     submaker = edge_tts.SubMaker()  
  14.     with open(OUTPUT_FILE, "wb") as file:  
  15.         async for chunk in communicate.stream():  
  16.             if chunk["type"] == "audio":  
  17.                 file.write(chunk["data"])  
  18.             elif chunk["type"] == "WordBoundary":  
  19.                 submaker.create_sub((chunk["offset"], chunk["duration"]), chunk["text"])  
  20.   
  21.     with open(WEBVTT_FILE, "w", encoding="utf-8") as file:  
  22.         file.write(submaker.generate_subs())  
  23.   
  24.   
  25. if __name__ == "__main__":  
  26.     asyncio.run(_main())
复制代码
这里异步调用之后,音频会写入test.mp3,而字幕文件则会写入test.vtt。后续则可以通过ffmpeg将生成的字幕文件叠加到视频中即可,请参见:基于Python3(Autosub)以及Ffmpeg配合GoogleTranslation(谷歌翻译)为你的影片实现双语版字幕(逐字稿)
结语

开源语音合成edge-tts库可以提高语音合成效率,并且极大地降低了语音合成门槛,为自动化视频剪辑铺平了道路,未来结合基于Stable-Diffusion算法的AI绘图框架,人工智能AI一键式绘制、配音、上字幕的一条龙服务指日可待。

来源:https://www.cnblogs.com/v3ucn/p/17186731.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具