請參考下列部署方式。
請先Fork 一份代碼然後部署到自己的Vercel 中。參考演示視頻。
Railway 增加了每個月500小時的限制,而且不會自動停機,所以每個月會有一段時間無法是使用。有條件的還是使用docker部署吧。
需要安裝docker。
# 拉取镜像
docker pull wxxxcxx/ms-ra-forwarder:latest
# 运行
docker run --name ms-ra-forwarder -d -p 3000:3000 wxxxcxx/ms-ra-forwarder
# or
docker run --name ms-ra-forwarder -d -p 3000:3000 -e TOKEN:自定义TOKEN wxxxcxx/ms-ra-forwarder
# 浏览器访问 http://localhost:3000創建docker-compose.yml寫入以下內容並保存。
version : ' 3 '
services :
ms-ra-forwarder :
container_name : ms-ra-forwarder
image : wxxxcxx/ms-ra-forwarder:latest
restart : unless-stopped
ports :
- 3000:3000
environment :
# 不需要可以不用设置环境变量
- TOKEN=自定义TOKEN在docker-compose.yml目錄下執行docker compose up -d 。
手動運行需要事先安裝好git 和nodejs。
# 获取代码
git clone https://github.com/wxxxcxx/ms-ra-forwarder.git
cd ms-ra-forwarder
# 安装依赖
npm install
# 运行
npm run start請訪問你部署好的網站,在頁面中測試沒有問題後點擊“生成閱讀(legado)語音引擎鏈接”,然後在閱讀(legado)中導入。
接口地址為api/ra 。格式為:
POST /api/ra
FORMAT: audio-16khz-128kbitrate-mono-mp3
Content-Type: text/plain
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="zh-CN-XiaoxiaoNeural">
如果喜欢这个项目的话请点个 Star 吧。
</voice>
</speak>
請求的正文為ssml 格式,支持定制發音人和講話風格(目前僅Azure 版本支持定制講話風格),下面是相關的示例和文檔:
文本轉語音
通過語音合成標記語言(SSML) 改善合成
默認的音頻格式為webm ,如果需要獲取為其他格式的音頻請修改請求頭的FORMAT (可用的選項可以在ra/index.ts 中查看)。
如果需要防止他人濫用你的部署的服務,可以在應用的環境變量中添加TOKEN ,然後在請求頭中添加Authorization: Bearer <TOKEN>訪問。
微軟官方的Azure TTS 服務目前擁有一定的免費額度,如果免費額度對你來說夠用的話,請支持官方的服務。
如果只需要為固定的文本生成語音,可以使用有聲內容創作。它提供了更豐富的功能可以生成更自然的聲音。
本項目使用的是Edge 瀏覽器“大聲朗讀”和Azure TTS 演示頁面的接口,不保證後續可用性和穩定性。
本項目僅供學習和參考,請勿商用。
2023-04-19:Azure 下線了演示頁面的試用功能,導致Azure 版接口無法使用了,請各位遷移到Edge 瀏覽器的接口吧。
2022-11-18:添加詞典文件支持,詞典文件格式參考https://github.com/wxxxcxx/azure-tts-lexicon-cn/blob/main/lexicon.xml 。
2022-09-10:修改docker 倉庫地址,後面構建的docker 鏡像會遷移到wxxxcxx/ms-ra-forwarder(原倉庫舊版本鏡像依然有效)。
2022-09-01:Azure TTS API 好像又改了,舊版用戶可能會無法正常使用,請更新到最新版。
2022-07-17:添加Azure TTS API 支持(沒怎麼測試,不知道用起來穩不穩定)。因為調用Azure TTS API 需要獲取授權碼。其它方式只需要或取一次就可以使用一段時間,而Vercel 每次調用API 都需要重新獲取授權碼。容易超時不說,也加劇了微軟服務器的負擔,所以不是很推薦部署在Vercel 的用戶使用(雖然也不是不能用~但是萬一微軟被薅痛了,又改接口就不好了?)。
2022-07-02:Edge 版本的API 目前測試還支持的格式有webm-24khz-16bit-mono-opu 、 audio-24khz-48kbitrate-mono-mp3 、 audio-24khz-96kbitrate-mono-mp3 。另外今天下午開始,使用不在下拉列表中聲音會出現類似“Unsupported voice zh-CN-YunyeNeural.” 錯誤,後續可能也會被砍掉。且用且珍惜吧!
2022-07-01:部署在中國大陸以外服務器上的服務目前只能選擇所以使用Vercel 的用戶需要重新部署一下。webm-24khz-16bit-mono-opus格式的音頻了!
2022-06-16:Edge 瀏覽器提供的接口現在已經不能設置講話風格了,若發現不能正常使用,請參考#12 獲取更新。
感謝以下組織/個人對本項目的支持