Spaces:
Running
Running
je veux que quan je parle au micro , la discussion s'écris dans écrivez votre message comme sa je vois ce que je disaussi
Browse files- index.html +19 -6
- rosalinda.html +15 -7
- script.js +13 -8
index.html
CHANGED
|
@@ -231,14 +231,27 @@
|
|
| 231 |
const recognition = new SpeechRecognition();
|
| 232 |
recognition.lang = 'fr-FR';
|
| 233 |
recognition.interimResults = false;
|
| 234 |
-
|
| 235 |
recognition.onresult = (event) => {
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
};
|
| 240 |
-
|
| 241 |
-
recognition.onerror = (event) => {
|
| 242 |
console.error('Erreur de reconnaissance vocale:', event.error);
|
| 243 |
chatStatus.textContent = 'Micro: erreur';
|
| 244 |
};
|
|
|
|
| 231 |
const recognition = new SpeechRecognition();
|
| 232 |
recognition.lang = 'fr-FR';
|
| 233 |
recognition.interimResults = false;
|
|
|
|
| 234 |
recognition.onresult = (event) => {
|
| 235 |
+
let interimTranscript = '';
|
| 236 |
+
let finalTranscript = '';
|
| 237 |
+
|
| 238 |
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
| 239 |
+
const transcript = event.results[i][0].transcript;
|
| 240 |
+
if (event.results[i].isFinal) {
|
| 241 |
+
finalTranscript += transcript + ' ';
|
| 242 |
+
} else {
|
| 243 |
+
interimTranscript += transcript;
|
| 244 |
+
}
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
// Show interim results in real-time
|
| 248 |
+
chatInput.value = interimTranscript || finalTranscript;
|
| 249 |
+
|
| 250 |
+
if (finalTranscript) {
|
| 251 |
+
handleChatSend();
|
| 252 |
+
}
|
| 253 |
};
|
| 254 |
+
recognition.onerror = (event) => {
|
|
|
|
| 255 |
console.error('Erreur de reconnaissance vocale:', event.error);
|
| 256 |
chatStatus.textContent = 'Micro: erreur';
|
| 257 |
};
|
rosalinda.html
CHANGED
|
@@ -207,25 +207,33 @@ div.textContent = text;
|
|
| 207 |
micBtn.classList.add("listening");
|
| 208 |
let finalText = "";
|
| 209 |
let timeoutId;
|
| 210 |
-
|
| 211 |
rec.onresult = (e) => {
|
| 212 |
clearTimeout(timeoutId);
|
| 213 |
-
let
|
|
|
|
|
|
|
| 214 |
for (let i = e.resultIndex; i < e.results.length; i++) {
|
| 215 |
-
transcript
|
| 216 |
if (e.results[i].isFinal) {
|
| 217 |
-
|
|
|
|
|
|
|
| 218 |
}
|
| 219 |
}
|
| 220 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
|
| 222 |
// Reset timeout on new results
|
| 223 |
timeoutId = setTimeout(() => {
|
| 224 |
if (listening) rec.stop();
|
| 225 |
}, 2000);
|
| 226 |
};
|
| 227 |
-
|
| 228 |
-
rec.onerror = (e) => {
|
| 229 |
console.error("Speech recognition error", e);
|
| 230 |
stopListening();
|
| 231 |
statusEl.textContent = "Micro: erreur - " + e.error;
|
|
|
|
| 207 |
micBtn.classList.add("listening");
|
| 208 |
let finalText = "";
|
| 209 |
let timeoutId;
|
|
|
|
| 210 |
rec.onresult = (e) => {
|
| 211 |
clearTimeout(timeoutId);
|
| 212 |
+
let interimTranscript = '';
|
| 213 |
+
let finalTranscript = '';
|
| 214 |
+
|
| 215 |
for (let i = e.resultIndex; i < e.results.length; i++) {
|
| 216 |
+
const transcript = e.results[i][0].transcript;
|
| 217 |
if (e.results[i].isFinal) {
|
| 218 |
+
finalTranscript += transcript + ' ';
|
| 219 |
+
} else {
|
| 220 |
+
interimTranscript += transcript;
|
| 221 |
}
|
| 222 |
}
|
| 223 |
+
|
| 224 |
+
// Show interim results in real-time
|
| 225 |
+
inp.value = interimTranscript || finalTranscript;
|
| 226 |
+
|
| 227 |
+
if (finalTranscript) {
|
| 228 |
+
finalText += finalTranscript;
|
| 229 |
+
}
|
| 230 |
|
| 231 |
// Reset timeout on new results
|
| 232 |
timeoutId = setTimeout(() => {
|
| 233 |
if (listening) rec.stop();
|
| 234 |
}, 2000);
|
| 235 |
};
|
| 236 |
+
rec.onerror = (e) => {
|
|
|
|
| 237 |
console.error("Speech recognition error", e);
|
| 238 |
stopListening();
|
| 239 |
statusEl.textContent = "Micro: erreur - " + e.error;
|
script.js
CHANGED
|
@@ -93,14 +93,19 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
| 93 |
const recognition = new SpeechRecognition();
|
| 94 |
recognition.lang = 'fr-FR';
|
| 95 |
recognition.interimResults = false;
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
console.error('Erreur de reconnaissance vocale:', event.error);
|
| 105 |
statusEl.textContent = "Micro: erreur - " + event.error;
|
| 106 |
};
|
|
|
|
| 93 |
const recognition = new SpeechRecognition();
|
| 94 |
recognition.lang = 'fr-FR';
|
| 95 |
recognition.interimResults = false;
|
| 96 |
+
recognition.onresult = (event) => {
|
| 97 |
+
let transcript = '';
|
| 98 |
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
| 99 |
+
transcript += event.results[i][0].transcript;
|
| 100 |
+
}
|
| 101 |
+
inp.value = transcript;
|
| 102 |
+
|
| 103 |
+
// Only send if the result is final
|
| 104 |
+
if (event.results[0].isFinal) {
|
| 105 |
+
handleSend();
|
| 106 |
+
}
|
| 107 |
+
};
|
| 108 |
+
recognition.onerror = (event) => {
|
| 109 |
console.error('Erreur de reconnaissance vocale:', event.error);
|
| 110 |
statusEl.textContent = "Micro: erreur - " + event.error;
|
| 111 |
};
|