dsnote

mkiolMPL-2.0活跃维护

Linux 桌面上的离线语音笔记应用,集语音转文字、文字转语音和机器翻译于一体,无需联网即可完成听写、朗读和翻译。

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

v4.9.0发布于 2026-06-28 18:20 UTC1,713star +4 / 7 天77fork同步于 2026-11-10 17:49 UTC

怎么上手

由 README 提炼,执行前请确认
flatpak install flathub net.mkiol.SpeechNote
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求;仅提到 Flatpak 提供可选的 NVIDIA 附加包,说明部分引擎可借助 NVIDIA GPU 加速。

需要 CUDA支持 ROCm / AMD
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Linux 桌面离线语音笔记应用,本地完成语音转文字、朗读与机器翻译

Linux 桌面上的离线语音笔记应用,集语音转文字、文字转语音和机器翻译于一体,无需联网即可完成听写、朗读和翻译。

核心能力

  • 集成 Coqui STT、Vosk、whisper.cpp、Faster Whisper 等多种 STT 引擎
  • 支持 Piper、RHVoice、espeak-ng、Coqui TTS 等多种 TTS 引擎
  • 用 Bergamot 做离线机器翻译,全程不联网
  • 内置图形化模型浏览器,按语言下载所需模型
  • 可编辑 models.json 添加兼容的自定义模型

容易踩的坑

安装包不含模型 checkpoint,需在应用内模型浏览器中按语言单独下载;直接源码构建依赖复杂,官方推荐用 Flatpak 工具链;自定义模型需编辑 models.json 并重启应用生效。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v4.9.0
  1. b4.9.1-1Flatpak Add-on v1.5 pre-compiled binariespre-release2026-09-05 · 2026-09-05 12:03 UTC
    查看更新说明
  2. v4.9.0Speech Note 4.9.0 (Sailfish OS only)最新正式版2026-06-28 · 2026-06-28 18:20 UTC

    The version for Linux desktop will be released at a later date.

    Sailfish OS

    Changes:

    • General
      • Fix: Python dependency blocked the installation on SFOS 5.1
    • Speech to Text
      • Inline timestamps in text output. A new output format is now available, displaying timestamps that show when each segment of text was recognized in the audio. To enable new format set Text format to Inline timestamps. You can also customize the timestamp interval and format in the settings. Inline timestamps option is available only when Subtitles and inline timestamps support is enabled in the settings.
    • Text to Speech
      • New RHVoice models for: Belarusian, Croatian, English, Romanian, Russian
      • Updated RHVoice models for: Czech, Serbian, Spanish
      • New Piper models for: Albanian, Bulgarian, Dutch, Greek, Hindi, Indonesian, Kurdish, Latvian, Polish, Swedish, Telugu, Ukrainian, Urdu
    • User Interface
      • Import a note from a URL. Use the Import a note from a URL option in the main app toolbar to import text content from a link. The URL must use HTTP or HTTPS. For HTML pages, you can choose to extract only the readable text or import the entire page.
      • Setting option to force the English language in the user interface
      • Switch between Notepad and Translator with a tab interface
      • Speech Note has been translated into Portuguese-Brazilian language.

    You can download the packages from OpenRepos.

  3. v4.8.4Speech Note 4.8.42026-04-15 · 2026-04-15 19:28 UTC
    查看更新说明

    Changes:

    • Translator
      • Updated models for: Catalan, Czech, German, Danish, Spanish, Persian, French, Icelandic, Italian, Korean, Dutch, Polish, Portuguese, Tamil, Ukrainian
      • Fix: Translation models cannot be downloaded.
  4. v4.8.3Speech Note 4.8.32025-08-15 · 2025-08-15 15:12 UTC
    查看更新说明

    Linux Desktop

    Changes:

    • General
      • Fix: The model cannot be activated when the license file cannot be downloaded due to an error.
    • Speech to Text
      • Fix: App crashes when WhisperCpp is used on certain CPUs.
    • Text to Speech
      • Fix: The Coqui XTTS model license cannot be downloaded.
    • Translator
      • Fix: App crashes when the translator is used on certain CPUs.
  5. v4.8.2Speech Note 4.8.22025-08-02 · 2025-08-02 18:05 UTC
    查看更新说明

    Linux Desktop

    Changes:

    • Text to Speech
      • New Piper voices for Argentine Spanish, Hindi, Malayalam and Nepali
      • Fix: Using the Coqui TTS engine causes the app to crash on some platforms.
      • Fix: Crash when the TTS engine generates a corrupted audio file
    • Speech to Text
      • New languages enabled in Whisper: Azerbaijani, Belarusian, Kannada, Malayalam, Tamil
    • Flatpak
      • Downgrade numba Python package to 0.60.0 version

    Sailfish OS

    Changes:

    • Text to Speech
      • New Piper voices for Argentine Spanish, Hindi, Malayalam and Nepali
      • Fix: Crash when the TTS engine generates a corrupted audio file
    • Speech to Text
      • New languages enabled in Whisper: Azerbaijani, Belarusian, Kannada, Malayalam, Tamil

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Speech Note

    Linux desktop and Sailfish OS app for note taking, reading and translating with offline Speech to Text, Text to Speech and Machine Translation

    Contents of this README

    Description

    Speech Note let you take, read and translate notes in multiple languages. It uses Speech to Text, Text to Speech and Machine Translation to do so. Text and voice processing take place entirely offline, locally on your computer, without using a network connection. Your privacy is always respected. No data is sent to the Internet.

    Speech Note uses many different processing engines to do its job. Currently these are used:

    Languages and Models

    Speech Note installation package does not include checkpoint files for supported models, but instead they can be easily downloaded using the graphical model browser built into the application.

    Following languages and models are supported and enable for download:

    Lang IDNameDeepSpeech (STT)Whisper (STT)Vosk (STT)April-ASR (STT)Piper (TTS)RHVoice (TTS)espeak (TTS)MBROLA (TTS)Coqui (TTS)Mimic3 (TTS)WhisperSpeech (TTS)Kokoro (TTS)F5-TTSParler-TTSS.A.M. (TTS)Bergamot (MT)
    afAfrikaans●●●
    amAmharic● (e)●●●
    arArabic●●●●●●●
    azAzerbaijani●●
    beBelarusian●●
    bgBulgarian●●●
    bnBengali●●●●
    bsBosnian●●●
    caCatalan●●●●●●●
    csCzech●●●●●●●●●
    cyWelsh●
    daDanish●●●●●
    deGerman●●●●●●●●●(e)●
    elGreek● (e)●●●●●●
    enEnglish●●●●●●●●●●●●●●●
    eoEsperanto●●●
    esSpanish●●●●●●●●●●●(e)●
    etEstonian● (e)●●●●●
    euBasque● (e)●●●
    faPersian●●●●●●●●●
    fiFinnish●●●●●●●
    frFrench●●●●●●●●●●●(e)●
    gaIrish●●
    guGujarati●●●
    haHausa●●
    heHebrew●●
    hiHindi●●●●●
    hrCroatian●●●●●
    huHungarian● (e)●●●●●●●
    idIndonesian● (e)●●●●●
    isIcelandic●●●●●
    itItalian●●●●●●●●●●(e)●
    jaJapanese●●●●●●
    jvJavanese●●
    kaGeorgian●●●●
    kkKazakh●●●●●
    knKannada●●●
    koKorean●●●●●
    kyKyrgyz●●
    laLatin●●
    lbLuxembourgish●
    ltLithuanian●●●●●
    lvLatvian●●●●●●
    mkMacedonian●●●
    mlMalayalam● (e)●●●
    mnMongolian● (e)●●
    mrMarathi●●
    msMalay●●●●
    mtMaltese●●●
    neNepali●●●●
    nlDutch● (e)●●●●●●●●(e)●
    noNorwegian●●●●
    plPolish●●●●●●●●●●●●(e)●
    ptPortuguese● (e)●●●●●●●●(e)●
    roRomanian● (e)●●●●●●
    ruRussian●●●●●●●●
    skSlovak●●●●●●
    slSlovenian● (e)●●●●●
    sqAlbanian●●●●
    srSerbian●●●●●
    svSwedish●●●●●●●●
    swSwahili●●●●●
    taTamil●●●
    teTelugu●●●
    thThai● (e)●●●
    tlTagalog●●●
    tnTswana●●●
    trTurkish● (e)●●●●●●●
    ttTatar●●●●
    ukUkrainian●●●●●●●●●
    uzUzbek●●●●
    viVietnamese●●●●●●
    yoYoruba● (e)●●●
    zhChinese●●●●●●●●●

    (e) experimental, most likely doesn't work well

    Faster Whisper, Qwen3-ASR, Coqui TTS, Mimic3 and Qwen3-TTS models are only available on x86-64.

    Language models can be downloaded directly from the app.

    Details of models which are currently configured for download are described in models.json (GitHub) or models.json (GitLab).

    How to install

    # Flatpak base package
    flatpak install net.mkiol.SpeechNote
    
    # Optional NVIDIA add-on package
    flatpak install net.mkiol.SpeechNote.Addon.nvidia
    
    # Optional AMD add-on package
    flatpak install net.mkiol.SpeechNote.Addon.amd
    
    # Base package
    zypper in speechnote
    
    # Optional support for Python-based features in Speech Note
    zypper in speechnote-python-modules
    

    Flatpak packages

    The app distributed via Flatpak (published on Flathub) consists of the following packages:

    • Base package "Speech Note" (net.mkiol.SpeechNote)
    • Optional add-on for NVIDIA graphics card "Speech Note NVIDIA" (net.mkiol.SpeechNote.Addon.nvidia)
    • Optional add-on for AMD graphics card "Speech Note AMD" (net.mkiol.SpeechNote.Addon.amd)

    Base package includes all the dependencies needed to run every feature of the application. Add-ons add the capability of GPU acceleration, which speeds up some operations in the application.

    Base package and add-ons contain many "heavy" libraries like CUDA, ROCm, Torch and Python libraries. Due to this, the size of the packages and the space required after installation are significant. If you don't need all the functionalities, you can use much smaller "Tiny" package (available on Releases page), which provides only the basic features. If you need, you can also use "Tiny" packages together with GPU acceleration add-on.

    Size comparison between Base, Tiny and Add-ons Flatpak packages:

    SizesBaseTinyAMD add-onNVIDIA add-on
    Download size1.2 GiB48 MiB+7.6 GiB+4.3 GiB
    Unpacked size3.6 GiB170 MiB+34 GiB+9 GiB

    Add-on packages use so-called "extra-data". This means that during installation, several binary modules are downloaded from the original sources and merged with the Flatpak package. Due to this process, additional disk space is temporarily required when installing the add-on. Make sure you have enough disk space on the partition where flatpak applications are installed. When the Flatpak package is installed system-wide (default), the applications are stored in /var/lib/flatpak. In case of user installation (--user), the apps are stored in ~/.local/share/flatpak.

    Disk space required for the installation of the add-on package:

    Add-onSize
    AMD add-on55 GiB
    NVIDIA add-on15 GiB

    Features comparison between Base, Tiny and Add-ons Flatpak packages:

    FeaturesBaseTinyAMD add-onNVIDIA add-on
    Coqui/DeepSpeech STT++
    Vosk STT++
    Whisper (whisper.cpp) STT++
    Whisper (whisper.cpp) STT OpenCL ROCm--+
    Whisper (whisper.cpp) STT OpenCL NVIDIA++
    Whisper (whisper.cpp) STT ROCm--+
    Whisper (whisper.cpp) STT CUDA--+
    Whisper (whisper.cpp) STT Vulkan++
    FasterWhisper STT+-
    FasterWhisper STT CUDA--+
    Qwen3-ASR STT+-
    Qwen3-ASR STT ROCm--+
    Qwen3-ASR STT CUDA--+
    April-ASR STT++
    eSpeak TTS++
    MBROLA TTS++
    Piper TTS++
    RHVoice TTS++
    Coqui TTS+-
    Coqui TTS ROCm--+
    Coqui TTS CUDA--+
    Mimic3 TTS+-
    WhisperSpeech TTS+-
    WhisperSpeech TTS ROCm--+
    WhisperSpeech TTS CUDA--+
    Kokoro TTS+-
    Kokoro TTS ROCm--+
    Kokoro TTS CUDA--+
    Parler-TTS+-
    Parler-TTS ROCm--+
    Parler-TTS CUDA--+
    F5-TTS+-
    F5-TTS ROCm--+
    F5-TTS CUDA--+
    Qwen3-TTS+-
    Qwen3-TTS ROCm--+
    Qwen3-TTS CUDA--+
    S.A.M TTS++
    Punctuation restoration+-
    Translator++

    Beta version

    In addition to the stable version in the Flathub repository, you can try to test the "Beta" version of the upcoming release. This version is usable, but may contain more bugs.

    Beta version is available in "flathub-beta" repository. Follow these instructions to enable flathub-beta on your computer.

    Extra features

    Command-line options

    The CLI interface is primary for the integration with the desktop when Speech Note is already running (for example, hidden in the system tray or in the backgraund).

    Examples

    List all supported options:

    flatpak run net.mkiol.SpeechNote --help
    

    Start listening:

    flatpak run net.mkiol.SpeechNote --action start-listening
    

    Cancel any already started action:

    flatpak run net.mkiol.SpeechNote --action cancel
    

    Start listening, the decoded text will be saved to the clipboard:

    flatpak run net.mkiol.SpeechNote --action start-listening-clipboard
    

    Start listening, the decoded text will be inserted into any window on the desktop on which the cursor is focused:

    flatpak run net.mkiol.SpeechNote --action start-listening-active-window
    

    Start reading "Hello, how are you doing?":

    flatpak run net.mkiol.SpeechNote --action start-reading-text --text "Hello, how are you doing?"
    

    Save speech of "Hello, how are you doing?" to "speech.mp3" file:

    flatpak run net.mkiol.SpeechNote --action start-reading-text --text "Hello, how are you doing?" --output-file speech.mp3
    

    List all available TTS models:

    flatpak run net.mkiol.SpeechNote --print-available-models tts
    

    Global keyboard shortcuts

    Global keyboard shortcuts allow you to start listening or reading with the keyboard, even when the application is not active (e.g. minimized, hidden in the system tray icon or just in the background).

    To enable and customize keyboard shortcuts, go to Settings->Accessibility->Use Global Keyboard Shortcuts.

    In order for shortcuts to work under Wayland, your desktop environment must support GlobalShortcuts interface in the XDG Desktop Portal service. Currently, GlobalShortcuts is supported only in the latest KDE Plasma and GNOME desktops.

    When XDG Desktop Portal is used to manage global shortcuts, use the desktop environment tool to customize key bindings.

    Insert into active window

    Using global keyboard shortcuts or command-line actions, you can directly start listening and insert the decoded text into any window that is currently in focus. This allows you to use Speech Note as a voice typing tool on the desktop.

    Under X11, this feature should work right out of the box.

    Under Wayland, the external ydotool daemon must be installed and running for it to work. If you are using Flatpak, also make sure that the application has permission to access the ydotool daemon's socket file and the socket file.

    Subtitles

    When transcribing (STT), you can also convert audio to subtitles instead of text. The supported format is SRT.

    Subtitles are also supported in TTS. The reading aloud of subtitles is synchronized with the timestamps of the subtitles. If configured, the speed of the voice can be automatically adjusted to the duration of the subtitle segment. This allows you to create a voice-over from the subtitle file.

    Building from sources

    Arch Linux

    It is also possible to build and install the latest development (git) or latest stable (release) version from the repository using the provided PKGBUILD file (please note that the same remarks about building on Linux apply):

    git clone <git repository url>
    
    cd dsnote/arch/git      # build latest git version
    # or
    cd dsnote/arch/release  # build latest release version
    
    makepkg -si
    

    RHEL/Fedora/Rocky Linux

    It is also possible to build and install the latest development version from the repository using the provided SPEC file and helper make_rpm.sh script:

    git clone <git repository url>
    
    cd dsnote/fedora
    
    # optionally install build dependencies
    dnf install rpmdevtools autoconf automake boost-devel cmake git kf5-kdbusaddons-devel libarchive-devel libxdo-devel libXinerama-devel libxkbcommon-x11-devel libXtst-devel libtool meson openblas-devel patchelf pybind11-devel python3-devel python3-pybind11 qt5-linguist qt5-qtmultimedia-devel qt5-qtquickcontrols2-devel qt5-qtx11extras-devel rubberband-devel taglib-devel vulkan-headers
    
    ./make_rpm.sh
    

    Flatpak

    git clone <git repository url>
    
    cd dsnote/flatpak
    
    # build a base package
    flatpak-builder --force-clean --user --install-deps-from=flathub --repo="<name or /path/to/local/flatpak/repo>" "/path/to/output/dir" net.mkiol.SpeechNote.yaml
    
    # build an optional NVIDIA add-on package
    flatpak-builder --force-clean --user --install-deps-from=flathub --repo="<name or /path/to/local/flatpak/repo>" "/path/to/output/dir" net.mkiol.SpeechNote.Addon.nvidia.yaml
    

    Sailfish OS

    git clone <git repository url>
    
    cd dsnote
    mkdir build
    cd build
    
    sfdk config --session specfile=../sfos/harbour-dsnote.spec
    sfdk config --session target=SailfishOS-4.4.0.58-aarch64
    sfdk cmake ../ -DCMAKE_BUILD_TYPE=Release -DWITH_SFOS=ON -DWITH_PY=OFF
    sfdk package
    

    Linux (direct build)

    Speech Note has many build-time and run-time dependencies. This includes shared and static libraries, 3rd-party executables, Python and Perl scripts. Because of these complexity, the recommended way to build is to use Flatpak tool-chain (Flatpak manifest file and flatpak-builder). If you want to make a direct build (i.e. without flatpak) it is also possible but more complicated.

    git clone <git repository url>
    
    cd dsnote
    mkdir build
    cd build
    
    cmake ../ -DCMAKE_BUILD_TYPE=Release -DWITH_DESKTOP=ON
    make
    

    To make build without support for Python components, add -DWITH_PY=OFF in cmake step.

    To see other build options search for option(BUILD_XXX) in CMakeList.txt file.

    Minimal Linux (direct build)

    For developing features locally, going through the whole build process can be time-consuming; use this to make a minimal direct build.

    git clone <git repository url>
    
    cd dsnote
    mkdir build
    cd build
    
    cmake ../  -DWITH_DESKTOP=ON \
      -DWITH_PY=ON \
      -DDOWNLOAD_VOSK=ON \
      -DBUILD_VOSK=OFF \
      -DBUILD_WHISPERCPP=OFF \
      -DBUILD_OPENBLAS=OFF \
      -DBUILD_RHVOICE=OFF \
      -DBUILD_RHVOICE_MODULE=OFF \
      -DBUILD_BERGAMOT=OFF
    make
    

    Building WlClipboard

    If you want to build wl-clipboard or if you do not have access to wl-clipboard in your system, and KDE Klipper or QClipboard are not working when you use simulated Ctrl+V when pasting text into the active window.

    You can add this flag to build wl-clipboard:

    
    cmake ../  -DWITH_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_WL_CLIPBOARD
    

    How to enable a custom model

    All models available for download are specified in the configuration file (config/models.json). To enable a custom model that is compatible with currently supported engines, simply edit this file and restart the application.

    When you first run the application, the models configuration file is created in:

    • ~/.local/share/net.mkiol/dsnote/models.json, or
    • ~/.var/app/net.mkiol.SpeechNote/data/net.mkiol/dsnote/models.json (Flatpak), or
    • ~/.local/share/org.mkiol/dsnote/models.json (Sailfish OS)

    You can freely edit currently enabled models or add new ones.

    Model definition looks like this:

    {
        "name": "<model name>",
        "model_id": "<model unique id>",
        "engine": "<engine type>",
        "lang_id": "<lang id>",
        "checksum": "<md5 checksum>",
        "checksum_quick": "<partial md5 checksum>",
        "comp": "<compression type",
        "urls": [
            <model URLs>
        ],
        "size": "<download size of all files>"
    }
    

    Allowed engine types: stt_ds, stt_vosk, stt_april, stt_whisper, stt_fasterwhisper, stt_qwen3asr, tts_piper, tts_rhvoice, tts_espeak, tts_coqui, tts_mimic3, tts_whisperspeech, tts_sam, tts_parler, tts_f5, tts_kokoro, tts_qwen3tts, mnt_bergamot

    Allowed compression types: none, gz, xz, tarxz, targz, zip, zipall, dir, dirgz

    Allowed URL types: http, https, file

    Checksums are calculated for all files after unpacking. If you are adding a new model, you can use the --gen-checksums command line option to find the right checksums. To do this, put empty strings in both checksum and checksum_quick, save the file and run Speech Note with the mentioned option.

    For example:

    {
        "name": "New Piper Voice",
        "model_id": "en_piper_new",
        "engine": "tts_piper",
        "lang_id": "en",
        "checksum": "",
        "checksum_quick": "",
        "size": ""
        "comp": "dir",
        "urls": [
            "file:///home/me/models/new-model-medium.onnx",
            "file:///home/me/models/new-model-medium.onnx.json"
        ]
    }
    
    flatpak run net.mkiol.SpeechNote --verbose --gen-checksums
    

    Contributing to Speech Note

    Any contribution is very welcome!

    For detailed information on how to contribute, please see CONTRIBUTING.md.

    Project is hosted both on GitHub and GitLab. Feel free to make a PR/MR, report an issue or reqest for new feature on the platform you prefer the most.

    Translation

    Translation files in Qt format are in translations directory.

    Preferred way to contribute translation is via Transifex service, but if you would like to make a direct PR/MR, please do it.

    How to support

    If you find Speech Note useful and would like to support this project, please consider doing one or two of the following:

    • Give a ⭐ on GitHub or/and GitLab.
    • Write a review in your applications manager app (Discover, Software or any other).
    • Tell others about this app by mentioning it on social media.
    • If you have spare money, make a small donation via ko-fi (one time) or Liberapay (recurring).

    Libraries

    Speech Note relies on following open source projects:

    Reviews and demos

    License

    Speech Note is an open source project. Source code is released under the Mozilla Public License Version 2.0. See the copy of the LICENSE

    3rd party libraries:

    The files in the directory nonbreaking_prefixes were copied from mosesdecoder project and distributed under the GNU Lesser General Public License v2.1.