diff --git a/VorleserKit/Sources/AudioEngine/AudioEngine.swift b/VorleserKit/Sources/AudioEngine/AudioEngine.swift index ae84a4a..889934b 100644 --- a/VorleserKit/Sources/AudioEngine/AudioEngine.swift +++ b/VorleserKit/Sources/AudioEngine/AudioEngine.swift @@ -131,7 +131,10 @@ public final class AudioEngine { nextBuffer = nil } else { do { - let samples = try synthesizer.synthesize(text: sentence.text) + let samples: [Float] = try autoreleasepool { + try synthesizer.synthesize(text: sentence.text) + } + synthesizer.clearCache() buffer = Self.makePCMBuffer(from: samples) } catch { currentSentenceIndex += 1 @@ -146,7 +149,10 @@ public final class AudioEngine { guard nextIdx < sentences.count else { return nil } let nextText = sentences[nextIdx].text return Task.detached { [synthesizer] in - guard let samples = try? synthesizer.synthesize(text: nextText) else { return nil } + guard let samples: [Float] = try? autoreleasepool(invoking: { + try synthesizer.synthesize(text: nextText) + }) else { return nil } + synthesizer.clearCache() return SendableBuffer(buffer: Self.makePCMBuffer(from: samples)) } }()