- Uses various
openai-whisperbased models to transcribe audio or video files. - Runs locally.
- Outputs into a clean .cha file by utterance.
- As always, TRUST NOTHING GENERATED BY AI, and always verify
See the installation section for detailed step by step instructions.
- Internet (for install and download of AI models to be run locally)
- FFMPEG (should be available via environment PATH)
- GIT (should be available via environment PATH)
- PYTHON 3.11+ (should be available via environment PATH)
- Huggingface key/account (for download of AI models to be run locally)
- [Optional] CUDA (requires NVIDIA GPUs, for faster runtime)
-
Internet
- For installation of the transcriber
- For the AI model download - on the first time you use a model
-
Python 3.11+:
- Download and install python here: https://www.python.org/downloads/
- Tested on 3.11, 3.12, and 3.13
- If using the installer, use the following configuration options:
- Click on
ModifyorCustomize installation(whichever one you see) - Select
Add python.exe to PATH(for ease of use) - Select
pip(to install pip) - Select
tcl/tk and IDLE(to install tkinter) - Select
Add python to environment variables(might be on the second page) - Select
Download debugging symbols(might be on the second page) - Reccomended to select
Install Python for all users(might be on the second page)
- Click on
- You might need to restart your computer here if it prompts you for it
- NOTE: If you already have python installed, make sure you have tkinter tcl/tk installed!
- Check by running the command:
python -m tkinterIf a window pops up, you have it installed and can continue to the next requirement step! - To install:
- MacOS:
- Run the command:
brew install python-tk
- Run the command:
- Windows:
- Download the installer for the version of python you currently have and follow the installation configuration.
python --version
- Download the installer for the version of python you currently have and follow the installation configuration.
- MacOS:
- Check by running the command:
-
GIT:
-
Check to see if you have git installed by running the command:
git --versionorpython -c 'command="git"; import shutil; path = shutil.which(command); print(f"{command} installed @ {path}" if path else f"{command} is not installed or cannot be found!")'If you do have git, you can skip to the next requirement.
-
See here for detailed guide on installing git or skip to the section for your OS: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git#main
-
MacOS:
- Install the Xcode Command Line Tools. On Mavericks (10.9) or above, start by checking to see if you have it installed already by running the following command:
git --versionIf you don’t have it installed already, it should prompt you to install it. If it does not, see the detailed guide on installing git above.
- Install the Xcode Command Line Tools. On Mavericks (10.9) or above, start by checking to see if you have it installed already by running the following command:
-
Windows:
- Automatic install with command line:
winget install -e --id Git.Git - Or manual install git for windows from the offical git website: https://git-scm.com/downloads/win
- Click on the first install link. It should look like the following
Click here to download the latest (##.##.##) x64 version of Git for Windows.
- When installing, use the default configuration for all steps except:
- Choosing the default editor used by Git: Select an application that you already have for ease of use, recomended to select "Use Notepad as Git's default editor".
- Configure line ending conversions: Choose "checkout as-is, commit Unix Style line endings".
- Configure extra options: Select "Enable symbolic links" - checking this here might allow you to skip one of the install steps later on.
- Click on the first install link. It should look like the following
- Automatic install with command line:
-
Linux:
sudo apt install git-all
-
-
FFMPEG:
- Check to see if you have FFMPEG installed by running the command:
ffmpeg -versionorpython -c 'command="ffmpeg"; import shutil; path = shutil.which(command); print(f"{command} installed @ {path}" if path else f"{command} is not installed or cannot be found!")' - MacOS: install ffmpeg to be made available by the command line
brew install ffmpeg
- Windows:
- Automatic install with command line:
winget install ffmpeg - OR manual install here instant download link to zip file or follow the instructions on the offical ffmpeg webiste here https://ffmpeg.org/download.html.
- Automatic install with command line:
- Check to see if you have FFMPEG installed by running the command:
-
CUDA
- If you can, use CUDA to increase performance when running the AI.
- NOTE: You will need a NVIDIA GPU for this.
- Install CUDA
- If this sounds like gibberish to you, it is safe to skip this step. Your AI models will run off of your CPU.
-
Python's tkinter needs to be installed
- If you installed python with the installer and selected the tk/tcl and IDLE options, you should have this step completed already.
- MacOS:
- Run the command:
brew install python-tk
- Run the command:
- Windows:
- See the install Python 3.11+ step and download the installer for the version of python you currently have.
python --version
- See the install Python 3.11+ step and download the installer for the version of python you currently have.
-
If on windows and did not select the
"enable symbolic links"option when installing GIT, do the following: -
The Transcriber: Now that you have all of the requirements installed we will install the Transcriber from git
-
Open your choice terminal window
- Reccomended to use
Powershellorgit bashon windows, use default terminal on Mac/linux
- Reccomended to use
-
use "cd" to change directory to where you want to install the transcriber example: to your Documents folder:
cd ~/Documents -
Clone the Transcribble repo:
git clone https://github.com/Noah-Jaffe/Transcribble.gitNOTE: If you get the error:fatal: destination path 'Transcribble' already exists and is not an empty directory., you will need to either delete the existing Transcribble folder, or rename the existing one. Or install to a custom directory by replacing NEW_FOLDER_NAME in the following command:git clone https://github.com/Noah-Jaffe/Transcribble.git NEW_FOLDER_NAME. -
Enter the Transcribble directory in the terminal
cd Transcribbleorcd ~/Documents/Transcribble -
Setup a python virtual environment if you want, skip this step if you are unfamiliar.
python -m venv .venv -
Install python packages with the command:
pip install -r requirements.txt- If the pip install fails try installing each package one at a time, by line as it is written in the requirements.txt file.
- If that fails, report the issue to the maintainer or your point of contact
- The only requirements not in the txt files are
torchtorchaudioandtorchvision(continue reading...)
-
Install requirements not in the requirements.txt
- If you are using CUDA:
- You may need to
pip uninstall torch torchaudio torchvisionbefore doing this next step. - See here to reinstall
torchtorchaudioandtorchvisionwith your appropriate build: https://pytorch.org/get-started/locally/- Example for if you have a CUDA compatible device for 12.6 you would run:
pip install torch torchvision torchaudio --no-cache -U --index-url https://download.pytorch.org/whl/cu126
- Example for if you have a CUDA compatible device for 12.6 you would run:
- You may need to
- Otherwise if you dont have a CUDA compatible GPU or dont know what that means then run the next line:
pip install torch torchaudio torchvision
- If you are using CUDA:
-
Put your Huggingface token in a file named
.hftoken..hftokenonly,.hftoken.txtwill not work
- Generating the token:
- You may need to create a huggingface account, you can skip all the optional steps except for verifying your email.
- You can name the token anything on the setup page, just save the resulting token to a file called
.hftokento your machine. - When asked to setup the token permissions, please note that the token does not need any special permissions and you can deselect all of the options.
-
If you want to make a one click startup script, you could do so now.
- Example for windows:
Save anywhere as "
Transcribe.ps1"cd ~/Documents/Transcribble # if you used a virtual environment uncomment the next line (remove the #) #./venv/Scripts/activate python main.py
- Example for Mac/Linux
Save anywhere as "
Transcribe.sh"You may need to run#!/bin/bash cd ~/Documents/Transcribble # if you used a virtual environment uncomment the next line (remove the #) # source .venv/bin/activate python main.pychmod +x Transcriber.shon the new .sh file to give it permissions to execute - NOTE: You might need to do some additional research for how to do this properly for your machine.
- Example for windows:
Save anywhere as "
-
-
Continue to the using Transcribble step.
- Start the application
- If using a virtual environment start/activate that now. See here
- Run the program with
python ./main.py - Or use your one click script file.
- Select files (button) to be transcribed.
- Set the number of speakers in the number box.
- [Optional] Set the language (if not english).
- Select AI model to use from the drop down.
- Hover over the drop down to see some selection guidance. Choose one that your device can handle.
- Read more about the models here.
- Start transcript (button).
- Wait for final results popup to appear. Your transcribed files should automatically open as they are completed.
- Review resulting transcripts.
Please see the CITATION file for citing this work.
Jaffe, N., & Lurie, S. (2025). Jaffe-Lurie Transcribble [Computer software]. GitHub. https://github.com/Noah-Jaffe/Transcribble
If you followed the instructions on this readme file, or installed this repo with git:
- Enter the Transcribble directory in the terminal
cd Transcribbleorcd ~/Documents/Transcribble - Update to the latest version with the following commands:
git pull - Re-install the latest requirements
- If using a virtual environment start/activate that now if it is not already activated. See here
- reinstall pip requirements
- [Optional] Check the readme, changelog, or release notes to see if there is anything else you need to change.
- Send as much relevant info to the maintainer such as:
- the terminal logs
- screenshots of what is wrong
- explinations for what was expected to happen
- .cha file (you can remove sensitive information from the transcripts, but leave the @debug lines)
De-select the Debug checkbox before clicking the start transcribe button.
See function transcribe_file in transcribe_proc.py.
In function transcribe_file in transcribe_proc.py:
Uncomment the line inside the pipeline_activity variable array:
# morphosyntax,
so that it looks like
morphosyntax,
See the __doc__ in the transcribe_proc.py file.
Run python splitfile.py
- Select the files to be split
- Input the number of seperations and the seconds of overlap between each split file
- Click split file
- Find the output files next to the input files as
<file_name>.#.<ext>- e.g. Input file
myfile.mp3split into 2 files will result in files:myfile.1.mp3myfile.2.mp3(the original file will not be changed or moved)
- e.g. Input file
If you run into the following errors specifically in the Whisper (Step 1), know that this is an error of the AI and may not entirely be in our control.
TypeError: '<=' not supported between instances of 'NoneType' and 'float'
TypeError: '>' not supported between instances of 'NoneType' and 'float'
One patch for this is to use python package transformers==4.38.2.
To attempt patch #1:
- If using a virtual environment start/activate that now. See here
- Run
pip install transformers==4.38.2
If you are already using this version of transformers, I'm sorry but the only known workaround is to split up the original file into smaller segments, and then run the smaller segments through the transcriber again. Eventually you may hit a small section of the original audio file that crashes constantly, for that you will have to transcribe by hand.
Note that this issue should be fixed as of Transcribble release 1.1.1!
- Advanced/Runtime configuration of AI parameters?
- multiple times or using different models?
- note that you can do this by scripting something to use the transcribe_proc.py. See the file for how to pass values.
- Bundle into single executable to be more user friendly?
- Select subframe of time to transcribe from?
- Better error handling
- Checkboxes for pipeline steps?
- Research Inter-sentential code-switching
- Custom setup for auto run script on output .cha file?
- Remove reliance on batchalign?


