import { useEffect, useState } from "react"; import { AutoModel, AutoProcessor } from "@huggingface/transformers"; export default function App() { const [model, setModel] = useState(null); const [processor, setProcessor] = useState(null); const [text, setText] = useState("Hello! This is a test of Chatterbox Turbo."); const [loading, setLoading] = useState(false); useEffect(() => { async function loadModel() { setLoading(true); const m = await AutoModel.from_pretrained( "spacekaren/chatterbox-turbo-webgpu", { device: "webgpu", dtype: "q4f16", } ); const p = await AutoProcessor.from_pretrained( "spacekaren/chatterbox-turbo-webgpu" ); setModel(m); setProcessor(p); setLoading(false); } loadModel(); }, []); async function generateSpeech() { if (!model || !processor) return; setLoading(true); const inputs = await processor(text); const audio = await model.generate(inputs); const blob = new Blob([audio], { type: "audio/wav" }); const url = URL.createObjectURL(blob); const audioEl = new Audio(url); audioEl.play(); setLoading(false); } return (

Chatterbox Turbo WebGPU TTS