Fix Piper memory pressure on iOS
Build and publish frontend / publish (push) Successful in 49s

This commit is contained in:
Ein Anderssono
2026-10-17 16:38:16 +02:00
parent b956527c72
commit c9b14e0726
6 changed files with 64 additions and 6 deletions
+13 -2
View File
@@ -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 => {