Skip to content

passpier/Talyno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Talyno — On-device Earnings-Call Transcriber & Translator

Understand every earnings call.

Talyno is an iPhone-first app built for financial professionals who need to follow multilingual earnings calls, investor meetings, and analyst conferences in real time. It captures audio, transcribes on-device with a custom finance-tuned WhisperKit model, translates on-device with Apple's Translation framework, and surfaces a live bilingual transcript — no bots, no servers, no account required, one tap to start.


Screenshots

Live bilingual transcript, side by side One tap to capture the call — no bots, no account Replay, search, and export the transcript


Architecture overview

iPhone (SwiftUI)
  └── AudioCaptureService (AVAudioEngine)
        └── WhisperKitTranscriber (on-device CoreML / Neural Engine)
              └── TranslationCoordinator (Apple TranslationSession)
                    └── Live bilingual transcript UI

Storage: SwiftData  (Meeting, TranscriptSegment, Speaker)

Privacy guarantee: No audio, transcript, or translation ever leaves the device. There is no backend, no account, and no network activity beyond optional on-demand model downloads (see STT Models below).


Features

Feature Description
Live recording One-tap capture; real-time transcription shown as bilingual bubbles
Finance-tuned STT Custom WhisperKit model fine-tuned on earnings calls, analyst Q&A, and IR meetings — works offline from first launch
On-device translation Apple Translation framework — privacy-safe, no third-party API
Meeting library Browse, search, and re-open past calls
Review & playback Scroll transcript, search segments, play back audio
Export / share Share transcript as plain text or Markdown

Privacy

  • 100% on-device processing — offline by design.
  • Microphone is the only required permission; audio never leaves your iPhone.
  • No account, no login, no analytics SDK.
  • The only outbound network requests are optional model downloads that the user explicitly triggers in Settings.

STT models

Model Quality Source
openai_whisper-tiny Basic — works offline at first launch Bundled in app
talyno-whisper-small-finance Accurate — custom finance fine-tune, downloads on demand (~466 MB) passpoo/talyno-whisperkit-coreml (HuggingFace)

The talyno-whisper-small-finance model is a LoRA fine-tune of whisper-small, trained in two phases on English (SPGISpeech earnings-call audio, 200h) and Chinese (Google FLEURS cmn_hans_cn real recordings + a TTS-synthesised Traditional-Chinese financial-terminology corpus). It can be downloaded in Settings → AI Models. The app continues to work with the bundled Basic model if the download is skipped.

The PyTorch source weights are published at passpoo/talyno-whisper-small-finance; the WhisperKit CoreML conversion the app downloads is at passpoo/talyno-whisperkit-coreml.

See docs/talyno-whisper-finetune-guide-v6.md for the full training methodology.


Supported languages

Speech-to-text (STT) is currently trained for English and Chinese only:

Language STT Translation
English / English (UK)
繁體中文 / 中文(简体)

Known gap: the in-app language picker (MeetingLanguageCatalog) currently still lists Deutsch, Español, 日本語, and 한국어 as STT-selectable from an earlier model generation. The talyno-whisper-small-finance model actually hosted today (v6, see the finetune guide) was retrained to EN + ZH only, so STT quality for those four languages is currently degraded / unsupported until the app's language list is narrowed to match. Translation (Apple's on-device Translation framework) is unaffected and covers a broader set of language pairs independently of STT.

On-device translation packs are downloaded the first time a language pair is used (handled automatically by TranslationPackManager).


Prerequisites

Tool Version
Xcode 16+
iOS target 18.0+
XcodeGen any (brew install xcodegen)

Setup

git clone <repo>
cd Talyno/ios

# Generate the Xcode project from project.yml
xcodegen generate

# Open in Xcode
open Talyno.xcodeproj

No secrets, no backend, no environment variables needed — just clone, generate, and run.


Build & test

# Build
xcodebuild -scheme Talyno \
  -destination 'platform=iOS Simulator,name=iPhone 17' \
  build

# Run unit tests
xcodebuild -scheme Talyno \
  -destination 'platform=iOS Simulator,name=iPhone 17' \
  test

# Lint
swiftlint lint --strict

Contributing

  • Branch off main; open a PR with a clear description.
  • Discuss architecture changes in the PR before implementation.
  • See CLAUDE.md for coding conventions (Swift 6 strict concurrency, design tokens, SwiftData-only persistence).
  • See SECURITY.md to report a vulnerability.

License

Talyno's source code is licensed under the Apache License 2.0.

About

Talyno is designed for earnings-call language, so it’s easier to follow revenue guidance, analyst questions, and other investor updates as they happen.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages