Try the demo at https://paperwave.app
This repository contains the source code for the PaperWave CLI. PaperWave was developed as research project. You can read the paper here.
Webapp is available at PaperWave Web.
Yuchi Yahagi, Rintaro Chujo, Yuga Harada, Changyo Han, Kohei Sugiyama, and Takeshi Naemura. 2024. PaperWave: Listening to Research Papers as Conversational Podcasts Scripted by LLM. https://doi.org/10.48550/arXiv.2410.15023
@misc{Yahagi.2024.PaperWaveListeningResearchPapers,
title = {PaperWave: Listening to Research Papers as Conversational Podcasts Scripted by LLM},
author = {Yahagi, Yuchi and Chujo, Rintaro and Harada, Yuga and Han, Changyo and Sugiyama, Kohei and Naemura, Takeshi},
year = {2024},
number = {arXiv:2410.15023},
eprint = {2410.15023},
publisher = {arXiv},
doi = {10.48550/arXiv.2410.15023},
}
LGPL-3.0. See LICENSE, COPYING, and COPYING.LESSER for more information.
Recommended package manager for PaperWave CLI is pnpm, but you may use other package managers.
- Install pnpm using standalone script
- You can use
pnpm env
to switch between Node.js versions by pnpm if you install by standalone script
- You can use
- Restart your terminal app
- Install Node.js v20 (LTS)
pnpm env use --global lts
- Install corepack
pnpm add -g corepack
- Clone this repository
git clone https://github.com/nae-lab/paperwave-cli.git
- Change directory to the repository
cd paperwave-cli
- Edit the
.env
file to set your API key
- Edit the
- Install dependencies
pnpm install
Type the following command to get the list of available options:
pnpm main --help
- You can place your BGM and PDF files at any folder (e.g.
assets/
)
pnpm main --llm-model="gpt-4o" --tts-concurrency=15 --assistant-concurrency=5 --bgm="assets/podcast-jazz-music.mp3" --bgm-volume=0.25 --minute=15 --papers="assets/Yahagi_et_al_2020_Suppression_of_floating_image_degradation_using_a_mechanical_vibration_of_a.pdf"
In addition to the CLI setup, you need to set up the following:
- Place firebase service account key file at
./paperwave-firebase-adminsdk.json
- Set up the environment variables
- Edit the
.env
file to set your key file path - Set firestore collection ids in the
.env
file
- Edit the
pnpm server --help
pnpm server --log=debug
You can build and run the PaperWave CLI and server using Docker.
- grep
- cut
In addition to the CLI and server setup, you need to set up the following:
- Set up the environment variables
- Edit the
.env
file to set your Docker registry (e.g. region-docker.pkg.dev/project-name/repo-name/image-name)
- Edit the
Before buliding the docker image, you need to increment the version in the package.json
file.
pnpm docker:build # Build docker image
pnpm docker:push # Push docker image to registry
# ! create-gce-with-container.sh is not included in the repository!
./scripts/create-gce-with-container.sh dev|production # Create GCE instance with the pushed image