serenadeai / speech-recorder

speech-recorder is a node.js module for streaming audio from a device's microphone and filtering for speech.
MIT License
86 stars 19 forks source link

Fix crash in electron app when loading model #31

Open dsouza95 opened 1 year ago

dsouza95 commented 1 year ago

This PR fixes crashes in electron applications that use asar archiving (as seen in #30), which is enabled by default in electron. When using asar archiving, native dependencies such as speech-recorder are not bundled in the asar file, remaining in the separate path app.asar.unpacked.

As seen in this issue, Electron has trouble using dirname, as the asar bundling messes with the paths for dependencies: dirname will resolve to a path with app.asar in it, while it should actually have app.asar.unpacked. For now, there is no fix or API for handling this on electron, so this simple replace should address the problem (which is the approach taken in the issue above).

tmacwill commented 1 year ago

thanks for tracking this down and opening a PR! I'd be hesitant to do a blanket replace on the model path, since there might be cases where a user doesn't want that. what do you think about adding an optional argument to the options object called something like asar or electron that's false by default, and then only doing this replace if that argument is set?

dsouza95 commented 1 year ago

Sure thing, sounds much better. Will update the PR right away!

TheJakey commented 1 year ago

Hello guys, any info on why is this still open? Looks ready to be merged.