# Real-time translation typing: an AutoHotkey overlay for Windows

> This is a Windows AutoHotkey tool that takes what you type, or what someone says, translates it, and types the result into whatever has focus. It has a web version that leans on Youdao, Sogou, Baidu or Google, and an older API mode configured through a JSON file. The hotkey map is the product, and the repository ships the compiled binaries along with the AutoHotkey runtime.

**sxzxs/Real-time-translation-typing** — 实时打字翻译软件、语音实时打字、语音实时翻译、LOL 语音打字

- Repository: https://github.com/sxzxs/Real-time-translation-typing
- Stars: 1,877 · Forks: 169
- Language: AutoHotkey
- License: not declared
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/sxzxs-real-time-translation-typing

## What it does, in three lines

The project description is a list in Chinese and it is short enough to translate directly. It is a real-time typing translation program, it does speech to text and translation in real time, and it does voice to text input for League of Legends.

The shape of it is a small desktop tool. You type something, press a key, and the translated text is typed for you into whatever window has focus. That last part is the point, and it is why the implementation is a hotkey script rather than an application with an interface.

The project is written in AutoHotkey, the primary language is listed as AutoHotkey, and the repository is under a Chinese author with a Chinese README. The version history shows constant small releases, v0.4.60 on 2026-10-13, v0.4.55 on 2026-10-08 and v0.4.51 on 2026-10-06, so this is a project under active iteration rather than a finished tool, and the last push to the repository was on 2026-10-13.

The licence is not stated in the repository metadata, which is worth knowing before you redistribute the binaries it contains.

## The hotkey map is the product

The shortcuts section is the clearest description of the behaviour, and it is worth listing as a set of pairs rather than a list of keys.

Alt and Y opens the tool. Alt and Enter speaks the input aloud, which the README calls pronunciation. Enter outputs the translated text, and Control and Enter outputs the original text instead, so the same action gives you either language depending on the modifier. Escape exits. Tab switches to another translation API. Control and F7 opens the debug view of the web version.

The web version adds a second set. Control and C copies the result. Control and Alt and Y translates whatever is currently on the clipboard. Control and V, while the tool is open, feeds the clipboard contents in. And Alt and I starts voice input.

Two of those are unusual enough to call out. Speaking the input is a different feature from translating it, and it is there for the case where you want to check how a phrase sounds. And the pair of extra mouse buttons, xbutton1 and xbutton2, are the League of Legends hooks, where the first starts voice input and the second ends it, which is the version designed for a player talking in a call and getting text back in the game.

Having both the translated and the original on adjacent keys is the design detail that makes it usable day to day, because you are often checking rather than translating.

## The web version, and what it needs from your machine

There are two ways to run this, and the README is explicit that the web version is the recommended one and that the API version is not recommended.

The web version works by driving the translation websites rather than calling an API, and the supported services are Sogou, Baidu and Youdao. Its cost is a dependency on the machine. The system needs Windows 10 or the WebView2 runtime installed, because the translation page is rendered in a web view, and running from source needs a specific build of AutoHotkey, the v2H variant.

The install procedure is the sort of thing that tells you about the project's shape. You drag the web version script file onto Autohotkey.exe and it runs, or you rename the script to an .ahk file, rename the bundled AutoHotkey.exe to match, and double click the result.

That is not a packaged installer, and it is a deliberate choice for a tool that ships as a script plus the runtime. The repository does contain the runtime itself, with AutoHotkey.exe and Ahk2Exe.exe, and a build.bat to put them together, plus a text file listing the Visual C++ runtime dependency.

The web version also has its own extra shortcuts, so the two modes are not the same tool with a different backend, they are two slightly different tools, which is why the documentation treats them separately.

## The API mode, and four backends with very different characters

The API version is configured through a JSON file at config/setting.json, and the first decision is which service is the main one.

```json
    "cd" : "youdao"
```

The four listed options are baidu, google, youdao and sougou, and the note about Google says it needs a proxy and a US node to be reachable. Any secondary service is switched on by setting is_open to 1 for it, and the README offers the obvious advice for a service that stops answering, which is to switch to another one because the API may be under maintenance.

The character of each backend is described frankly. Youdao and Sogou and Google are free at the moment. Youdao calls the API directly and is therefore fast. Sogou is a crawler, so it is slower. Google needs a proxy. Baidu gives good results but requires registration, with a free allowance of a million characters a month, and the keys go into the config.

```json
{
    "is_open" : 0,
    "BaiduFanyiAPPID" : "xxxxx",
    "BaiduFanyiAPPSEC": "xxxxx",
    "is_real_time_translate" : 0
}
```

The Baidu block also shows the one behavioural difference between the modes. Because Baidu has a usage limit, is_baidu_real_time_translate decides whether translation is triggered on the fly. Set it to 0 and you press the space key to trigger the translation yourself, and the README recommends leaving the space as the last key you type.

There is a dictionary mode for Youdao, with its own endpoint and an is_open flag, and Sogou has its own endpoint block with a real-time flag. The mechanism for switching between the configured and the open services is the Tab key.

## The gaming hooks, and the shipped binaries

The League of Legends support is what distinguishes this from a general translation utility, and it comes down to two mouse buttons and a text output that lands in the game window.

With xbutton1 the voice input starts and with xbutton2 it ends, and the result is typed as ordinary input. In a voice call, that is the whole use case: speak in one language, read the translation in the game chat.

The repository layout shows how the tool is put together. There is a main script and a separate API variant, a thread script, a utility directory, a lib directory, a config directory holding the settings file, a build.bat, the two runtime executables, an icon, and several text files whose names are the instructions written out, one for activating with Alt and Y, one for entering the text, one for the pronunciation shortcut, one for the drag to run instruction, and one for the Visual C++ runtime dependency.

Shipping AutoHotkey.exe and Ahk2Exe.exe in the repository is unusual and has two consequences. It means the tool runs without the user installing anything, which is the point for a utility like this. It also means the runtime is a binary that the project distributes, and the licence question applies to the repository as a whole rather than only to the script.

## What to think about before you send text to these services

The most important thing about this tool is not a feature, it is where the text goes.

The recommended path drives a translation website inside a web view, and the API path calls consumer endpoints directly. Either way, the text you type is sent to a third party service, and in the Sogou case it is sent by scraping a website, which is a different kind of interaction with someone else's service than an API call.

The README is candid about the cost side of that, calling Youdao fast, Sogou a crawler and therefore slower, and noting that Baidu has a monthly character limit. It is not candid about the terms, so the questions to ask yourself are whether you are allowed to send that text to those services, whether a personal account is the right account for it, and what happens to the text on their side.

There is a second consideration specific to how the tool is used. Because the output is typed into whatever window has focus, a mistranslation is not a passive mistake, it is something you send to a person or a team. The hotkey design helps, because Control and Enter gives you the original text, but the output is still unreviewed text going out at the speed of typing.

For the gaming use case the risk is lower, since the audience is a small group and the content is usually short. For anything involving work, the service terms and the data handling of whatever backend you configure are the things to check first.

## Conclusion

This tool fits a Windows user who reads or writes in two languages and wants to type in one and have the other appear, particularly the gaming case where voice chat in a team needs a translated text line. It does not fit a Linux or macOS user, and it does not fit anyone who needs a translation service with a business agreement behind it, because the recommended backends are consumer endpoints, one of which is scraped rather than called. Verify three things before you rely on it: which backend you are actually using and what it does with your text, since a scraped endpoint and a registered API are different kinds of service, whether the free character quota on the registered backend covers your volume, and that the machine can run the web view, which means Windows 10 or a WebView2 runtime, since the web version is the recommended path.

## FAQ

### What does the Real-time translation typing tool do?

It is a Windows AutoHotkey program that types and translates in real time, converts speech to text and translates that, and provides voice to text input for League of Legends. The translated or the original text is typed into whichever window has focus, chosen by the modifier key you press.

### Which translation services does it support?

The web version, which is the recommended path, supports Sogou, Baidu and Youdao and needs Windows 10 or the WebView2 runtime. The API mode, which the README does not recommend, is configured in config/setting.json and can use baidu, google, youdao or sougou, with Youdao free and fast, Sogou free but a crawler and therefore slower, Google needing a proxy, and Baidu needing registration with a free allowance of a million characters a month.

### How do I install and run it?

Drag the web version script onto Autohotkey.exe, or rename the script to an .ahk file, rename the bundled AutoHotkey.exe to match and double click it. Running from source needs a specific AutoHotkey build, the v2H variant, and the repository ships AutoHotkey.exe and Ahk2Exe.exe along with a build.bat to combine them.

### What are the keyboard shortcuts?

Alt and Y opens the tool, Alt and Enter speaks the input, Enter outputs the translated text, Control and Enter outputs the original text, Escape exits, Tab switches to another translation API and Control and F7 opens the web version debug view. The web version adds Control and C to copy the result, Control and Alt and Y to translate the clipboard, Control and V to paste the clipboard in, and Alt and I for voice input, with the two extra mouse buttons handling League of Legends voice input.

### Why does the Baidu configuration have a real-time flag?

Because Baidu has a usage limit, is_baidu_real_time_translate decides whether a translation is triggered on every keystroke or only when you press the space key. With it set to 0 you trigger the translation manually, and the README recommends leaving the space as the last key you type so the translation happens as you finish.

## Sources

- [Issues](https://github.com/sxzxs/Real-time-translation-typing/issues)
- [README](https://github.com/sxzxs/Real-time-translation-typing/blob/main/README.md)
- [Releases](https://github.com/sxzxs/Real-time-translation-typing/releases)
- [sxzxs/Real-time-translation-typing on GitHub](https://github.com/sxzxs/Real-time-translation-typing)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/sxzxs-real-time-translation-typing
