./electronfolder. The backbone app is added to
./electron/index.htmlwith browserify using npm scripts.
lib/appfolder. For troubleshooting you can use
ito get the electron developer console. There you have
appPaperedittwo backbone routers in the global
windowscope that give you access to getting to individual backbone models and collections for transcriptions and paper-edit.
backbone.syncmethod to provide a backend for the app and persistent storage using linvodb3, which uses
medeadownto storing db on the user file system. See current db setup tutorial for more info.
index.htmlthe window object is used to provide an interface between the electron client side code code packaged with browserify and the 'backend' that can make the file system calls in node.
requirein the html file, then you are in node context, and can use module like
fsbut if you use a script tag, then you are in js client side code and don't have access to thos function.
lib/app/app.jsthe choice between the demo db and the production db is made.
demo_transcription.jsonprovide the data for the demo when
index.htmlis run in client side mode in the browser. and
lib/app/demo_db.jsprovides the logic for the demo db.
./electron/db.jsallows to connect the backbone front to the
linvodb3databse locally. As well as trigger
./lib/interactive_transcription_generatorcomponent to at a high level
backbone.syncand calls the
electron/db.jswhich after saving the transcription model in db, triggers this module to get stt transcription, video preivew, and metadata info.
interactive_transcription_generator. On top of prepping the audio or video file to get a transcription from IBM, it also generates a webm html5 video preview and reads the metadata, which is something needed to make an EDL.
transcribermodule used by
interactive_transcription_generatorcan also chose between using Gentle open source STT, Pocketsphinx or IBM to generate the transcription depending on what was specified by the user.
interactive_transcription_generatorfolder structure overview:
pocketsphinxmodule was originally extracted from the electron version of the Video grep project. The implementation of this module is discussed in more details in subsequent sections.
ffmpegunder the hood, and getting
electronto work can sometimes be problematic when setting up a new app, so I wrote here about how this setup works in autoEdit, with simplified example.
specfolder, to run the test suite
npm run test. Uses jasmine for testing. Testes are setup to be all in one place rather then divided with their respective components, for ease of use. Altho test coverage is far from complete and could do with some attention, see supporting the project if that's something you'd be interested getting involved with.