Commit
·
baf104b
1
Parent(s):
084172c
render wav
Browse files- index.html +3 -1
- main.js +14 -12
index.html
CHANGED
|
@@ -226,8 +226,10 @@
|
|
| 226 |
margin-top: 0.75rem;
|
| 227 |
width: 100%;
|
| 228 |
max-width: 360px;
|
| 229 |
-
height: 40px;
|
|
|
|
| 230 |
border-radius: 8px;
|
|
|
|
| 231 |
}
|
| 232 |
|
| 233 |
.input-area {
|
|
|
|
| 226 |
margin-top: 0.75rem;
|
| 227 |
width: 100%;
|
| 228 |
max-width: 360px;
|
| 229 |
+
min-height: 40px;
|
| 230 |
+
height: auto;
|
| 231 |
border-radius: 8px;
|
| 232 |
+
display: block;
|
| 233 |
}
|
| 234 |
|
| 235 |
.input-area {
|
main.js
CHANGED
|
@@ -441,19 +441,20 @@ async function generate(userMessage) {
|
|
| 441 |
if (waveform.length > 0) {
|
| 442 |
generatedText = result.textOutput || `Generated ${result.audioCodes.length} audio frames (${(waveform.length / 24000).toFixed(2)}s)`;
|
| 443 |
|
| 444 |
-
// Create
|
| 445 |
const audioMsgEl = document.createElement('div');
|
| 446 |
audioMsgEl.className = 'message assistant';
|
| 447 |
const wavBlob = createWavBlob(waveform, 24000);
|
| 448 |
console.log('TTS WAV blob created:', wavBlob.size, 'bytes');
|
| 449 |
const audioUrl = URL.createObjectURL(wavBlob);
|
|
|
|
| 450 |
const audioEl = document.createElement('audio');
|
| 451 |
-
audioEl.src = audioUrl;
|
| 452 |
audioEl.controls = true;
|
| 453 |
-
|
| 454 |
-
|
| 455 |
-
|
| 456 |
-
audioEl.
|
|
|
|
| 457 |
audioMsgEl.appendChild(audioEl);
|
| 458 |
chatContainer.appendChild(audioMsgEl);
|
| 459 |
chatContainer.scrollTop = chatContainer.scrollHeight;
|
|
@@ -502,19 +503,20 @@ async function generate(userMessage) {
|
|
| 502 |
generatedText = `Generated ${result.audioCodes.length} audio frames`;
|
| 503 |
}
|
| 504 |
|
| 505 |
-
// Create
|
| 506 |
const audioMsgEl = document.createElement('div');
|
| 507 |
audioMsgEl.className = 'message assistant';
|
| 508 |
const wavBlob = createWavBlob(waveform, 24000);
|
| 509 |
console.log('WAV blob created:', wavBlob.size, 'bytes');
|
| 510 |
const audioUrl = URL.createObjectURL(wavBlob);
|
|
|
|
| 511 |
const audioEl = document.createElement('audio');
|
| 512 |
-
audioEl.src = audioUrl;
|
| 513 |
audioEl.controls = true;
|
| 514 |
-
|
| 515 |
-
|
| 516 |
-
|
| 517 |
-
audioEl.
|
|
|
|
| 518 |
audioMsgEl.appendChild(audioEl);
|
| 519 |
chatContainer.appendChild(audioMsgEl);
|
| 520 |
chatContainer.scrollTop = chatContainer.scrollHeight;
|
|
|
|
| 441 |
if (waveform.length > 0) {
|
| 442 |
generatedText = result.textOutput || `Generated ${result.audioCodes.length} audio frames (${(waveform.length / 24000).toFixed(2)}s)`;
|
| 443 |
|
| 444 |
+
// Create audio player
|
| 445 |
const audioMsgEl = document.createElement('div');
|
| 446 |
audioMsgEl.className = 'message assistant';
|
| 447 |
const wavBlob = createWavBlob(waveform, 24000);
|
| 448 |
console.log('TTS WAV blob created:', wavBlob.size, 'bytes');
|
| 449 |
const audioUrl = URL.createObjectURL(wavBlob);
|
| 450 |
+
|
| 451 |
const audioEl = document.createElement('audio');
|
|
|
|
| 452 |
audioEl.controls = true;
|
| 453 |
+
const sourceEl = document.createElement('source');
|
| 454 |
+
sourceEl.src = audioUrl;
|
| 455 |
+
sourceEl.type = 'audio/wav';
|
| 456 |
+
audioEl.appendChild(sourceEl);
|
| 457 |
+
|
| 458 |
audioMsgEl.appendChild(audioEl);
|
| 459 |
chatContainer.appendChild(audioMsgEl);
|
| 460 |
chatContainer.scrollTop = chatContainer.scrollHeight;
|
|
|
|
| 503 |
generatedText = `Generated ${result.audioCodes.length} audio frames`;
|
| 504 |
}
|
| 505 |
|
| 506 |
+
// Create audio player
|
| 507 |
const audioMsgEl = document.createElement('div');
|
| 508 |
audioMsgEl.className = 'message assistant';
|
| 509 |
const wavBlob = createWavBlob(waveform, 24000);
|
| 510 |
console.log('WAV blob created:', wavBlob.size, 'bytes');
|
| 511 |
const audioUrl = URL.createObjectURL(wavBlob);
|
| 512 |
+
|
| 513 |
const audioEl = document.createElement('audio');
|
|
|
|
| 514 |
audioEl.controls = true;
|
| 515 |
+
const sourceEl = document.createElement('source');
|
| 516 |
+
sourceEl.src = audioUrl;
|
| 517 |
+
sourceEl.type = 'audio/wav';
|
| 518 |
+
audioEl.appendChild(sourceEl);
|
| 519 |
+
|
| 520 |
audioMsgEl.appendChild(audioEl);
|
| 521 |
chatContainer.appendChild(audioMsgEl);
|
| 522 |
chatContainer.scrollTop = chatContainer.scrollHeight;
|