Přeskočit obsah

Speech to Text aneb jak na Linuxu diktovat do libovolné aplikace

Cíl

Na Ubuntu 24.04 chci rozběhnout open-source aplikaci WhisperWriter.

A small dictation app using OpenAI's Whisper speech recognition model.

K čemu je to dobré

Výsledek vypadá takhle:

demo animace

Zmáčknu klávesovou zkratku (třeba Ctrl + Shift + mezerník) a mikrofon začne nahrávat co říkám. Když klávesovou zkratku pustím, aplikace vypíše do libovolného(!) místa, ve kterém bliká kurzor, přepis řečeného. Diktovat je možné česky, anglicky a v mnoha dalších jazycích.

Postup instalace

V oficiálním postupu to není uvedeno, ale na mém Ubuntu a pro Python 3.11 byly pro úspěšné spuštění aplikace potřeba tyhle balíčky:

# sudo apt install --reinstall libbrotli1=1.1.0-2build2
sudo apt install libcairo2-dev libgirepository1.0-dev

Víc tu.

A pak už postupuji podle dokumentace (jen používám uv):

mkdir -p ~/opt/whisper-writer/ && cd $_
git clone https://github.com/savbell/whisper-writer src && cd $_
uv venv
uv pip install -r requirements.txt pycairo PyGObject

Při prvním spuštění pomocí uv run ./run.py se zobrazí tohle okno pro nastavení aplikace:

nastavení

Aplikaci je možné spouštět takhle:

cd ~/opt/whisper-writer/src/ && uv run ./run.py

Volba modelu

Místo Whisper modelů stažených do počítače, které pro češtinu vrací nepřesvědčivé výsledky (alespoň na mém PC), jsem šel cestou placeného modelu whisper-large-v3-turbo od firmy Groq (https://groq.com/pricing/). Stojí přibližně 1 CZK ($0.04) za hodinu diktování (zdroj). To je 9x méně než kolik stojí Whisper od OpenAI ($0.04 vs $0.36).

Takže v nastavení aplikace jsem vyplnil:

model: whisper-large-v3-turbo
base url: https://api.groq.com/openai/v1
api key: tajný klíč z https://console.groq.com/keys

Víc případně tu.

Vytvoření spouštěče v menu

V Ubuntu mám aplikaci MenuLibre, v které je možné snadno spravovat položky v menu.

Vytvořil jsem pro WhisperWriter spouštěč ~/.local/share/applications/menulibre-whisper-writer.desktop, který obsahuje:

[Desktop Entry]
Version=1.1
Type=Application
Name=whisper-writer
Icon=microphone
Exec=uv run ./run.py
Path=/home/jan/opt/whisper-writer/src/

Bylo potřeba uvést plnou cestu /home/jan/opt/whisper-writer/src/, s ~/opt/whisper-writer/src/ se aplikace odmítala spustit.

Může se hodit

Další aplikace, na které jsem narazil při rešerši.

dsnote

https://github.com/mkiol/dsnote

Speech Note Linux app. Note taking, reading and translating with offline Speech to Text, Text to Speech and Machine translation.

  • Takhle vypadá.
  • Umožňuje diktovat, ale ne do libovolné aplikace.
  • Používá model whisper.cpp a další.

dictation.io

https://dictation.io/speech

  • Velmi jednoduché diktování zdarma.
  • Přímo v internetovém prohlížeči, bez instalace.
  • Funguje jen v Google Chrome. Umí i příkazy jako nový řádek, čárka, atd.
  • Podobná aplikace: https://speechnotes.co/dictate/. Ta ale neumí diktovat interpunkci.

nerd-dictation

https://github.com/ideasman42/nerd-dictation

Simple, hackable offline speech to text - using the VOSK-API.

This is a single file Python script with minimal dependencies.

TalkTastic

https://talktastic.com

Write with your voice in any app on macOS.

  • Na okraj: aplikace pro macOS.
  • Zatím zdarma („TalkTastic is 100% free to use while in Beta.“).
  • Ještě jedna podobná pro macOS: superwhisper (placená).

Závěr

Kombinace aplikace WhisperWriter a modelu whisper-large-v3-turbo od firmy Groq funguje skvěle!