Edge TTS Node-Red 亂數語音+亂數訊息分享

TTS一開始使用的是google_say 受夠了google的單調語音
然後換成了azure_cognitive_speech但只有一年的免費
現在換成了完全免費的edge tts 雖然沒有azure的聲音多樣但勝在完全免費

先到HACS安裝


裝完後重開在到configuration.yaml添加

tts:
  - platform: edge_tts
    language: zh-CN # Default language or voice (Optional)

添加完後再重開一次讓設定生效

接下來就可以到Node-Red設定了
Function內容

var myMessage = [
  "亂數訊息1",
  "亂數訊息2",
  "亂數訊息3",
  "亂數訊息4",
  "亂數訊息5",
  "亂數訊息6",
  "亂數訊息7",
  "亂數訊息8"
];
var randomMessage = myMessage[Math.floor(Math.random() * myMessage.length)];

var myVoice = [
  "zh-TW-HsiaoChenNeural",
  "zh-CN-XiaoxiaoNeural",
];
var randomVoice = myVoice[Math.floor(Math.random() * myVoice.length)];

msg.payload_tts = {
  "message": randomMessage,
  "cache": true,
  "options": {
    "volume": "+100%",
    "voice": randomVoice,
    "pitch": "+0Hz",
    "rate": "+0%"
  }
};
return msg;

亂數訊息可以自己去做增減 注意 , 的位置最後一個不能有

語音的部分可以到下方連結查詢自己去增減
Edge 語音列表
至於說話的頻率速度就自己去調整 pitch 跟 rate了
基本只要function + callservice 連起來就能使用


前面記得加上觸發條件
播放時的call service設定

這是我自己個人的應用實例

設定喇叭音量

以上希望能幫到有需要的朋友

2個讚

感謝分享

當內容愈來越多時
可以考慮使用看看 “Link in” “Link out” “Link Call” nodes.
把可以共用的部分獨立出來
版面會更簡潔

你的畫面好乾淨,這個連過去的地方,後面是長怎麼樣呢?可以分享一下嗎