UNPKG

realtime-voice-ai

Version:

A powerful, fully configurable React component for real-time voice chat powered by OpenAI's Realtime API. Create natural conversations with AI using advanced voice recognition and synthesis.

67 lines (59 loc) 1.97 kB
import { useState } from "react"; import { AudioLines } from "lucide-react"; import RealTimeVoiceChat from "./RealTimeVoiceChat"; import VoiceAssistant from "./VoiceAssistant"; // assuming this is the other component export const VoiceChatTrigger = ({ botType, // 'rvc' or 'va' ...props // all other props like apiKey, onTranscriptionComplete, etc. }) => { const [isModalOpen, setIsModalOpen] = useState(false); const handleOpen = () => setIsModalOpen(true); const handleClose = () => setIsModalOpen(false); const renderVoiceComponent = () => { if (botType === "rvc") { return ( <RealTimeVoiceChat isOpen={isModalOpen} onClose={handleClose} {...props} /> ); } else if (botType === "va") { return ( <VoiceAssistant isOpen={isModalOpen} onClose={handleClose} {...props} /> ); } else { console.warn("Invalid botType provided:", botType); return null; } }; return ( <> {botType === 'rvc' && <button onClick={handleOpen} className="p-2 rounded-full hover:bg-gray-200 transition-colors duration-200 w-max" > <AudioLines className="w-5 h-5 text-gray-600" /> </button>} {renderVoiceComponent()} {/* Animation keyframes */} <style jsx global>{` @keyframes slideUp { from { opacity: 0; transform: scale(0.95) translateY(30px); } to { opacity: 1; transform: scale(1) translateY(0); } } `}</style> </> ); }; export default VoiceChatTrigger;