Initial commit: add .gitignore and README
Some checks failed
Tests / test (3.10) (push) Has been cancelled
Tests / test (3.11) (push) Has been cancelled
Tests / test (3.12) (push) Has been cancelled
Tests / lint (push) Has been cancelled
Tests / docker (push) Has been cancelled

This commit is contained in:
defiQUG
2026-02-09 21:51:42 -08:00
commit c052b07662
3146 changed files with 808305 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import { useState, useCallback } from "react"
export function useVoicePlayback() {
const [speakingHead, setSpeakingHead] = useState<string | null>(null)
const [headSummaries, setHeadSummaries] = useState<Record<string, string>>({})
const onHeadSpeak = useCallback(
(headId: string, summary: string, audioBase64?: string | null) => {
setSpeakingHead(headId)
setHeadSummaries((prev) => ({ ...prev, [headId]: summary }))
if (audioBase64) {
try {
const audio = new Audio(`data:audio/wav;base64,${audioBase64}`)
audio.play().then(() => {
audio.onended = () => setSpeakingHead(null)
}).catch(() => setSpeakingHead(null))
} catch {
setSpeakingHead(null)
}
} else {
setTimeout(() => setSpeakingHead(null), 1500)
}
},
[]
)
const clearSpeaking = useCallback(() => setSpeakingHead(null), [])
return { speakingHead, headSummaries, onHeadSpeak, clearSpeaking }
}