SilverRainZ/oratio

[MVP] Self-hosted, cross-platform, privacy speech-to-text input tool

★ 0Forks 0GitHub ↗Compare

README

oratio

目标

自托管、跨平台(目前仅在作者自己环境的测试 Hyprland (Archlinux))、注重隐私的语音转文字输入工具

路线图

  • 目前仅支持作者自己环境的使用 Hyprland (Archlinux),注意不要过度设计和过早优化
    • (MVP) 一个简单的可以和 funasr-offline 模式交互的客户端, 支持最基本的交互和最简单逻辑: 调用麦克风录音然后发给自建的funasr-offline服务, 将识别结果显示在console中
    # 安装与使用指南
    # 1. 自行安装依赖 justfile, rust, docker ... 并克隆该仓库并且切换目录到项目根目录
    # 2. 运行 funasr-offline 服务 (self-hosted)
    just manage-funasr-offline run # 请等待一些时间下载模型完成
    # 3. 准备配置文件 (YAML v1)
    cp artifact/config/oratio.example.yaml ./oratio.yaml
    # 4. 运行 CLI
    cargo run -- run --config ./oratio.yaml --friendly
    cargo run -- -h # 查看帮助
    
    • 支持通过 YAML 配置选择 ASR provider,并可生成 JSON Schema 供 YAML tooling 引用(校验/补全)
      # 生成 JSON Schema (用于 VS Code / YAML Language Server)
      cargo run -- config schema --output ./oratio.schema.json
      # (或) 生成到 artifact/config/ 以便直接编辑示例配置文件
      just gen-config-schema
      
      # 然后在你的 oratio.yaml 顶部加入:
      # yaml-language-server: $schema=./oratio.schema.json
      
      # 使用 OpenAI provider (Audio transcriptions)
      export OPENAI_API_KEY=xxx
      # 然后把 oratio.yaml 里的 asr.use 改为 openai-official (或你自定义的 models[].name)
      cargo run -- run --config ./oratio.yaml --friendly
      
      # (可选) 将配置放到用户目录, 之后可以省略 --config
      mkdir -p ~/.config/oratio
      cp artifact/config/oratio.example.yaml ~/.config/oratio/oratio.yaml
      cargo run -- config schema --output ~/.config/oratio/oratio.schema.json
      cargo run -- run --friendly
      
      # (或) 使用 just 一键安装到用户目录
      just install-user-config
      cargo run -- run --friendly
      
    • 调研合适的支持跨平台的可以在当前光标下模拟输入, 或者使用剪贴板来实现语音转文字工作
      • 经过充分调研, 直接的实现是地狱难度级别的, wayland 环境对相关模拟输入的支持不太完整, 没有比较好的体验
    • 调研能否实现一个类似 https://fcitx-im.org/wiki/Unicode (fcitx5/src/modules/unicode/CMakeLists.txt at 0f26cf3262338e62b7a56c0d51e2b17b60e6315f · fcitx/fcitx5) 的模块/插件, 让输入法来实现上屏工作, 以简化这个实现的难度

Contributors

StrayDragon

Issues