分享个文字转语音的源码
2025/08/13 13:45:48
浠g爜鑷彇鍚
杩欑帺鎰忔尯濂界敤
https://github.com/wangwangit/tts
澹伴煶榄旀硶甯 - 璁╂枃瀛楀紑鍙h璇濈殑绁炲櫒涓€涓熀浜 Microsoft Edge TTS 鐨勫厤璐瑰湪绾胯闊冲悎鎴愭湇鍔★紝鏀寔 20+ 绉嶄腑鏂囧0闊筹紝涓€閿皢鏂囧瓧杞崲涓鸿嚜鐒舵祦鐣呯殑璇煶銆鉁 鐗规€
鐐瑰嚮鎸夐挳锛屼竴閿儴缃插埌 CloudFlare Workers,
馃幆 浣跨敤鏂规硶
缃戦〉鐣岄潰浣跨敤
// 鍩烘湰璋冪敤const response = await fetch('https://your-worker.workers.dev/v1/audio/speech', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ input: "浣犲ソ锛岃繖鏄竴涓祴璇", voice: "zh-CN-XiaoxiaoNeural", speed: 1.0, pitch: "0", style: "general" })});const audioBlob = await response.blob();
# cURL 璋冪敤curl -X POST "https://your-worker.workers.dev/v1/audio/speech" \ -H "Content-Type: application/json" \ -d '{ "input": "浣犲ソ锛岃繖鏄竴涓祴璇", "voice": "zh-CN-XiaoxiaoNeural", "speed": 1.0, "pitch": "0", "style": "general" }' \ --output speech.mp3
馃帹 鏀寔鐨勮闊
濂冲0
鍙傛暟绫诲瀷榛樿鍊艰鏄
inputstring-瑕佽浆鎹㈢殑鏂囨湰鍐呭锛堝繀濉級
voicestringzh-CN-XiaoxiaoNeural璇煶閫夋嫨
speednumber1.0璇€ (0.5-2.0)
pitchstring"0"闊宠皟 (-50 鍒 50)
stylestring"general"璇煶椋庢牸
volumestring"0"闊抽噺璋冭妭鏀寔鐨勮闊抽鏍
鏈湴寮€鍙
# 鍏嬮殕椤圭洰git clone <your-repo># 瀹夎 Wrangler CLInpm install -g wrangler# 鏈湴寮€鍙憌rangler dev
椤圭洰缁撴瀯
鈹溾攢鈹€ index.js # 涓昏浠g爜鏂囦欢鈹溾攢鈹€ README.md # 椤圭洰鏂囨。鈹斺攢鈹€ wrangler.toml # Cloudflare Workers 閰嶇疆
馃 璐$尞
娆㈣繋鎻愪氦 Issue 鍜 Pull Request锛馃搫 璁稿彲璇
MIT License馃檹 鑷磋阿
鍏虫敞鍏紬鍙枫€屼竴鍙細椋炵殑鏃烘椇銆嶈幏鍙栨洿澶 AI 宸ュ叿鍜屾妧鏈垎浜細
璁╂枃瀛楀紑鍙h璇濓紝璁╁垱鎰忔洿鏈夊0闊筹紒 馃幍
杩欑帺鎰忔尯濂界敤
https://github.com/wangwangit/tts
澹伴煶榄旀硶甯 - 璁╂枃瀛楀紑鍙h璇濈殑绁炲櫒涓€涓熀浜 Microsoft Edge TTS 鐨勫厤璐瑰湪绾胯闊冲悎鎴愭湇鍔★紝鏀寔 20+ 绉嶄腑鏂囧0闊筹紝涓€閿皢鏂囧瓧杞崲涓鸿嚜鐒舵祦鐣呯殑璇煶銆鉁 鐗规€
- 馃幍 20+ 绉嶄腑鏂囧0闊 - 鏀寔澶氱闊宠壊鍜岄鏍硷紝鍖呮嫭鐢峰0銆佸コ澹扮瓑鈿 绉掗€熺敓鎴 - 蹇€熺敓鎴愰珮璐ㄩ噺璇煶鏂囦欢馃啌 瀹屽叏鍏嶈垂 - 鏃犻渶娉ㄥ唽锛屾棤浣跨敤闄愬埗馃摫 鍝嶅簲寮忚璁 - 瀹岀編閫傞厤妗岄潰绔拰绉诲姩绔煄涳笍 涓板瘜鍙傛暟 - 鏀寔璇€熴€侀煶璋冦€佽闊抽鏍肩瓑澶氱璋冭妭馃摜 鏀寔涓嬭浇 - 鐢熸垚鐨勯煶棰戝彲鐩存帴涓嬭浇涓 MP3 鏍煎紡馃敆 API 鍏煎 - 鍏煎 OpenAI TTS API 鏍煎紡
鐐瑰嚮鎸夐挳锛屼竴閿儴缃插埌 CloudFlare Workers,
缃戦〉鐣岄潰浣跨敤
- 璁块棶閮ㄧ讲鍚庣殑 Worker 鍩熷悕鍦ㄦ枃鏈涓緭鍏ヨ杞崲鐨勬枃瀛楅€夋嫨鍠滄鐨勮闊炽€佽閫熴€侀煶璋冪瓑鍙傛暟鐐瑰嚮"寮€濮嬬敓鎴愯闊"鎸夐挳鎾斁鐢熸垚鐨勯煶棰戞垨涓嬭浇 MP3 鏂囦欢
// 鍩烘湰璋冪敤const response = await fetch('https://your-worker.workers.dev/v1/audio/speech', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ input: "浣犲ソ锛岃繖鏄竴涓祴璇", voice: "zh-CN-XiaoxiaoNeural", speed: 1.0, pitch: "0", style: "general" })});const audioBlob = await response.blob();
# cURL 璋冪敤curl -X POST "https://your-worker.workers.dev/v1/audio/speech" \ -H "Content-Type: application/json" \ -d '{ "input": "浣犲ソ锛岃繖鏄竴涓祴璇", "voice": "zh-CN-XiaoxiaoNeural", "speed": 1.0, "pitch": "0", "style": "general" }' \ --output speech.mp3
馃帹 鏀寔鐨勮闊
濂冲0
- zh-CN-XiaoxiaoNeural - 鏅撴檽 (娓╂煍)zh-CN-XiaoyiNeural - 鏅撲紛 (鐢滅編)zh-CN-XiaochenNeural - 鏅撹景 (鐭ユ€)zh-CN-XiaohanNeural - 鏅撴兜 (浼橀泤)zh-CN-XiaomengNeural - 鏅撴ⅵ (姊﹀够)zh-CN-XiaomoNeural - 鏅撳ⅷ (鏂囪壓)zh-CN-XiaoqiuNeural - 鏅撶 (鎴愮啛)zh-CN-XiaoruiNeural - 鏅撶澘 (鏅烘収)zh-CN-XiaoshuangNeural - 鏅撳弻 (娲绘臣)zh-CN-XiaoxuanNeural - 鏅撹惐 (娓呮柊)zh-CN-XiaoyanNeural - 鏅撻 (鏌旂編)zh-CN-XiaoyouNeural - 鏅撴偁 (鎮犳壃)zh-CN-XiaozhenNeural - 鏅撶攧 (绔簞)
- zh-CN-YunxiNeural - 浜戝笇 (娓呮湕)zh-CN-YunyangNeural - 浜戞壃 (闃冲厜)zh-CN-YunjianNeural - 浜戝仴 (绋抽噸)zh-CN-YunfengNeural - 浜戞灚 (纾佹€)zh-CN-YunhaoNeural - 浜戠殦 (璞繄)zh-CN-YunxiaNeural - 浜戝 (鐑儏)zh-CN-YunyeNeural - 浜戦噹 (閲庢€)zh-CN-YunzeNeural - 浜戞辰 (娣辨矇)
鍙傛暟绫诲瀷榛樿鍊艰鏄
inputstring-瑕佽浆鎹㈢殑鏂囨湰鍐呭锛堝繀濉級
voicestringzh-CN-XiaoxiaoNeural璇煶閫夋嫨
speednumber1.0璇€ (0.5-2.0)
pitchstring"0"闊宠皟 (-50 鍒 50)
stylestring"general"璇煶椋庢牸
volumestring"0"闊抽噺璋冭妭鏀寔鐨勮闊抽鏍
- general - 閫氱敤椋庢牸assistant - 鏅鸿兘鍔╂墜chat - 鑱婂ぉ瀵硅瘽customerservice - 瀹㈡湇涓撲笟newscast - 鏂伴椈鎾姤affectionate - 浜插垏娓╂殩calm - 骞抽潤鑸掔紦cheerful - 鎰夊揩娆箰gentle - 娓╁拰鏌旂編lyrical - 鎶掓儏璇楁剰serious - 涓ヨ們姝e紡
- 鍓嶇: 鐜颁唬鍖 HTML5 + CSS3 + JavaScript鍚庣: Cloudflare Workers璇煶寮曟搸: Microsoft Edge TTS璁捐绯荤粺: CSS 鍙橀噺 + 鍝嶅簲寮忓竷灞€API: RESTful API锛屽吋瀹 OpenAI TTS 鏍煎紡
- 鐜颁唬鍖 UI: 閲囩敤绠€娲佺殑鍗$墖寮忚璁鍝嶅簲寮忓竷灞€: 瀹岀編閫傞厤鍚勭璁惧灏哄鏃犳笎鍙樿璁: 浣跨敤绾壊璁捐锛屾洿鍔犱笓涓寰氦浜: 涓板瘜鐨勬偓鍋滄晥鏋滃拰鍔ㄧ敾鍙闂€: 鏀寔閿洏瀵艰埅鍜屽睆骞曢槄璇诲櫒
- 瑙︽懜鍙嬪ソ鐨勬寜閽昂瀵哥Щ鍔ㄧ涓撶敤甯冨眬閫傞厤鎵嬪娍鏀寔鎬ц兘浼樺寲
鏈湴寮€鍙
# 鍏嬮殕椤圭洰git clone <your-repo># 瀹夎 Wrangler CLInpm install -g wrangler# 鏈湴寮€鍙憌rangler dev
椤圭洰缁撴瀯
鈹溾攢鈹€ index.js # 涓昏浠g爜鏂囦欢鈹溾攢鈹€ README.md # 椤圭洰鏂囨。鈹斺攢鈹€ wrangler.toml # Cloudflare Workers 閰嶇疆
馃 璐$尞
娆㈣繋鎻愪氦 Issue 鍜 Pull Request锛馃搫 璁稿彲璇
MIT License馃檹 鑷磋阿
- Microsoft Edge TTS 鎻愪緵璇煶鍚堟垚鏈嶅姟Cloudflare Workers 鎻愪緵鏃犳湇鍔″櫒璁$畻骞冲彴鍙傝€冮」鐩: https://github.com/pyvideotrans/tts-pyvideotrans2
鍏虫敞鍏紬鍙枫€屼竴鍙細椋炵殑鏃烘椇銆嶈幏鍙栨洿澶 AI 宸ュ叿鍜屾妧鏈垎浜細
- 鏈€鏂 AI 宸ュ叿鎺ㄨ崘鍜屼娇鐢ㄦ暀绋嬪墠娌挎妧鏈В鏋愬拰瀹炴垬妗堜緥鐙璧勬簮鍜屽伐鍏锋簮鐮佸垎浜妧鏈棶棰樼瓟鐤戝拰浜ゆ祦绀剧兢
璁╂枃瀛楀紑鍙h璇濓紝璁╁垱鎰忔洿鏈夊0闊筹紒 馃幍