| @@ -134,7 +134,7 @@ class ChatterboxTtsProvider { | ||
| 134 | 134 | </select> |
| 135 | 135 | </div>`; |
| 136 | 136 | |
| 137 | 137 | html += `'</div>`'; // End params section |
| 138 | 138 | |
| 139 | 139 | // Footer with links |
| 140 | 140 | html += `<div class="chatterbox-footer"> |
| @@ -142,7 +142,7 @@ class ChatterboxTtsProvider { | ||
| 142 | 142 | <a href="https://github.com/devnen/Chatterbox-TTS-Server" target="_blank">Documentation</a> |
| 143 | 143 | </div>`; |
| 144 | 144 | |
| 145 | 145 | html += `'</div>`'; // End container |
| 146 | 146 | |
| 147 | 147 | // Add CSS styles |
| 148 | 148 | html += `<style> |
| @@ -314,7 +314,7 @@ class ChatterboxTtsProvider { | ||
| 314 | 314 | name: voice.display_name, |
| 315 | 315 | voice_id: voice.voice_id, |
| 316 | 316 | preview_url: null, |
| 317 | 317 | lang: voice.language || 'en', |
| 318 | 318 | })); |
| 319 | 319 | |
| 320 | 320 | // Always try to fetch reference voices |
| @@ -327,7 +327,7 @@ class ChatterboxTtsProvider { | ||
| 327 | 327 | name: `[Clone] ${filename}`, |
| 328 | 328 | voice_id: `ref_${filename}`, |
| 329 | 329 | preview_url: null, |
| 330 | 330 | lang: 'en', |
| 331 | 331 | })); |
| 332 | 332 | } |
| 333 | 333 | } catch (error) { |
| @@ -460,7 +460,7 @@ class ChatterboxTtsProvider { | ||
| 460 | 460 | try { |
| 461 | 461 | this.updateStatus('Processing'); |
| 462 | 462 | |
| 463 | 463 | const previewText = "'Hello! This is a preview of the selected voice."'; |
| 464 | 464 | |
| 465 | 465 | // Determine if this is a reference voice |
| 466 | 466 | let isReferenceVoice = false; |
| @@ -482,7 +482,7 @@ class ChatterboxTtsProvider { | ||
| 482 | 482 | speed_factor: this.settings.speed_factor, |
| 483 | 483 | language: this.settings.language, |
| 484 | 484 | split_text: false, // Don't split for preview |
| 485 | 485 | output_format: this.settings.output_format, |
| 486 | 486 | }; |
| 487 | 487 | |
| 488 | 488 | // Add voice-specific parameters |
| @@ -495,9 +495,9 @@ class ChatterboxTtsProvider { | ||
| 495 | 495 | const response = await fetch(`${this.settings.provider_endpoint}/tts`, { |
| 496 | 496 | method: 'POST', |
| 497 | 497 | headers: { |
| 498 | 498 | 'Content-Type': 'application/json', |
| 499 | 499 | }, |
| 500 | 500 | body: JSON.stringify(requestBody), |
| 501 | 501 | }); |
| 502 | 502 | |
| 503 | 503 | if (!response.ok) { |
| @@ -537,7 +537,7 @@ class ChatterboxTtsProvider { | ||
| 537 | 537 | let match = this.voices.find(voice => |
| 538 | 538 | voice.name === voiceName || |
| 539 | 539 | voice.voice_id === voiceName || |
| 540 | 540 | voice.display_name === voiceName, |
| 541 | 541 | ); |
| 542 | 542 | |
| 543 | 543 | if (!match) { |
| @@ -549,7 +549,7 @@ class ChatterboxTtsProvider { | ||
| 549 | 549 | name: `[Clone] ${filename}`, |
| 550 | 550 | voice_id: voiceName, |
| 551 | 551 | preview_url: null, |
| 552 | 552 | lang: 'en', |
| 553 | 553 | }; |
| 554 | 554 | } |
| 555 | 555 | // Return a default voice object |
| @@ -557,7 +557,7 @@ class ChatterboxTtsProvider { | ||
| 557 | 557 | name: voiceName || 'Default', |
| 558 | 558 | voice_id: voiceName || this.settings.predefined_voice || 'S1', |
| 559 | 559 | preview_url: null, |
| 560 | 560 | lang: 'en', |
| 561 | 561 | }; |
| 562 | 562 | } |
| 563 | 563 | |
| @@ -593,7 +593,7 @@ class ChatterboxTtsProvider { | ||
| 593 | 593 | language: this.settings.language, |
| 594 | 594 | split_text: this.settings.split_text, |
| 595 | 595 | chunk_size: this.settings.chunk_size, |
| 596 | 596 | output_format: this.settings.output_format, |
| 597 | 597 | }; |
| 598 | 598 | |
| 599 | 599 | // Add voice-specific parameters |
| @@ -609,9 +609,9 @@ class ChatterboxTtsProvider { | ||
| 609 | 609 | method: 'POST', |
| 610 | 610 | headers: { |
| 611 | 611 | 'Content-Type': 'application/json', |
| 612 | 612 | 'Cache-Control': 'no-cache', |
| 613 | 613 | }, |
| 614 | 614 | body: JSON.stringify(requestBody), |
| 615 | 615 | }); |
| 616 | 616 | |
| 617 | 617 | if (!response.ok) { |