Skip to content

Commit ef5daa3

Browse files
committed
feat: initial open-source release — real-time voice translator for video calls
Elixir OTP + Rust audio engine + Flask web UI. Deepgram STT, Groq LLM translation, Piper TTS (local, 29 languages). macOS 14+, BlackHole audio routing.
0 parents  commit ef5daa3

54 files changed

Lines changed: 10164 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
DEEPGRAM_API_KEY=your_deepgram_api_key_here
2+
GROQ_API_KEY=your_groq_api_key_here
3+
ORT_DYLIB_PATH=/opt/homebrew/lib/libonnxruntime.dylib

.formatter.exs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Used by "mix format"
2+
[
3+
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
4+
]
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: Bug Report
3+
about: Something isn't working as expected
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
**Describe the bug**
10+
What happened?
11+
12+
**Steps to reproduce**
13+
1.
14+
2.
15+
3.
16+
17+
**Expected behavior**
18+
What should have happened?
19+
20+
**Environment**
21+
- macOS version:
22+
- Browser: Chrome / Safari / other
23+
- Audio setup: BlackHole / Tab Capture / other
24+
- Call app: Google Meet / Zoom / other
25+
26+
**Logs**
27+
Paste any relevant output from the terminal.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea or improvement
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
**What problem does this solve?**
10+
Describe the use case.
11+
12+
**Proposed solution**
13+
How should it work?
14+
15+
**Alternatives considered**
16+
Any other approaches you've thought about?

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## What does this PR do?
2+
3+
<!-- Brief description -->
4+
5+
## How was it tested?
6+
7+
<!-- Did you test with a real call? Which app/browser? -->
8+
9+
## Checklist
10+
11+
- [ ] Tested locally with a real call
12+
- [ ] No API keys or secrets in the diff
13+
- [ ] Rust: `cargo clippy` passes
14+
- [ ] Python: no new warnings

.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Elixir
2+
/_build/
3+
/cover/
4+
/deps/
5+
/doc/
6+
/tmp/
7+
erl_crash.dump
8+
*.ez
9+
translator-*.tar
10+
11+
# Rust
12+
/native/audio_engine/target/
13+
14+
# Models (large, downloaded separately)
15+
/models/
16+
17+
# OS
18+
.DS_Store
19+
20+
# Secrets
21+
.env
22+
.env.*
23+
!.env.example
24+
settings.json
25+
26+
# Python
27+
/.venv/
28+
__pycache__/
29+
30+
# Runtime
31+
test-log.txt
32+
/tts-output/
33+
calls.db
34+
35+
# IDE
36+
.idea/
37+
.vscode/
38+
*.swp
39+
*.swo
40+
41+
# Docs (dev only)
42+
article.md
43+
LAUNCH_PLAN.md
44+
HANDOFF.md

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Changelog
2+
3+
## [0.1.0] - 2026-04-05
4+
5+
### Initial open-source release
6+
7+
- Real-time bidirectional voice translation for video calls
8+
- Deepgram Nova-3 STT with streaming WebSocket
9+
- Groq LLM translation (llama-3.3-70b)
10+
- Piper TTS with local ONNX inference (29 languages)
11+
- Chrome tab audio capture (no BlackHole required for incoming audio)
12+
- Web UI: live transcript, settings panel, call history, voice downloads
13+
- Elixir OTP orchestration + Rust audio engine + Flask web server
14+
- One-command setup via `setup.sh`

CODE_OF_CONDUCT.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to a positive environment:
15+
16+
* Using welcoming and inclusive language
17+
* Being respectful of differing viewpoints and experiences
18+
* Gracefully accepting constructive criticism
19+
* Focusing on what is best for the community
20+
* Showing empathy towards other community members
21+
22+
Examples of unacceptable behavior:
23+
24+
* The use of sexualized language or imagery and unwelcome sexual attention
25+
* Trolling, insulting or derogatory comments, and personal or political attacks
26+
* Public or private harassment
27+
* Publishing others' private information without explicit permission
28+
* Other conduct which could reasonably be considered inappropriate
29+
30+
## Enforcement
31+
32+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
33+
reported to the project maintainer. All complaints will be reviewed and
34+
investigated and will result in a response that is deemed necessary and
35+
appropriate to the circumstances.
36+
37+
## Attribution
38+
39+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
40+
version 2.0, available at
41+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing
2+
3+
Thanks for your interest in contributing to Realtime Call Translator!
4+
5+
## How to contribute
6+
7+
### Bug reports
8+
9+
Open an [issue](../../issues/new?template=bug_report.md) with:
10+
- What you expected vs what happened
11+
- Steps to reproduce
12+
- macOS version, browser, audio setup
13+
14+
### Feature requests
15+
16+
Open an [issue](../../issues/new?template=feature_request.md) describing the use case and why it matters.
17+
18+
### Pull requests
19+
20+
1. Fork the repo
21+
2. Create a branch: `git checkout -b feature/your-feature`
22+
3. Make your changes
23+
4. Test locally with a real call (Google Meet, Zoom, etc.)
24+
5. Submit a PR with a clear description
25+
26+
### Development setup
27+
28+
```bash
29+
git clone https://github.com/YOUR_USER/realtime-call-translator.git
30+
cd realtime-call-translator
31+
./setup.sh # installs all dependencies
32+
cp .env.example .env
33+
# edit .env with your Deepgram + Groq API keys
34+
./run.sh
35+
```
36+
37+
### Code style
38+
39+
- **Python**: follow existing patterns in `web.py`
40+
- **Rust**: `cargo fmt` + `cargo clippy`
41+
- **Elixir**: `mix format`
42+
43+
### What we especially welcome
44+
45+
- Windows / Linux audio backend support
46+
- New TTS voice contributions
47+
- Latency optimizations
48+
- Documentation improvements
49+
- Bug fixes with reproduction steps
50+
51+
## License
52+
53+
By contributing, you agree that your contributions will be licensed under the MIT License.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Kai Letov
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)