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:
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:
Aplikaci je možné spouštět takhle:
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
- 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.
- Používá modely VOSK.
- Existuje i GUI napsané v Pythonu.
- Nepodporuje diktování interpunkce.
- DEMO.
- Nezkoušel jsem.
TalkTastic
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!