Restore recommended sentence + language switcher to Clone a Voice
Adds the 'Read aloud' sample-sentence box back to the microphone card in the Clone a Voice tab. Language switcher covers EN/DE/IT/ES/FR/PT/NL/PL with phonetically diverse sentences (same as the My Voices panel). Uses the existing .sample-read-box / .sample-sentence CSS so it looks identical to the equivalent panel in the voice library. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bf458283af
commit
4eb132e2b0
@ -1,3 +1,26 @@
|
|||||||
|
// ── Clone: recommended sample sentences ──────────────────────────────────
|
||||||
|
|
||||||
|
const CLONE_SAMPLE_TEXTS = {
|
||||||
|
EN: 'The clear morning light warmed the quiet studio as I described a silver train, a bright red apple, and the gentle rhythm of rain on the window.',
|
||||||
|
DE: 'Das klare Morgenlicht waermte das ruhige Studio, waehrend ich einen silbernen Zug, einen roten Apfel und den sanften Rhythmus des Regens am Fenster beschrieb.',
|
||||||
|
IT: "La luce chiara del mattino scaldava lo studio tranquillo mentre descrivevo un treno d'argento, una mela rossa e il ritmo leggero della pioggia alla finestra.",
|
||||||
|
ES: 'La clara luz de la manana calentaba el estudio tranquilo mientras describia un tren plateado, una manzana roja y el suave ritmo de la lluvia en la ventana.',
|
||||||
|
FR: 'La lumiere claire du matin rechauffait le studio calme pendant que je decrivais un train argente, une pomme rouge et le doux rythme de la pluie sur la fenetre.',
|
||||||
|
PT: 'A luz clara da manha aquecia o estudio tranquilo enquanto eu descrevia um comboio prateado, uma maca vermelha e o ritmo suave da chuva na janela.',
|
||||||
|
NL: 'Het heldere ochtendlicht verwarmde de stille studio terwijl ik een zilveren trein, een rode appel en het zachte ritme van regen op het raam beschreef.',
|
||||||
|
PL: 'Jasne poranne swiatlo ogrzewalo ciche studio, gdy opisywalem srebrny pociag, czerwone jablko i lagodny rytm deszczu na oknie.',
|
||||||
|
};
|
||||||
|
|
||||||
|
(function initCloneSampleText() {
|
||||||
|
const sel = $('clone-sample-lang');
|
||||||
|
const txt = $('clone-sample-text');
|
||||||
|
if (!sel || !txt) return;
|
||||||
|
txt.value = CLONE_SAMPLE_TEXTS[sel.value] || CLONE_SAMPLE_TEXTS.EN;
|
||||||
|
sel.addEventListener('change', () => {
|
||||||
|
txt.value = CLONE_SAMPLE_TEXTS[sel.value] || CLONE_SAMPLE_TEXTS.EN;
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
// ── WaveSurfer ────────────────────────────────────────────────────────────
|
// ── WaveSurfer ────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
let ws = null, wsRegions = null, currentFileId = null, trimmedFileId = null, designedFileId = null, editingVoiceId = null, editingVoicePath = null;
|
let ws = null, wsRegions = null, currentFileId = null, trimmedFileId = null, designedFileId = null, editingVoiceId = null, editingVoicePath = null;
|
||||||
|
|||||||
@ -30,6 +30,22 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<h2>Microphone</h2>
|
<h2>Microphone</h2>
|
||||||
<p class="card-subtitle">Record a fresh sample with live input level monitoring.</p>
|
<p class="card-subtitle">Record a fresh sample with live input level monitoring.</p>
|
||||||
|
<div class="sample-read-box" style="margin-bottom:12px">
|
||||||
|
<div class="sample-head">
|
||||||
|
<label for="clone-sample-lang">Read aloud</label>
|
||||||
|
<select id="clone-sample-lang">
|
||||||
|
<option value="EN">English</option>
|
||||||
|
<option value="DE">Deutsch</option>
|
||||||
|
<option value="IT">Italiano</option>
|
||||||
|
<option value="ES">Español</option>
|
||||||
|
<option value="FR">Français</option>
|
||||||
|
<option value="PT">Português</option>
|
||||||
|
<option value="NL">Nederlands</option>
|
||||||
|
<option value="PL">Polski</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<textarea class="sample-sentence" id="clone-sample-text" spellcheck="true"></textarea>
|
||||||
|
</div>
|
||||||
<div class="btn-row">
|
<div class="btn-row">
|
||||||
<button class="btn-red" id="rec-start-btn"><span class="mdi mdi-record-circle-outline"></span> Record</button>
|
<button class="btn-red" id="rec-start-btn"><span class="mdi mdi-record-circle-outline"></span> Record</button>
|
||||||
<button class="btn-secondary" id="rec-stop-btn" disabled><span class="mdi mdi-stop-circle-outline"></span> Stop</button>
|
<button class="btn-secondary" id="rec-stop-btn" disabled><span class="mdi mdi-stop-circle-outline"></span> Stop</button>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user