Skip to content
This repository was archived by the owner on Mar 5, 2022. It is now read-only.
This repository was archived by the owner on Mar 5, 2022. It is now read-only.

memory management #21

Open
Open
@jeremyandrews

Description

@jeremyandrews

I'm using deepspeech-rs in a personal project and I've run into a memory-related problem.

At a high level, I have an Actix server that accepts audio files (currently from a watchOS client) uses deepspeech-rs to convert the audio to text, then returns the result. The problem I'm seeing is memory grows by ~250MB each time I process an audio file.

I suspect the problem is that I'm loading the model into memory each time I process a new audio file. However, in trying to solve this I've run into two problems:

  1. I don't understand how to properly free the memory after loading the model -- I'm used to Rust doing this for me, and trying to clear the Model and/or Audio Buffer doesn't solve the leak
  2. I'd prefer to load the models one time, and then share it with all the Actix threads -- however, I'm unable to wrap it in a Mutex and share it, as deepspeech::Model doesn't implement Copy() or Clone().

I do see there was recent discussion of a memory leak in the upstream deepspeech repo, but offhand that doesn't look related.

I'm currently doing development on an Ubuntu-based Linux distribution, with the 5.3 Linux kernel. I set things up and build as documented in my project's README.

I'd appreciate any suggestions!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions