import React, { useState, useEffect, useRef } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { Sparkles, ArrowRight, Play, Square, Heart, Cpu, FileText, ChevronDown, Check, Volume2, MessageSquare, Mic, Disc, Layers, Globe, Radio, Headphones, PlayCircle, Settings, Flame, Volume1, HelpCircle, User, ExternalLink, BookOpen } from 'lucide-react'; const Github = (props) => ( ); export default function LandingPage({ onTryDemo }) { // Collapsible FAQ Active Index const [activeFaq, setActiveFaq] = useState(null); // Mock Audio Player Demo State const [mockIsPlaying, setMockIsPlaying] = useState(false); const [mockActiveSpeaker, setMockActiveSpeaker] = useState(0); const [mockTimeline, setMockTimeline] = useState(0); const [selectedVoicePreset, setSelectedVoicePreset] = useState('podcast'); const canvasRef = useRef(null); const animationFrameId = useRef(null); // Scroll to section helper const scrollToSection = (id) => { const element = document.getElementById(id); if (element) { element.scrollIntoView({ behavior: 'smooth' }); } }; // Mock Speech Dialogues matching preset const voicePresets = { podcast: { title: "Co-Hosted Tech Podcast", description: "Expressive debate with turn-taking and natural emphasis.", duration: 12, speakers: [ { id: 0, name: "David (AI Host)", color: "cyan" }, { id: 1, name: "Zira (AI Guest)", color: "purple" } ], script: [ { spk: 0, text: "Welcome back! Today we are discussing open-source conversational AI.", time: 0 }, { spk: 1, text: "Yes! And VibeVoice is achieving incredible zero-shot prosody matching.", time: 4 }, { spk: 0, text: "It runs in real-time, even on a basic CPU node.", time: 8 } ] }, audiobook: { title: "Atmospheric Audiobook", description: "Rich descriptive narration with dramatic pauses.", duration: 15, speakers: [ { id: 0, name: "Narrator", color: "amber" } ], script: [ { spk: 0, text: "The ancient model weights loaded slowly, breathing life into the synthesis.", time: 0 }, { spk: 0, text: "Every voice clone whispered of a future built on neural acoustic tokens...", time: 7 } ] }, assistant: { title: "High-Speed Dynamic Support Agent", description: "Polite, helpful customer transaction stream.", duration: 10, speakers: [ { id: 0, name: "VibeVoice Agent", color: "emerald" }, { id: 1, name: "User Alex", color: "rose" } ], script: [ { spk: 0, text: "Hello! I am VibeVoice AI. I can assist with your DineDirect order.", time: 0 }, { spk: 1, text: "Perfect. Add a dynamic voice reference for Speaker 2.", time: 4 }, { spk: 0, text: "Certainly! Setting up customized vocal signature parameters.", time: 7 } ] } }; // Switch voice preset useEffect(() => { setMockIsPlaying(false); setMockTimeline(0); setMockActiveSpeaker(0); }, [selectedVoicePreset]); // Mock play timeline tick useEffect(() => { let interval; if (mockIsPlaying) { const activePreset = voicePresets[selectedVoicePreset]; interval = setInterval(() => { setMockTimeline(prev => { if (prev >= activePreset.duration) { setMockIsPlaying(false); return 0; } const nextVal = prev + 0.1; // Determine active speaker based on time const matchLine = [...activePreset.script].reverse().find(line => nextVal >= line.time); if (matchLine && matchLine.spk !== mockActiveSpeaker) { setMockActiveSpeaker(matchLine.spk); } return nextVal; }); }, 100); } return () => clearInterval(interval); }, [mockIsPlaying, selectedVoicePreset, mockActiveSpeaker]); // Floating Particles or Voice Wave Animation for Visualizer Mock useEffect(() => { const canvas = canvasRef.current; if (!canvas) return; const ctx = canvas.getContext('2d'); const width = canvas.width; const height = canvas.height; let time = 0; const render = () => { time += 0.04; ctx.fillStyle = 'rgba(7, 9, 14, 0.15)'; // Back-sweep fade ctx.fillRect(0, 0, width, height); // Multiple colored floating sin waves const waves = [ { amplitude: mockIsPlaying ? 35 : 8, speed: 1.5, color: 'rgba(0, 242, 254, 0.35)', freq: 0.015 }, { amplitude: mockIsPlaying ? 25 : 6, speed: 2.2, color: 'rgba(162, 89, 255, 0.3)', freq: 0.02 }, { amplitude: mockIsPlaying ? 15 : 4, speed: -1.2, color: 'rgba(255, 92, 141, 0.25)', freq: 0.01 } ]; waves.forEach(w => { ctx.beginPath(); ctx.lineWidth = mockIsPlaying ? 2.5 : 1.5; ctx.strokeStyle = w.color; ctx.shadowBlur = mockIsPlaying ? 8 : 0; ctx.shadowColor = w.color; for (let x = 0; x < width; x++) { const y = height / 2 + Math.sin(x * w.freq + time * w.speed) * w.amplitude * Math.sin(x / width * Math.PI); if (x === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y); } ctx.stroke(); }); // Animated voice bars on left and right borders if (mockIsPlaying) { ctx.fillStyle = 'rgba(0, 242, 254, 0.15)'; for (let i = 0; i < 15; i++) { const barHeight = Math.abs(Math.sin(time * 3 + i)) * 40; ctx.fillRect(15 + i * 8, height - barHeight - 10, 5, barHeight); ctx.fillRect(width - 15 - i * 8 - 5, height - barHeight - 10, 5, barHeight); } } animationFrameId.current = requestAnimationFrame(render); }; render(); return () => cancelAnimationFrame(animationFrameId.current); }, [mockIsPlaying]); // Framer motion containers configs const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: 0.15 } } }; const itemVariants = { hidden: { opacity: 0, y: 30 }, visible: { opacity: 1, y: 0, transition: { type: "spring", stiffness: 60 } } }; // FAQ List const faqs = [ { q: "What is VibeVoice AI?", a: "VibeVoice AI is an advanced, research-grade open-source neural acoustic speech model developed by Microsoft Research. It leverages multi-turn continuous speaker tokenization to generate hyper-realistic, human-like voice synthesis and dialogue streams without requiring massive GPU cluster infrastructures." }, { q: "Is it completely open source?", a: "Yes, VibeVoice is fully open source. All model architectures, inference engines, and base neural weights (including the lightweight 0.5B parameter variant) are accessible on our GitHub repository and Hugging Face space for developers, researchers, and synthetic media creators." }, { q: "Does it support multi-speaker dialogue synthesis?", a: "Absolutely. Rather than just speaking single phrases, VibeVoice excels at context-aware turn-taking. You can write scripts detailing conversations for two or more speakers, and the model handles transitions, conversational pauses, dynamic pacing, and speech emphasis with extreme stability." }, { q: "Can it generate full podcast discussions?", a: "Yes. By providing a scripted conversation template containing Speaker IDs (e.g. Speaker 0, Speaker 1), the engine aggregates dialogue cues to model natural flow, interruptions, and pacing, producing broadcast-ready podcast tracks." }, { q: "Does it support emotional speech synthesis and voice cloning?", a: "Yes. VibeVoice utilizes zero-shot speaker adaptation. By capturing or uploading a brief 10-30 second reference WAV file, it extracts pitch, vocal envelope, and prosody parameters. The model then synthesizes conversational speech matching the original speaker's vocal signature and dynamic emotional tone." }, { q: "Can developers fine-tune the model weights?", a: "Yes! The repository contains full PyTorch training recipes, quantization parameters, and Hugging Face pipeline wrappers. You can fine-tune VibeVoice on custom speech datasets or scale it in commercial server clouds utilizing GPU-optimized TensorRT containers." }, { q: "Is it suitable for research projects?", a: "VibeVoice was built from the ground up to support academic and commercial speech research. The architecture decouples text tokenization and acoustic prosody representation, offering researchers a clean pipeline to inspect neural audio modeling." } ]; return (
Human-like conversational speech generation powered by AI. Experience the future of multi-speaker dialogue and expressive zero-shot voice synthesis.
{/* Feature highlights inside Hero */}High-Fidelity Audio
Dynamic Latency
Quantized weights
VibeVoice is an advanced open-source AI voice model developed to bridge the gap between flat, robotic speech-to-text outputs and natural, multi-speaker conversational dialogue.
By processing a brief, 10-second reference voice WAV, the network maps core vocal footprints to synthesize entirely new dialogue styles instantly.
Models turn-taking triggers, pauses, and context queues so speakers flow smoothly between paragraphs, simulating authentic studio atmospheres.
Decoupled neural acoustic tokenizers allow academic inspection and dynamic speed parameter tweaking for multi-agent experiments.
Seamless pipeline wrappers for Hugging Face datasets and local PyTorch containers to build production speech layers.
From co-hosted podcasts to responsive gaming characters, VibeVoice AI bundles powerful acoustic capabilities out-of-the-box.
Generate natural conversations between multiple AI speakers. Handles realistic speaker transitions and context-aware continuity automatically.
Automatically create complete podcast-style discussions with human-like speaking flow, dynamic pacing, and interactive turn exchanges.
Emotion-aware speech synthesis capturing raw tone, breathing rhythm, natural pauses, and precise vocal emphasis.
Stable long-duration speech generation that maintains voice quality consistency and active conversation memory across chapters.
Vocal adaptation matching target speaker style, footprint imitation, and fast personalized AI voice mapping.
Human-like interaction flow, clean turn-taking logic, and advanced prosody modeling for responsive AI web support.
First-class Hugging Face model hub integration, comprehensive GitHub community repositories, and developer API templates.
Designed from first principles for conversational research, scalable local inference workloads, and custom quantization setups.
Discover how product squads, creative developers, and researchers deploy VibeVoice AI in the wild.
Generate customized, context-aware speech dialogue files locally in three simple milestones.
Format your text using simple speaker tags (e.g., `Speaker 0`, `Speaker 1`). Paste dialogue script snippets directly into the studio box.
The model maps dialogue turn-taking patterns, computes real-time prosody adjustments, and blends speakers based on custom voice signatures.
Stream binary PCM audio chunks back to the client browser in under 250ms, then run the client packager to download the mastered WAV file.
By shifting away from multi-gigabyte models that require expensive dedicated GPUs, VibeVoice provides extreme research scalability directly on home laptops.
{cap.desc}
Click play below to explore interactive speaker switching, custom scripts, and visual voice-wave modulations.
{line.text}
Upload voice profiles, customize speeds, and download master tracks in the playground.
We believe conversational voice models should be accessible to all developers. Get instant access to pre-quantized model base checkpoints, training layers, and custom fine-tuning scripts.
Ideal for deployment on edge systems and low-resource CPU servers.
Prepackaged datasets, gradient-accumulation code, and training layers.
Allows robust speaker feature mapping with zero gradient training runs.
Read how developers are applying VibeVoice AI to rewrite the vocal product stack.
"We migrated all virtual co-hosts for our audiobooks to VibeVoice. The zero-shot reference cloning accuracy is astonishing; it matches emotional cadence with negligible distortion."
AI Audio Researcher
"Building responsive conversational pipelines is exceptionally straightforward. Standard WebSockets streaming audio chunks under 250ms is exactly what SaaS developers need."
Vocal Startup Founder
"The local CPU inference speeds are a massive paradigm shift. Generating multi-speaker podcasts without scaling complex Kubernetes GPU clusters completely changed our billing models."
Podcast Platform Creator
"Being able to review training scripts and inspect decoupled prosody token architectures is brilliant. This model is exceptionally clean and well-structured for university research projects."
ML PhD Scholar
Everything you need to know about setting up and running VibeVoice AI.
Instantly record dynamic speakers, compile realistic podcast dialogues, and master local WAV tracks completely in your browser.