3.0 KiB
Application Idea
playback is a fullscreen TUI for playing audio files in parallel with rendering their transcription from an SRT file.
Features
Waveform View A section that renders the "timeline" which show the waveform as well as a needle showing the current location
Transcript View A scrollable view that shows the contents of the SRT. As the audio is playing (or paused) at any particular location, the relevant text from the transcript should be highlighted showing the current location. Allow for an edit mode to fix transcriptions. With vim style interactions. If vim can be incorperated itself then eve better.
Keyboard Navigation
- When the waveform view is the active view, move forward and back in the audio with
left,right,h, andl. - When the transcript view is active, use vim binding to move around. Including
ito enter interactive/edit mode. - Use
ctrl + jandctrl + kto move between wave form and transcript mode.
Layout The two views will stack vertically on top of each other, with the waveform being on top. Not too much vertical room is needed for the waveform. The trascript section will take up the rest of the vertical space and will be scrollable.
There will be a small section at the top with the absolute path to the audio file and to the SRT file.
Workflow
Application launched with
playback ./audioFileName -t ./transcriptFileName.srt
-t stands for transcript and it is optional. If -t is not provided the system will first try to find a file in the same
directory as the audio file that is also named the same except with an srt extension. If that is not found them the application
will launch with no transcript.
No Transcript Mode
The app can function perfectly fine with no transcript. The user can play, pause, rewind, fast forward, no issue. In this mode,
the application will actually create a stand in, empty transcript with a formualted name of sameNameOfFile.srt.tmp in the system /tmp
folder. The user will be able to edit this file in the editor and save it (using the vim commands when not in edit mode). If the user
saves the file and it is one of these temp files, then it will make a new file in the dir of the audio file named sameNameOfFile.srt
The tmp transcript will be mostly empty, other than message about no transcript was found and a temproary file was made, which they can
edit here, and what it will be saved as. Also the file will inform them about the transcribe tool found at
https://git.beitzah.net/ysandler/transcribe. It will also inform them about how to launch with a srt file is the mistakenly didn't
include it
Configuration
- config file is found at
~/.config/playback
Tech stack
I want to build as much as possible in Golang.
I want to have versioning with a file called VERSION that just contains the version value
I want to use make to build
I want an install.sh script that creates a desktop registry for app launchers (only worrying about linux right now)