sonicsculptor-ai / index.html
tm409281's picture
add post processing comparison of audio files to show changes
2770657 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VoiceCraft AI Assistant</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.waves.min.js"></script>
</head>
<body class="bg-gray-900 text-white">
<custom-navbar></custom-navbar>
<main class="container mx-auto px-4 py-12">
<div id="vanta-background" class="absolute inset-0 -z-10"></div>
<div class="max-w-4xl mx-auto backdrop-blur-sm bg-black/30 rounded-xl p-8 shadow-2xl">
<div class="text-center mb-12">
<h1 class="text-4xl font-bold mb-4">VoiceCraft AI Assistant</h1>
<p class="text-lg text-gray-300">Transform your voice with AI-powered speech processing</p>
</div>
<div class="grid md:grid-cols-2 gap-8">
<!-- Speech Processing Card -->
<div class="bg-gray-800/70 rounded-lg p-6 hover:shadow-lg transition-all">
<div class="flex items-center mb-4">
<i data-feather="mic" class="w-6 h-6 mr-3 text-purple-400"></i>
<h2 class="text-xl font-semibold">Speech Processing</h2>
</div>
<p class="text-gray-300 mb-4">Upload audio files or record directly to apply AI processing.</p>
<button id="recordBtn" class="bg-purple-600 hover:bg-purple-700 text-white px-4 py-2 rounded-md flex items-center">
<i data-feather="mic" class="w-4 h-4 mr-2"></i>
Record Audio
</button>
<input type="file" id="audioUpload" accept="audio/*" class="hidden">
<label for="audioUpload" class="block mt-3 bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-md text-center cursor-pointer">
<i data-feather="upload" class="w-4 h-4 mr-2 inline"></i>
Upload Audio
</label>
</div>
<!-- Processing Options Card -->
<div class="bg-gray-800/70 rounded-lg p-6 hover:shadow-lg transition-all">
<div class="flex items-center mb-4">
<i data-feather="settings" class="w-6 h-6 mr-3 text-blue-400"></i>
<h2 class="text-xl font-semibold">Processing Options</h2>
</div>
<div class="space-y-4">
<div>
<label class="block text-gray-300 mb-1">Processing Type:</label>
<select class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-white">
<option>Speech Recognition</option>
<option>Voice Conversion</option>
<option>Speech Enhancement</option>
<option>Emotion Recognition</option>
</select>
</div>
<div>
<label class="block text-gray-300 mb-1">Output Format:</label>
<select class="w-full bg-gray-700 border border-gray-600 rounded-md px-3 py-2 text-white">
<option>WAV</option>
<option>MP3</option>
<option>OGG</option>
</select>
</div>
<button id="processBtn" class="w-full bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md flex items-center justify-center">
<i data-feather="play" class="w-4 h-4 mr-2"></i>
Process Audio
</button>
</div>
</div>
</div>
<!-- Results Section -->
<div class="mt-12 bg-gray-800/70 rounded-lg p-6">
<h2 class="text-xl font-semibold mb-4 flex items-center">
<i data-feather="activity" class="w-5 h-5 mr-2 text-green-400"></i>
Processing Results
</h2>
<div id="resultsContainer" class="min-h-40 border-2 border-dashed border-gray-600 rounded-lg p-4 flex flex-col items-center justify-center text-gray-400">
<p>Your processed audio will appear here...</p>
</div>
<div class="mt-6 grid md:grid-cols-2 gap-6 hidden" id="comparisonSection">
<div class="bg-gray-700/50 p-4 rounded-lg">
<h3 class="font-medium mb-2 text-center">Original Audio</h3>
<div class="w-full bg-gray-800 rounded h-24 mb-2" id="originalWaveform"></div>
<audio controls class="w-full"></audio>
</div>
<div class="bg-gray-700/50 p-4 rounded-lg">
<h3 class="font-medium mb-2 text-center">Processed Audio</h3>
<div class="w-full bg-gray-800 rounded h-24 mb-2" id="processedWaveform"></div>
<audio controls class="w-full"></audio>
</div>
</div>
<div class="mt-4 flex space-x-3">
<button class="bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-md flex items-center disabled:opacity-50" disabled>
<i data-feather="download" class="w-4 h-4 mr-2"></i>
Download
</button>
<button class="bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-md flex items-center disabled:opacity-50" disabled>
<i data-feather="share-2" class="w-4 h-4 mr-2"></i>
Share
</button>
<button class="bg-purple-600 hover:bg-purple-700 text-white px-4 py-2 rounded-md flex items-center hidden" id="compareBtn">
<i data-feather="compare" class="w-4 h-4 mr-2"></i>
Compare
</button>
</div>
</div>
</div>
</main>
<custom-footer></custom-footer>
<script src="components/navbar.js"></script>
<script src="components/footer.js"></script>
<script src="script.js"></script>
<script>
feather.replace();
VANTA.WAVES({
el: "#vanta-background",
mouseControls: true,
touchControls: true,
gyroControls: false,
minHeight: 200.00,
minWidth: 200.00,
scale: 1.00,
scaleMobile: 1.00,
color: 0x4b0082,
shininess: 35.00,
waveHeight: 15.00,
waveSpeed: 0.85,
zoom: 0.75
});
</script>
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
</body>
</html>