An Electron app to play, visualize, and annotate your audio files for machine learning
| Operating System | Status |
|---|---|
| MacOS | |
| Linux (Debian) | |
| Windows | Coming Soon |
yarn install
yarn run startMake a compiled executable for your current local platform (will generate; ie .app for macOS). Output will be to out directory.
yarn install
yarn run packageSame as package except packages it in a distributable manner for your current local platform; ie .zip for macOS or dep and rpm for Linux. Output will be to out directory.
yarn install
yarn run make- Local database saved to your
~/reverb.sqlite3. - Audio samples are saved to
~/reverb-export.
- As of
"typeorm": "^0.2.7", the docs are wrong for lazy loading relations. Even when property type isPromise<T>as the docs say, attempting to save the record will fail. (even though their examples says you should be able to do {key: Promise.resolve(value)}) typeorm/typeorm#2276 - Consider migrating
Classificationback into theLabeltable. Although it breaks BCNF, it causes concurrency issues when attempting to spawn multiple labels at once - Possible race condition if two Labels are attempted to be saved at the exact same time to a Classification which doesn't yet exist. The AudioPlayer
.addLabelfunction yields to the creation of the related Classification. If 2 Labels attempt to create the same Classification at the same time within the same transaction frame, they will both see that the Classification as non-existent, try to create it, and one will fail as theuniqueindex on Classification name will not allow it. This will most likely not effect people in real life scenarios, and only came about when doing automated DB seeding. electron-forgedoesn't play nice withtypeorms glob patterns for entity loading as files will not be bundled in the build to import at runtime. Make sure to use the[<Entity>, <Entity>]syntax.https://www.tensorflow.org/tutorials/sequences/audio_recognitiondoesn't work when WAV files are encoded at 44100. Changing to 16000 seems to fix it.
.tsx?files which start with a capital do a named class export of the same filename; other files are considered lib files and can export anything.- Variables suffixed with
_are of typePromise<T>or some unresolved type.
- This project is heavily influenced by our sister project https://github.com/ritazh/EchoML/