diff --git a/app/tts/page.tsx b/app/tts/page.tsx index fa76f79..b3196e4 100644 --- a/app/tts/page.tsx +++ b/app/tts/page.tsx @@ -11,6 +11,10 @@ type Voice = { id: string; provider_voice_id: string; name: string; language?: s type Usage = { available: number; used: number; reserved: number; plan: string }; type Task = { id: string; status: string; text_length: number; voice_id: string; parameters: { format?: string; speed?: number }; error_code?: string | null; audio_available: boolean; created_at: string; finished_at?: string | null }; +function normalizeText(value: string) { + return value.normalize("NFC").replace(/\r\n?/g, "\n"); +} + export default function TtsPage() { const [csrf, setCsrf] = useState(""); const [loggedIn, setLoggedIn] = useState(false); @@ -72,7 +76,7 @@ export default function TtsPage() { method: "POST", credentials: "include", headers: { "Content-Type": "application/json", "X-CSRF-Token": csrf, "Idempotency-Key": crypto.randomUUID() }, - body: JSON.stringify({ text, voice_id: voice, parameters: { format, speed: Number(speed) } }), + body: JSON.stringify({ text: normalizeText(text), voice_id: voice, parameters: { format, speed: Number(speed) } }), }); const body = await response.json().catch(() => ({})); if (!response.ok) throw new Error(body.error?.message ?? "任务创建失败"); @@ -91,7 +95,7 @@ export default function TtsPage() {
{loggedIn ? "当前使用测试数据库和真实任务 Worker。上游未配置时任务会明确失败并释放额度。" : "生成、历史、回放和下载需要登录。"}
{!loggedIn ?
前往登录
: <>
-

01 / Input

输入文本

{text.length} / 当前计划限制