Giter Site home page Giter Site logo

summarize's Introduction

About

A simple CLI tool to summarize audio files. Uses the OpenAI whisper API to transcribe the audio to text and then the OpenAI ChatGPT API to summarize the text.

Installation

Using cargo

If you already have Rust installed, you can install using cargo

cargo install summarize

Using homebrew

brew tap mcdallas/summarize
brew install summarize

Github Release

just grab the latest release for your OS

Usage

The $OPENAI_API_KEY environmental variable is required. You can create an API key at https://platform.openai.com/account/api-keys

# download an audio file
> yt-dlp --extract-audio https://www.youtube.com/watch\?v\=hzSbR4BeOOM --audio-format mp3 -o buffet.mp3
[youtube] Extracting URL: https://www.youtube.com/watch?v=hzSbR4BeOOM
[youtube] hzSbR4BeOOM: Downloading webpage
[youtube] hzSbR4BeOOM: Downloading android player API JSON
[info] hzSbR4BeOOM: Downloading 1 format(s): 251
[download] Destination: buffet.webm
[download] 100% of   10.94MiB in 00:00:01 at 10.08MiB/s
[ExtractAudio] Destination: buffet.mp3
Deleting original file buffet.webm (pass -k to keep)

# summarize the audio file
> summarize buffet.mp3
Volatility does not measure risk, according to Warren Buffett and Charlie Munger.
They argue that volatility, as measured by data, is mathematically useful but wrong when it comes to risk.
Instead, risk should be assessed based on the nature of the business, capital structure, and the price paid.
They criticize the notion of risk-adjusted returns and say that finance professors have mixed up 
volatility with risk, leading to a lot of "foolish mathematics." The key to successful investing is understanding the 
economics of the business and not paying too much to buy into it. 
The stock market's volatility is an advantage for investors as it creates more opportunities for mispricing

summarize's People

Contributors

mcdallas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

summarize's Issues

Fails to create summary

I call the application summarize.exe test.mp3, and this is what I get (I'm on Windows and used the latest binary).

thread 'main' panicked at 'Could not make request to API: error decoding response body: missing field `text` at line 8 column 1

Caused by:
    missing field `text` at line 8 column 1', src/main.rs:26:51
stack backtrace:
   0:     0x7ff623bbe9c0 - std::backtrace_rs::backtrace::dbghelp::trace::h9df05469349fc7d4
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\..\..\backtrace\src\backtrace/dbghelp.rs:98:5
   1:     0x7ff623bbe9c0 - std::backtrace_rs::backtrace::trace_unsynchronized::hf06281ed672599a5
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\..\..\backtrace\src\backtrace/mod.rs:66:5
   2:     0x7ff623bbe9c0 - std::sys_common::backtrace::_print_fmt::hf62e62818ba43095
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\sys_common/backtrace.rs:66:5
   3:     0x7ff623bbe9c0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf4f2cece63ea17af
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\sys_common/backtrace.rs:45:22
   4:     0x7ff623c178da - core::fmt::write::h9fff2e3b59e4f73a
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\core\src\fmt/mod.rs:1198:17
   5:     0x7ff623bb07f3 - std::io::Write::write_fmt::h5b49514cbac34265
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\io/mod.rs:1672:15
   6:     0x7ff623bc1e79 - std::sys_common::backtrace::_print::hbacb5fcfe9de2dd1
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\sys_common/backtrace.rs:48:5
   7:     0x7ff623bc1e79 - std::sys_common::backtrace::print::h232d03d5b5b63fe9
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\sys_common/backtrace.rs:35:9
   8:     0x7ff623bc1e79 - std::panicking::default_hook::{{closure}}::h5c0e18d7fc45dc64
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:295:22
   9:     0x7ff623bc1af7 - std::panicking::default_hook::hfd969b1708bf8fa3
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:314:9
  10:     0x7ff623bc2597 - std::panicking::rust_panic_with_hook::he4bb25af64d5d04a
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:698:17
  11:     0x7ff623bc2495 - std::panicking::begin_panic_handler::{{closure}}::h65f8246da8a27a59
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:588:13
  12:     0x7ff623bbf657 - std::sys_common::backtrace::__rust_end_short_backtrace::hf18e7dda224d87c9
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src\sys_common/backtrace.rs:138:18
  13:     0x7ff623bc21c9 - rust_begin_unwind
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:584:5
  14:     0x7ff623c14115 - core::panicking::panic_fmt::h0a6f4c9602b2995e
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\core\src/panicking.rs:142:14
  15:     0x7ff623c144e3 - core::result::unwrap_failed::h2e304cab02964fb5
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\core\src/result.rs:1814:5
  16:     0x7ff62385b808 - summarize::main::h6d88438ef85c67c7
  17:     0x7ff62384c296 - std::sys_common::backtrace::__rust_begin_short_backtrace::hce52557dae2e6e2b
  18:     0x7ff6238583cc - std::rt::lang_start::{{closure}}::h5f791625e3fdb7f1
  19:     0x7ff623ba07d0 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h6f075eb460450038
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\core\src\ops/function.rs:280:13
  20:     0x7ff623ba07d0 - std::panicking::try::do_call::h149ec582fd0a7ba0
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:492:40
  21:     0x7ff623ba07d0 - std::panicking::try::hae9155b2e2bc0764
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:456:19
  22:     0x7ff623ba07d0 - std::panic::catch_unwind::he89bd781fc6ba54a
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panic.rs:137:14
  23:     0x7ff623ba07d0 - std::rt::lang_start_internal::{{closure}}::he2e06f4db4344c73
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/rt.rs:128:48
  24:     0x7ff623ba07d0 - std::panicking::try::do_call::h7048c946eccfa1ee
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:492:40
  25:     0x7ff623ba07d0 - std::panicking::try::h6e19717b3cfc2294
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panicking.rs:456:19
  26:     0x7ff623ba07d0 - std::panic::catch_unwind::h0af78ce9d2020dc8
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/panic.rs:137:14
  27:     0x7ff623ba07d0 - std::rt::lang_start_internal::h8c6507a67364854c
                               at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library\std\src/rt.rs:128:20
  28:     0x7ff62385c348 - main
  29:     0x7ff623841363 - __tmainCRTStartup
  30:     0x7ff6238413d2 - mainCRTStartup
  31:     0x7fff7243257d - <unknown>
  32:     0x7fff73d0aa78 - <unknown>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.