diff --git a/tts/tts-bot.ts b/tts/tts-bot.ts index 79ef979..6aec61d 100644 --- a/tts/tts-bot.ts +++ b/tts/tts-bot.ts @@ -1,19 +1,54 @@ import { Router } from 'itty-router' +/** +* demo +* https://home-tts.junv.workers.dev/tts?text=%E4%BD%A0%E7%9C%9F%E7%9A%84%E6%98%AF%E5%BE%88%E8%AE%A8%E5%8E%8C%E5%91%A2&haha=hahaJunv&voice=zh-CN-XiaoxiaoNeural&voiceStyle=angry +* +* to publish +* wrangler publish tts-bot.ts --compatibility-date 2024-04-05 +* +* +*/ + + const router = Router() const botToken = BOT_TOKEN; const chatId = CHAT_ID; const ttsKey = TTS_KEY const format = "audio-16khz-128kbitrate-mono-mp3"; // const defaultVoice = 'zh-CN-XiaoxiaoNeural'; //female -const defaultVoice = 'zh-CN-YunfengNeural' +const defaultVoice = 'zh-CN-XiaoxiaoNeural' // male // zh-CN-YunfengNeural +// zh-CN-YunyangNeural -async function sendToAzure(text: string, voice: string, format: string) { +// 'zh-CN-XiaoxiaoNeural'; //female + +const defaultVoiceStyle = "cheerful" + +// "assistant", +// "chat", +// "customerservice", +// "newscast", +// "affectionate", +// "angry", +// "calm", +// "cheerful", +// "disgruntled", +// "fearful", +// "gentle", +// "lyrical", +// "sad", +// "serious", +// "poetry-reading", +// "friendly", +// "chat-casual", +// "whisper", +// "sorry" +async function sendToAzure(text: string, voice: string, voiceStyle:string, format: string) { const endpoint = `https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1` - const body = `${text}` + const body = `${text}` const response = await fetch(`${endpoint}`, { method: 'POST', @@ -66,7 +101,7 @@ async function handleBotRequest(request) { var audioData; try { // Generate the audio file from the input text - audioData = await sendToAzure(text, defaultVoice, format); + audioData = await sendToAzure(text, defaultVoice, defaultVoiceStyle, format); } catch (err) { await new Response('Error: something went wrong', { status: 500 }); } @@ -89,6 +124,7 @@ async function handleRequest(request: Request): Promise { return new Response('Error: No valid params provided', { status: 400 }); } var voice = params.voice + var voiceStyle = params.voiceStyle const haha = params.haha const text = params.text @@ -98,8 +134,11 @@ async function handleRequest(request: Request): Promise { if (voice == null) { voice = defaultVoice } + if (voiceStyle == null) { + voiceStyle = defaultVoiceStyle + } - const audioData = await sendToAzure(text, voice, format) + const audioData = await sendToAzure(text, voice, voiceStyle, format) return new Response(audioData, { headers: {