Skip to content

eufmike/catshand

Repository files navigation

Catshand (Cat's Hand)

Current Audacity support: 3.6.1

Catshand (Cat's Hand) is a toolbox designed for audio editing and production in the team of Tripod Cat's Podcast. Catshand is named after the Japanese idiom "猫の手も借りたい", which means "so busy someone wants to borrow even the paw of a cat." It simplifies the audio editing process by automating repetitive tasks and integrating with the popular editing tool Audacity. Catshand provides OpenAI-powered transcription and content summary, so users can focus on the creative process, rather than spending time on content searching.

catshand_with_Audacity

Installation

  1. pull this git repository

  2. move to the directory of catshand

  3. create conda environment

    conda create -n catshand -y -c conda-forge python=3.9 ffmpeg 
    ## catshand can be replaced by your-own-env-name
  4. Change conda env

    conda activate catshand
  5. Installation

    # for Mac users
    pip install catshand
    # for Windows users
    pip install "catshand[win]"
  6. Download demo files from this link

  7. Add OpenAI API key to the environment variable to use the transcript generation function and transcript summary. Please visit OpenAI to get the API key and Best Practices for API Key Safety for more details.

    # Windows (in cmd prompt)
    setx OPENAI_API_KEY “<yourkey># Mac
    echo "export OPENAI_API_KEY='<yourkey>'" >> ~/.zshrc
  8. Launch Audacity. Change the setting of Modules to "Enabled". Audacity_Settings

Audio Editing

Catshand divides editing steps into two parts: pre-edit and post-edit. Pre-edit is the preparation process of raw audio files so they are ready for manual editing to remove filler words or undesirable phrases. Post-edit is the process of editing the finalized audio files and applying compressors and music, to make them ready for publishing.

All functions of catshand are implemented in the command line. The following sections will provide an example to jumpstart the usage of catshand. Please visit the manuals for more details.

Pre-edit

  1. (Optional) Download audio materials from Google Drive: link. This step is optional if you are using catshand only for pre-editing. Move the folder to the root directory of catshand.

  2. Create a project folder in the root directory of catshand using the following command:

    catshand prjinit -d <root_dir> -n <project_name> -m <material_dir>
    # example
    catshand prjinit -d /path/to/project/Podcast/ -n EP099 -m /path/to/project/Podcast/material
    # or
    catshand prjinit -d $PWD -n EP099 -m $PWD/material

    Answer the questions in the terminal. The project folder will be created in the root directory of catshand. The project folder will contain the following files:

  3. Download audio files from Google Drive to the project folder. The folder name should be "00_Raw"

  4. Run the following commands in order:

    # convert m4a to wav with filename matching
    catshand audio2wav -p /path/to/project/Podcast/EP099 -m
    
    # launch audacity for manual audio alignment, editing and find splitting timepoint
    # transcript can be generated and load as labels
    # Answer the questions in the terminal
    catshand audacitypipe_prjpre -p /path/to/project/Podcast/EP099/ -t 4
    
    # perform loudness normalization and noise reduction
    catshand audio2wav -p /path/to/project/Podcast/EP099 -i /path/to/project/Podcast/EP099/00_Raw_wav_prjpre -lr -t 4
    
    # remove silence
    catshand silrm -p /path/to/project/Podcast/EP099/ -pz -t 4
    
    # split audio files
    catshand audiosplit -p /path/to/project/Podcast/EP099/ -ts 00:02:00 00:04:00 # split audio files
  5. To split the file after track merging, you can run the following commands:

    # merge audio files into one track 
    # convert to stereo and spatial audio features
    # mergered audio exported to "merged" folder
    catshand trackmerger -p /path/to/project/Podcast/EP099/ -s -sp
    
    # split audio files
    catshand audiosplit -p /path/to/project/Podcast/EP099/ -i /path/to/project/Podcast/EP099/merged -ts 00:02:00 00:04:00 

with editing service

Pre editing

  1. Initiate the project folder

    catshand prjinit -d /path/to/project/Podcast/ -n EP099 -m /path/to/project/Podcast/material
  2. Convert the audio file to wav (even the original file is wav)

    catshand audio2wav -p /path/to/project/Podcast/EP099/ -i /path/to/project/Podcast/EP099/02_To_merge -lr -t 4
  3. Merge each session (multiple tracks) into one track

    catshand trackmerger -p /path/to/project/Podcast/EP099/  -i /path/to/project/Podcast/EP099/02_To_merge_wav_manual -s -v 0 0 4

Post editing

  1. Convert the audio file to wav (even the original file is wav)

    catshand audio2wav -p /path/to/project/Podcast/EP099/ -i /path/to/project/Podcast/EP099/03_Editing_02 -l -t 4 
  2. Create audio metadata using the audio merger

    catshand audmerger -p /path/to/project/Podcast/EP099 -i /path/to/project/Podcast/EP099/03_Editing_02_wav -t 4 -s
  3. Load into Audacity

    catshand audacitypipe -p /path/to/project/Podcast/EP099 -i /path/to/project/Podcast/EP099/03_Editing_02_wav_merged -s -c importrecording importmaterial addmusic
  4. Create transcriptions

    catshand prjsummary -p /path/to/project/Podcast/EP099/ -i /path/to/project/Podcast/EP099/09_export_tran -o /path/to/project/Podcast/EP099/09_export_tran -t 4
  5. Get highlight

    catshand audio2wav -p /path/to/project/Podcast/EP099/ -i /path/to/project/Podcast/EP099/05_Highlight -l
  6. Load all into Audacity

    catshand audacitypipe -p /path/to/project/Podcast/EP099 -i /path/to/project/Podcast/EP099/03_Editing_02_wav_merged -s

About

catshand: a toolbox for podcast editing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published