Package: wscribe
Table of ContentswscribeGetting startedInstallationUsageNumbersRoadmapProcessing BackendsTranscription FeaturesInference interfacesAudio sourcesDistributionContributingTestingwscribeGetting startedwscribeis yet another easy to use front-end forwhisperspecifically for transcription. It aims to be modular so that it can support multiple audio sources, processing backends and inference interfaces. It can run both on CPU and GPU based on the processing backend. Once transcript is generated, editing/correction/visualization of the transcript can be done manually with thewscribe-editor.It was created atsocharabecause we have a large volume of audio recordings that need to be transcribed and eventually archived. Another important need was that we needed to verify and manually edit the generated transcript, I could not find any open-source tool that checked all the boxes. Suggested workflow is generating word-level transcript(only supported injsonexport) and then editing the transcript with thewscribe-editor.Currently, it supports the following. Checkroadmapfor upcoming support.Processing backend:faster-whisperAudio sources: Local files (Audio/Video)Inference interfaces: Python CLIFile exports: JSON, SRT, WebVTTInstallationThese instructions were tested onNixOS:Python3.10andArchLinux:Python3.10but should work for any other OS, if you face any installation issues please feel free tocreate issues. I’ll try to put out a docker image sometime.Set required env varWSCRIBE_MODELS_DIR: Path to the directory where whisper models should be downloaded to.export WSCRIBE_MODELS_DIR=$XDG_DATA_HOME/whisper-models # exampleDownload the modelsRecommendedRecommended way for downloading the models is to use thehelper script, it’ll download the models toWSCRIBE_MODELS_DIR.cd /tmp # temporary script, only needed to download the models
curl https://raw.githubusercontent.com/geekodour/wscribe/main/scripts/fw_dw_hf_wo_lfs.sh
chmod u+x fw_dw_hf_wo_lfs.sh
./fw_dw_hf_wo_lfs.sh tiny # other models: tiny, small, medium and large-v2ManualYou can download the models directlyfrom hereusinggit lfs, make sure you download/copy them toWSCRIBE_MODELS_DIRInstall wscribeAssuming you already have a workingpython>=3.10setuppip install wscribeUsage# wscribe transcribe [OPTIONS] SOURCE DESTINATION

# cpu
wscribe transcribe audio.mp3 transcription.json
# use gpu
wscribe transcribe video.mp4 transcription.json --gpu
# use gpu, srt format
wscribe transcribe video.mp4 transcription.srt -g -f srt
# use gpu, srt format, tiny model
wscribe transcribe video.mp4 transcription.vtt -g -f vtt -m tiny
wscribe transcribe --help # all help infoNumbersThese numbers are from machine under normal web-browsing workload running on a single RTX3050Audio conversion takes around 1sAlso checkthis explanation about the speed difference.devicequantmodeloriginal playbacktranscriptionplayback/transcriptioncudafloat16tiny6.3m0.1m68xcudafloat16small6.3m0.2m29xcudafloat16medium6.3m0.4m14xcudafloat16large-v26.3m0.8m7xcpuint8tiny6.3m0.2m25xcpuint8small6.3m1.3m4xcpuint8medium6.3m3.6m~1.7xcpuint8large-v26.3m3.6m~0.9xRoadmapProcessing Backendsfaster-whisperwhisper.cppWhisperX, diarization is something to look forward toTranscription FeaturesAdd support fordiarizationAdd translationAdd VAD/other de-noising stuff etc.Add local llm integration withllama.cppor something similar for summary andothe possible things. It can be also used to generate more accurate transcript. Whisper mostly generates sort of a subtitle, forconvertingsubtitleinto transcriptionwe need to group the subtitle. This can be done in various ways. Eg. By speaker if diarization is supported, by time chunks etc. By using LLMs or maybe other NLP techniques we’ll also be able to do this with things like break in dialogue etc. Have to explore.Inference interfaces[-] Python CLIBasic CLIImprove summary statisticsREST endpointBasic server to run wscribe via an API.Possibly add glue code to expose it via CFtunnels or something similarAudio sourcesLocal filesYoutubeGoogle driveDistributionPython packagingDocker/PodmanPackage for NixPackage for Arch(AUR)ContributingAll contribution happens through PRs, any contributions is greatly appreciated, bugfixes are welcome, features are welcome, tests are welcome, suggestions & criticism are welcome.Testingmake testSee other helper commands inMakefile