Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Speech-to-Text interface for Emacs using OpenAI's whisper model and whisper.cpp as inference engine.
| Date | Stars |
|---|---|
| 2026-07-31 | 266 |
| 2026-08-04 | 266 |
| 2026-08-06 | 266 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
#+STARTUP: showeverything
** whisper.el
Speech-to-Text interface for Emacs using OpenAI's [[https://github.com/openai/whisper][whisper speech recognition model]]. For inference, it uses the C/C++ port [[https://github.com/ggerganov/whisper.cpp][whisper.cpp]] that can run on consumer grade CPU without requiring a high end GPU.
You can capture audio with your input device (microphone) or choose a media file on disk, and have the transcribed text inserted into your Emacs buffer, optionally after translating to English from your local language. This runs offline without having to use non-free cloud services (though quality varies depending on the [[https://github.com/openai/whisper#available-models-and-languages][language]]).
*** Install and Usage
Aside from Git, a C++ compiler and CMake (to build whisper.cpp), the system needs to have =FFmpeg= for recording audio.
You can install =whisper.el= by cloning this repo somewhere, and then use it like:
#+begin_src elisp
(use-package whisper
:load-path "path/to/whisper.el"
:bind ("C-H-r" . whisper-run)
:config
(setopt whisper-install-directory "/tmp/"
whisper-model "base"
whisper-language "en"
whisper-translate nil
whisper-cursor-return 'start
whisper-use-threads (/ (num-processors) 2)))
#+end_src
Or from Emacs 29.1 onwards you can install a package directly from vc source:
#+begin_src elisp
(use-package whisper
:vc (:url "https://github.com/natrys/whisper.el" :branch "master"))
#+end_src
The entry points of this package are these two functions:
- =whisper-run=: Toggle between recording from your microphone and transcribing
- =whisper-file=: Same as before but transcribes a local file on disk
Invoking =whisper-run= with a prefix argument (C-u) has the same effect as =whisper-file=.
Both of these functions will automatically compile whisper.cpp dependency and download language model the first time they are run. When recording is in progress, invoking them stops it and starts transcribing. Otherwise if compilation, download (of model file) or transcription job is in progress, calling them again stops that.
Additionally, =whisper-select-language= function lets you set your language interactively.
_Note for MacOS users_: If whisper.el is failing silently, it might be because Emacs doesn't have the permission to use the Mic. Follow one of the [[https://github.com/natrys/whisper.el/wiki/MacOS-Configuration#grant-emacs-permission-to-use-mic][recipes]] in wiki to grant it explicitly.
*** Variables
- =whisper-install-directory=: Location where whisper.cpp will be installed. Default is =~/.emacs.d/.cache/=.
- =whisper-language=: Specify your spoken language; default is =en=. For all possible short-codes (ISO 639-1): [[https://github.com/ggerganov/whisper.cpp/blob/aa6adda26e1ee9843dddb013890e3312bee52cfe/whisper.cpp#L31][see here]]. You can also set it to =auto= to allow whisper.cpp to infer the language from first 30 seconds of audio. Note that you can set this interactively with =whisper-select-language= function too.
- =whisper-model=: Which language model to use. Default is =base=. Valid values are: tiny, base, small, medium, large-v1, large-v2, large-v3, large-v3-turbo. Bigger models are more accurate, but takes more time and more RAM to run (aside from more disk space and download size), see: [[https://github.com/ggerganov/whisper.cpp#memory-usage][resource requirements]]. Note that tiny, base, small and medium come with =.en= variants (e.g. =small.en=) that might be faster, but are for English only.
- =whisper-translate=: Default =nil= means transcription output language is same as spoken language. Setting it to =t= translates it to English first.
- =whisper-use-threads=: Default =nil= means let whisper.cpp choose appropriate value (which it sets with formula min(4, num_of_cores)). If you want to use more than 4 threads (as you have more than 4 cpu cores), set this number manually.
Additionally, depending on your iExcerpt of 16,181 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:5276ce542e11dd3e, desc:inference engine