This commit is contained in:
+13
-2
@@ -17,8 +17,19 @@ function getWorker() {
|
||||
request.onProgress?.(message.progress);
|
||||
} else {
|
||||
pending.delete(message.id);
|
||||
if (message.type === 'audio') request.resolve(new Blob([message.audio], {type: 'audio/x-wav'}));
|
||||
else request.reject(new Error(message.error || 'Piper-arbetaren misslyckades.'));
|
||||
if (message.type === 'audio') {
|
||||
request.resolve(new Blob([message.audio], {type: 'audio/x-wav'}));
|
||||
} else {
|
||||
const error = new Error(message.error || 'Piper-arbetaren misslyckades.');
|
||||
request.reject(error);
|
||||
// TtsSession keeps a singleton even when ONNX initialization fails.
|
||||
// Discard the whole worker so a player retry starts with a clean ONNX
|
||||
// module and does not reuse a poisoned WASM initialization.
|
||||
for (const queued of pending.values()) queued.reject(error);
|
||||
pending.clear();
|
||||
worker?.terminate();
|
||||
worker = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
worker.onerror = event => {
|
||||
|
||||
Reference in New Issue
Block a user