Jupiter Search

Crates.io MIT licensed APACHE 2 licensed Build Status

A showcase for indexing jupiter network podcasts using meilisearch. This repository is build in order to provide possible solution to following problems:

DISCLAIMER!

Warning! This is a work in progress version to showcase how indexing/transcription might work.

Overview

Project contains two main modules:

Building

To build you would need following packages on your system:

There is a nix flake configured to ship build dependencies just run direnv allow and run:

shell git submodule update --init --recursive cargo build --release

To appease the gods of good taste please add following pre commit hook:

git config --local core.hooksPath .githooks

Usage

Run downloading podcasts

Process audio from RSS feed

  1. Download the whisper model

```shell mkdir models

this might be one of:

"tiny.en" "tiny" "base.en" "base" "small.en" "small" "medium.en" "medium" "large"

model=medium.en curl --output models/model.bin https://ggml.ggerganov.com/ggml-model-whisper-$model.bin ```

  1. Run the inference on the RSS feed

```shell

get information about the cli

docker run flakm/podcast2text --help

docker run \ -v $PWD/models:/data/models \ flakm/podcast2text \ rss https://feed.jupiter.zone/allshows ```

Install meilisearch

shell docker pull getmeili/meilisearch:v0.29 docker run -it --rm \ -p 7700:7700 \ -e MEILI_MASTER_KEY='MASTER_KEY'\ -v $(pwd)/meili_data:/meili_data \ getmeili/meilisearch:v0.29 \ meilisearch --env="development"

Run index creation and data loading

Running inference of some audio

  1. Download whisper model

``` mkdir models

this might be one of:

"tiny.en" "tiny" "base.en" "base" "small.en" "small" "medium.en" "medium" "large"

model=medium.en curl --output models/ggml-$model.bin https://ggml.ggerganov.com/ggml-model-whisper-$model.bin ``` 2. Download the example audio from rss feed

curl https://feed.jupiter.zone/link/19057/15745245/55bb5263-04be-43a3-8b92-678072a9cfc8.mp3 -L -o action.mp3

  1. Install ffmpeg and put it on PATH variable.

  2. Run the inference example

cargo run --release --example=get_transcript -- models/ggml-medium.en.bin action_short.wav | tee output.txt