Hebrew-TTS-Samples / index.html
danielrosehill's picture
Add Hebrew TTS comparison samples with audio players
8f4ef76
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hebrew TTS Samples</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header>
<h1>Hebrew TTS Samples</h1>
<p class="subtitle">A comparison of Hebrew text-to-speech providers — voice cloning and stock voices.<br>
Snapshot taken March 2025.</p>
</header>
<main>
<!-- ===== VOICE CLONES ===== -->
<section>
<h2>Voice Clones</h2>
<p class="section-desc">Cloned from ~1 minute of Hebrew reference audio. Listen to the <strong>original voice</strong> (before) alongside the <strong>TTS output</strong> (after) from each provider.</p>
<!-- Herman -->
<div class="card">
<h3>Herman</h3>
<div class="sample-group">
<h4>Original Voice (Reference Audio)</h4>
<div class="sample">
<label>Hebrew reference (~1 min)</label>
<audio controls preload="none" src="audio/voice-sources/herman-before.mp3"></audio>
</div>
</div>
<div class="sample-group">
<h4>TTS Output (Voice Clones)</h4>
<div class="sample">
<label>MiniMax T2A v2.6 Turbo <span class="badge best">Best</span></label>
<audio controls preload="none" src="audio/voice-clones/minimax/herman.mp3"></audio>
</div>
<div class="sample">
<label>Resemble AI (voice clone)</label>
<audio controls preload="none" src="audio/voice-clones/resemble/herman.mp3"></audio>
</div>
<div class="sample">
<label>Chatterbox — Run 1 (English ref)</label>
<audio controls preload="none" src="audio/voice-clones/chatterbox/herman-run1.mp3"></audio>
</div>
<div class="sample">
<label>Chatterbox — Run 2 (Hebrew ref)</label>
<audio controls preload="none" src="audio/voice-clones/chatterbox/herman-run2.mp3"></audio>
</div>
</div>
</div>
<!-- Corn -->
<div class="card">
<h3>Corn</h3>
<div class="sample-group">
<h4>Original Voice (Reference Audio)</h4>
<div class="sample">
<label>Hebrew reference (~1 min)</label>
<audio controls preload="none" src="audio/voice-sources/corn-before.mp3"></audio>
</div>
</div>
<div class="sample-group">
<h4>TTS Output (Voice Clone)</h4>
<div class="sample">
<label>MiniMax T2A v2.6 Turbo <span class="badge best">Best</span></label>
<audio controls preload="none" src="audio/voice-clones/minimax/corn.mp3"></audio>
</div>
</div>
</div>
</section>
<!-- ===== STOCK VOICES ===== -->
<section>
<h2>Stock Voices</h2>
<p class="section-desc">Pre-built Hebrew voices from various TTS providers. No voice cloning — these are the provider's default offerings.</p>
<!-- Edge TTS -->
<div class="card">
<h3>Microsoft Edge TTS</h3>
<p class="provider-note">Free, built into Microsoft Edge. Tested with Avri (male) and Hila (female) at normal and 70% speed.</p>
<div class="sample-group">
<h4>Avri (Male) — Normal Speed</h4>
<div class="sample-grid">
<div class="sample"><label>Family</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/family.mp3"></audio></div>
<div class="sample"><label>Jerusalem</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/jerusalem.mp3"></audio></div>
<div class="sample"><label>Sample Text</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/sample-text.mp3"></audio></div>
<div class="sample"><label>Sample Text (Short)</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/sample-text-short.mp3"></audio></div>
<div class="sample"><label>Shortest</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/shortest.mp3"></audio></div>
<div class="sample"><label>Travel</label><audio controls preload="none" src="audio/stock/edge-tts/avri-100pc/travel.mp3"></audio></div>
</div>
</div>
<div class="sample-group">
<h4>Avri (Male) — 70% Speed</h4>
<div class="sample-grid">
<div class="sample"><label>Family</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/family.mp3"></audio></div>
<div class="sample"><label>Jerusalem</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/jerusalem.mp3"></audio></div>
<div class="sample"><label>Sample Text</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/sample-text.mp3"></audio></div>
<div class="sample"><label>Sample Text (Short)</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/sample-text-short.mp3"></audio></div>
<div class="sample"><label>Shortest</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/shortest.mp3"></audio></div>
<div class="sample"><label>Travel</label><audio controls preload="none" src="audio/stock/edge-tts/avri-70pc/travel.mp3"></audio></div>
</div>
</div>
<div class="sample-group">
<h4>Hila (Female) — Normal Speed</h4>
<div class="sample-grid">
<div class="sample"><label>Family</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/family.mp3"></audio></div>
<div class="sample"><label>Jerusalem</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/jerusalem.mp3"></audio></div>
<div class="sample"><label>Sample Text</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/sample-text.mp3"></audio></div>
<div class="sample"><label>Sample Text (Short)</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/sample-text-short.mp3"></audio></div>
<div class="sample"><label>Shortest</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/shortest.mp3"></audio></div>
<div class="sample"><label>Travel</label><audio controls preload="none" src="audio/stock/edge-tts/hila-100pc/travel.mp3"></audio></div>
</div>
</div>
<div class="sample-group">
<h4>Hila (Female) — 70% Speed</h4>
<div class="sample-grid">
<div class="sample"><label>Family</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/family.mp3"></audio></div>
<div class="sample"><label>Jerusalem</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/jerusalem.mp3"></audio></div>
<div class="sample"><label>Sample Text</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/sample-text.mp3"></audio></div>
<div class="sample"><label>Sample Text (Short)</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/sample-text-short.mp3"></audio></div>
<div class="sample"><label>Shortest</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/shortest.mp3"></audio></div>
<div class="sample"><label>Travel</label><audio controls preload="none" src="audio/stock/edge-tts/hila-70pc/travel.mp3"></audio></div>
</div>
</div>
</div>
<!-- ElevenLabs -->
<div class="card">
<h3>ElevenLabs</h3>
<p class="provider-note">v3 model with <code>language_code: "he"</code>. Note: multilingual v2 produces unintelligible Hebrew — v3 with explicit Hebrew is required.</p>
<div class="sample-group">
<div class="sample"><label>Adam (Male)</label><audio controls preload="none" src="audio/stock/elevenlabs/adam-v3-he.mp3"></audio></div>
<div class="sample"><label>Bella (Female)</label><audio controls preload="none" src="audio/stock/elevenlabs/bella-v3-he.mp3"></audio></div>
<div class="sample"><label>Rachel (Female)</label><audio controls preload="none" src="audio/stock/elevenlabs/rachel-v3-he.mp3"></audio></div>
</div>
</div>
<!-- Gemini -->
<div class="card">
<h3>Google Gemini</h3>
<p class="provider-note">Gemini 2.5 Flash Preview TTS via Google AI Studio.</p>
<div class="sample-group">
<div class="sample"><label>Puck</label><audio controls preload="none" src="audio/stock/gemini/puck.mp3"></audio></div>
<div class="sample"><label>Zephyr</label><audio controls preload="none" src="audio/stock/gemini/zephyr.mp3"></audio></div>
</div>
</div>
<!-- Resemble AI Stock -->
<div class="card">
<h3>Resemble AI</h3>
<p class="provider-note">Stock Hebrew preset voice. Custom voice clones require nekudot (diacritics) for intelligible output.</p>
<div class="sample-group">
<div class="sample"><label>Avigail (Female)</label><audio controls preload="none" src="audio/stock/resemble/avigail.mp3"></audio></div>
</div>
</div>
</section>
<!-- ===== FINDINGS ===== -->
<section>
<h2>Summary</h2>
<div class="card">
<table>
<thead>
<tr><th>Provider</th><th>Approach</th><th>Hebrew Quality</th><th>Notes</th></tr>
</thead>
<tbody>
<tr><td><strong>MiniMax</strong></td><td>Voice cloning (Replicate)</td><td class="quality-best">Best</td><td>Cloned from ~1 min Hebrew reference; natural sounding</td></tr>
<tr><td><strong>Edge TTS</strong></td><td>Stock voices</td><td class="quality-good">Good</td><td>Microsoft's free TTS; Avri and Hila voices</td></tr>
<tr><td><strong>Gemini</strong></td><td>Stock voices</td><td class="quality-good">Good</td><td>Google AI Studio, Gemini 2.5 Flash Preview TTS</td></tr>
<tr><td><strong>ElevenLabs</strong></td><td>Stock voices (v3)</td><td class="quality-good">Good</td><td>Requires <code>language_code: "he"</code></td></tr>
<tr><td><strong>Chatterbox</strong></td><td>Voice cloning</td><td class="quality-poor">Poor</td><td>Gibberish — Dicta ONNX nikud library unavailable on Replicate</td></tr>
<tr><td><strong>Resemble AI</strong></td><td>Stock + cloning</td><td class="quality-poor">Poor</td><td>Needs nekudot (diacritics) for intelligible output</td></tr>
</tbody>
</table>
</div>
</section>
</main>
<footer>
<p>Source: <a href="https://github.com/danielrosehill/Hebrew-TTS-Providers" target="_blank">danielrosehill/Hebrew-TTS-Providers</a></p>
</footer>
</body>
</html>