This extension adds speech to text (dictation) to the GNOME Shell using OpenAI’s Whisper automatic speech recognition model. The extension captures audio, runs transcription locally, and copies the transcribed text into your clipboard. It requires installing a companion D-Bus service (installer included). This extension accesses the clipboard to copy transcribed text.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 1.1 (8) | Unreviewed |
| 1.0.4 (7) | Active |
| 1.0.0 (6) | Active |
| 1.0.0 (5) | Rejected |
| 1.0.0 (4) | Rejected |
| 1.0.0 (3) | Rejected |
| 2 | Rejected |
| 1 | Rejected |
First I wanted to thank you for the amazing feedback you gave me on the initial version. This is my first time doing a GNOME Extension and I learned a ton from your feedback. I believe I incorporated all the changes you suggest but had to rework the entire structure of the extension to use the d-bus architecture as you had suggested. I learned a lot and the extension is much faster and more reliable in my testings. I am not entirely sure about my approach to install the d-bus service however. I provided a "install.sh" script in the "speech2text-service" that would run at the first run and install the necessary system packages and python environment for the open-ai whisper to function. Please let me know if this is the correct approach. Lastly I added support for Wayland but given the security restrictions for Wayland it does not auto-type the transcribed audio. Instead it provides an interface for copy/pasting. On X11 it can use xdotool to auto insert transcribed audio at the cursor location. The repo for the extension with a lot more dev tools (including a beefy makefile for testing) is here: https://github.com/kavehtehrani/gnome-speech2text Really appreciate you guiding me through this. Thanks, Kaveh
Hey Kaveh! 1. Please remove `type` from `metadata.json`. 2. Remove line 460-462 `extension.js`. Not needed. 3. Move line 27 `extension.js` to enable and null it out in disable: [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) 4. Remove unnecessary try and catch blocks. For example, for add and removing key bindings. 5. Remove unnecessary import (line 1 `lib/uiUtils.js`). 5. D-Bus interface name should start with `org.gnome.Shell.Extensions` if it's going to be shipped via extension (line 7 `lib/dbusManager.js`), but `speech2text-service` should be a dependency and not shipped with the extension: [EGO Review Guidelines: Scripts](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#scripts-and-binaries) Just mention in the description that this extension needs that as a dependency and use the d-bus for interacting with that. 7. Timeout should be removed on destroy: - line 409, 457, 575 `lib/recordingDialog.js` - line 446 `lib/settingsDialog.js` - line 550 `lib/setupDialog.js` - line 56 `lib/shortcutCapture.js` [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions