osad-sakana
← Works

Voicenote

voicenote

文字起こしを行い、任意のところに保存するボイスレコーダー。

GitHub ↗MacCLI
Voicenoteのスクリーンショット

voicenote

ローカルで音声を録音し、faster-whisperで文字起こしを行い、Markdownノートとして保存するPythonツールです (Obsidianなどのノートツールと互換)。

必要要件

インストール

  1. uvをインストールしていない場合は、まずインストールします:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 依存関係をインストールします:
uv sync

グローバルインストール(オプション)

uv toolを使うと、システム全体でvoicenoteコマンドとして使用できます:

uv tool install . --python 3.12

Python 3.14以降では依存関係がサポートされていないため、3.12または3.13を指定してください。

インストール後は、どこからでも実行可能です:

voicenote           # 録音開始
voicenote --config  # 設定変更

アンインストールする場合:

uv tool uninstall voicenote

使い方

初回実行

初回実行時は設定を対話的に入力します:

uv run main.py

uv run は実行前に自動的に依存関係を同期します。

以下の項目を入力します:

2回目以降

設定が保存されているので、すぐに録音が開始されます:

uv run main.py

録音中に Ctrl+C を押すと録音が終了し、文字起こしが開始されます。

設定の再入力

設定を変更したい場合は --config オプションを使用します:

uv run main.py --config

出力形式

文字起こし結果は以下の形式でMarkdownノートとして保存されます:

---
created: 2026-01-16T12:34:56.789012
type: transcription
tags:
  - recording
  - raw
---

# 録音文字起こし

[文字起こし結果]

ファイル名: YYYY-MM-DD_HHMMSS_raw.md

プロジェクト構造

voicenote/
├── main.py              # GUIエントリーポイント (CustomTkinter)
├── main_cli.py          # CLIエントリーポイント (Rich)
├── pipeline.py          # GUI/CLI共通の業務ロジック
├── logging_setup.py     # ロギング初期化
├── config.py            # 設定管理モジュール
├── recorder.py          # 録音機能モジュール
├── transcriber.py       # 文字起こし機能モジュール
├── formatter.py         # テキスト整形モジュール
├── note_writer.py       # Markdownノート保存モジュール
├── gui/                 # GUI 関連 (App, SettingsDialog, etc.)
├── tests/               # ユニットテスト
├── pyproject.toml       # プロジェクト設定・依存関係
└── README.md

機能

ライセンス

このプロジェクトはMITライセンスのもとで公開されています。