Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
ab67b19
fix: detect GPU via ctranslate2 instead of torch
hoiyada7-maker Jun 1, 2026
5db72cc
fix: use nvidia-smi to resolve GPU name and VRAM without torch
hoiyada7-maker Jun 1, 2026
097e2fa
fix: gracefully handle missing CUDA runtime DLLs
hoiyada7-maker Jun 1, 2026
61b844f
feat: show dialog when GPU unavailable instead of silent CPU fallback
hoiyada7-maker Jun 1, 2026
ee58bb8
feat: auto-register NVIDIA pip-package DLL dirs on Windows startup
hoiyada7-maker Jun 1, 2026
4134d22
chore: add nvidia-cublas-cu12 and nvidia-cuda-runtime-cu12 to require…
hoiyada7-maker Jun 1, 2026
403c802
fix: prepend nvidia DLL dirs to PATH so ctranslate2 ctypes calls find…
hoiyada7-maker Jun 1, 2026
06bb7db
Add custom HuggingFace Whisper models with CTranslate2 conversion
hoiyada7-maker May 30, 2026
6b21ed9
v1.0.4: Variable-length audio chunking with VAD silence detection
hoiyada7-maker May 31, 2026
f8f08ee
feat: hotkey, beep notifications, and clipboard copy on save
hoiyada7-maker Jun 1, 2026
ca352c0
fix: add torch to requirements for HuggingFace model conversion
hoiyada7-maker Jun 1, 2026
7d85cd2
fix: translate all Korean UI strings to English, fix exc scope bug, a…
hoiyada7-maker Jun 1, 2026
353a61b
Add GitHub Actions release workflow
hoiyada7-maker Jun 3, 2026
5c898c1
fix: hotkey live reload, deferred model download, recording-locked wa…
hoiyada7-maker Jun 3, 2026
dbf4460
fix: add markdown line breaks to timestamped transcript lines
hoiyada7-maker Jun 3, 2026
35fffea
feat: dual-layer realtime transcription via RealtimeSTT
hoiyada7-maker Jun 3, 2026
ad7a0ab
fix: finalize in-progress utterance when recording stops
hoiyada7-maker Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Release

on:
push:
tags:
- 'v*.*.*'

permissions:
contents: write

jobs:
build-and-release:
runs-on: windows-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: pip

- name: Install dependencies
run: pip install -r requirements.txt pyinstaller

- name: Update installer version
shell: pwsh
run: |
$version = "${{ github.ref_name }}".TrimStart("v")
(Get-Content installer.iss) -replace 'AppVersion=.*', "AppVersion=$version" | Set-Content installer.iss

- name: Build with PyInstaller
shell: cmd
run: build.bat

- name: Install Inno Setup
shell: pwsh
run: choco install innosetup --yes --no-progress

- name: Build installer
shell: pwsh
run: '& "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer.iss'

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: installer_output/HearsaySetup.exe
generate_release_notes: true
15 changes: 15 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,24 @@ pyinstaller --noconfirm --onedir --windowed ^
--hidden-import "sounddevice" ^
--hidden-import "customtkinter" ^
--hidden-import "pystray" ^
--hidden-import "RealtimeSTT" ^
--hidden-import "silero_vad" ^
--hidden-import "webrtcvad" ^
--hidden-import "onnxruntime" ^
--hidden-import "scipy" ^
--hidden-import "soundfile" ^
--hidden-import "torch" ^
--hidden-import "torchaudio" ^
--collect-all "customtkinter" ^
--collect-all "faster_whisper" ^
--collect-all "ctranslate2" ^
--collect-all "RealtimeSTT" ^
--collect-all "silero_vad" ^
--collect-all "onnxruntime" ^
--collect-all "scipy" ^
--collect-all "soundfile" ^
--collect-all "torch" ^
--collect-all "torchaudio" ^
src\hearsay\__main__.py

echo.
Expand Down
7 changes: 7 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
faster-whisper>=1.0.0
RealtimeSTT>=1.0.0
silero-vad>=5.1
PyAudioWPatch>=0.2.12
sounddevice>=0.4.6
numpy>=1.24.0
customtkinter>=5.2.0
pystray>=0.19.5
Pillow>=10.0.0
nvidia-cublas-cu12>=12.0
nvidia-cuda-runtime-cu12>=12.0
transformers>=4.23.0
torch>=2.0.0
keyboard>=0.13.5
10 changes: 10 additions & 0 deletions src/hearsay/__main__.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
"""Entry point for Hearsay: python -m hearsay"""

import multiprocessing
import sys


def main() -> None:
# RealtimeSTT spawns a child process (spawn start method) for the main
# transcription model; freeze_support is required for frozen/PyInstaller builds.
multiprocessing.freeze_support()

from hearsay.utils.logging_setup import setup_logging

setup_logging()

# Must run before any ctranslate2 / faster-whisper import on Windows
from hearsay.utils.cuda_dlls import register_nvidia_dlls

register_nvidia_dlls()

from hearsay.app import HearsayApp

app = HearsayApp()
Expand Down
Loading