fix: F5-TTS Voice-Referenztext + Standard-Eintrag raus
Bug-Root: voice_upload schrieb "Das ist ein Referenz Audio." als Platzhalter wenn die whisper-bridge nicht erreichbar war. F5-TTS bekam dann diesen Text als Sprach-Anker, sah aber im WAV ganz andere Worte → verwirrtes Modell, halluziniert in beliebiger Sprache (z.B. Spanisch). Fixes: - handle_voice_upload: schreibt KEINE Platzhalter-.txt mehr. Bei Failure bleibt die .txt weg → naechste TTS-Nutzung zieht via on-the-fly retry nach. - _do_tts: Legacy-Platzhalter wird beim Render erkannt und geloescht, Transkription on-the-fly neu angezogen. Bestehende kaputte voices reparieren sich automatisch beim ersten Render. UI-Aufraeumung: F5-TTS hat keine "Standard"-Stimme — der Eintrag ist raus in App SettingsScreen + Diagnostic. Diagnostic-Dropdown hat jetzt einen disabled-Hinweis "(keine Stimme gewaehlt)". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -807,23 +807,13 @@ const SettingsScreen: React.FC = () => {
|
||||
<View style={{marginTop: 20}}>
|
||||
<Text style={styles.toggleLabel}>Stimme (geraetelokal)</Text>
|
||||
<Text style={styles.toggleHint}>
|
||||
Eigene Wahl fuer dieses Geraet. Ohne Auswahl gilt der Diagnostic-Default.
|
||||
Eine geklonte Stimme auswaehlen. F5-TTS braucht zwingend eine Referenz —
|
||||
ohne Auswahl gilt die in Diagnostic gewaehlte globale Stimme.
|
||||
</Text>
|
||||
|
||||
{/* Default-Option */}
|
||||
<TouchableOpacity
|
||||
style={[styles.voiceRow, xttsVoice === '' && styles.voiceRowActive]}
|
||||
onPress={() => selectVoice('')}
|
||||
>
|
||||
<Text style={[styles.voiceRowName, xttsVoice === '' && styles.voiceRowNameActive]}>
|
||||
Standard (Diagnostic-Default)
|
||||
</Text>
|
||||
{xttsVoice === '' && <Text style={styles.voiceRowCheck}>{'\u2713'}</Text>}
|
||||
</TouchableOpacity>
|
||||
|
||||
{availableVoices.length === 0 ? (
|
||||
<Text style={[styles.toggleHint, {marginTop: 8, textAlign: 'center'}]}>
|
||||
Keine eigenen Stimmen auf dem XTTS-Server.
|
||||
Keine geklonten Stimmen vorhanden — unten "Eigene Stimme aufnehmen".
|
||||
</Text>
|
||||
) : (
|
||||
availableVoices.map(v => (
|
||||
|
||||
Reference in New Issue
Block a user