Skip to content

Commit

Permalink
Create README-en.md
Browse files Browse the repository at this point in the history
EN
  • Loading branch information
Alkohole authored Sep 16, 2024
1 parent 1c39c6f commit 8757c16
Showing 1 changed file with 200 additions and 0 deletions.
200 changes: 200 additions & 0 deletions README-en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# [MRT] - Machine Reading Text ([RU](README.md)/[EN](README-en.md))
The extension allows you to reproduce written text with a synthesized voice, now available not only in Yandex Browser for Windows. Grateful to **[Yandex.Translate](https://translate.yandex.ru/)** for this opportunity.
- The **[Listen](https://alkohole.github.io/machine-reading-text/)** function has a limit of 20k characters *(≈3000 words* **/** *≈11 minutes)* per request. **(✅ Stable)**

| | From | To | Date |
|---|---|---|---|
| Extension | ~~v0.5.5~~ | [**v0.5.6**_(js)_](#update-in-v056js) | 14.09.24 |
| Window Page | ~~v0.4.1~~ | [**v0.4.2**_(web)_](#update-in-v042web) | 14.09.24 |

<details>
<summary>

## `Navigation`
</summary>

- [**Interface and Control**](#interface-and-control)
- [**Installation and Update**](#installation-and-update)
- [**Voices and Emotions**](#voices-and-emotions)
- [**Update Window**](#update-window)

</details>

## Demo <sup>_`(Dec 9, 2023)`_</sup>:

https://github.com/Alkohole/udr/assets/59339504/99fdac2b-0f26-42e5-94eb-2a550acb5a7c

<div class="video-box">
<video id="player" controls>
<source src="https://github-production-user-asset-6210df.s3.amazonaws.com/59339504/289288865-99fdac2b-0f26-42e5-94eb-2a550acb5a7c.mp4" size="720">
Your browser does not support the video tag.
</video>
</div>

## Interface and Control:
| Web Interface | Plugin Interface | Plugin Interface (collapsed) |
|---|---|---|
| ![](https://github.com/Alkohole/machine-reading-text/raw/main/examples/full.png) | ![](https://github.com/Alkohole/machine-reading-text/raw/main/examples/normal.png) | ![](https://github.com/Alkohole/machine-reading-text/raw/main/examples/small.png) |

| Button | Action |
|:---:|---------|
| **** | Starts text-to-speech playback. |
| **** | Ends text-to-speech playback. |
| **▶II** | Pauses/Resumes text-to-speech playback. |
| **✖▶** | Unable to read text, limit exceeded. |
| ![#5EC5FF](https://place-hold.it/15/5EC5FF/000000?text=+) | Open window |
| ![#FF5E5E](https://place-hold.it/15/FF5E5E/000000?text=+) | Close window |
| ![#FFCF5E](https://place-hold.it/15/FFCF5E/000000?text=+) | Open settings |
| ![#4E4E4E](https://place-hold.it/15/4E4E4E/000000?text=+) | Minimize/maximize window |

- There's a drop handler in the input window (Select text and drag it into the input window, the text previously in the window is automatically erased).
- There's a character count in the window (If the limit is exceeded - you'll see a message).
- There's a choice of voice-over voices: 10 female and 9 male voices.
- You can manually set stress in homograph words using `+` before the stressed letter, and there's a pause between words `-`. Example: `З+амок, Зам+ок`.

- In the settings, you can:
- Specify the offset of the extension window in `px`.
- Specify the initial position of the window.
- Revert to default settings.
- Check for updates and update.

## Installation and Update:

### Script Installation
1. Install the **[Tampermonkey](https://www.tampermonkey.net/)** extension (Alternative for Safari: **[UserScripts](https://apps.apple.com/app/userscripts/id1463298887 )**).
2. **[Install the Script](https://github.com/Alkohole/machine-reading-text/raw/main/mrt.user.js)**.

### Manual Update (Recommended):

1. Go to settings ![Yellow button](https://place-hold.it/15/FFCF5E/000000?text=+).
2. If an update is available, you'll be prompted to update, click on the latest version.
3. In the opened window, click **Update/Overwrite**

### Auto Update (Not Recommended):

1. In the browser extensions, open the **Tampermonkey** extension.
2. Go to the **Utilities** section.
3. Click on the **Check for script updates** button.

## Voices and Emotions:

_As an example for the voice, chapter 3 of Thomas Stearns Eliot's poem "The Hollow Men" is used_

| TTS Name | 😈 | 😐 | ☺️ | 🥳 | Model | Examples |
|--- | :---: | :---: | :---: | :---: | :--- | :--- |
| **Alice** (♀)<sup>`default`</sup> ||||| `tatyana_shitova.gpu` |[Tatyana.ogg](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Tatyana_Shitova.ogg) |
| **Oksana** (♀) |****||****|| `oksana.gpu` |[`RU`](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Oksana.wav) / [`UA`](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Oksana_nogpu_ua.ogg) |
| **Jane** (♀) |****||****|| `jane.gpu` |[Jane.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Jane.wav) |
| **Omazh** (♀) |****|||| `omazh.gpu` |[Omazh.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Omazh.wav) |
| **Nastya** (♀) ||****||| `nastya.gpu` |[Nastya.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Nastya.wav) |
| **Sasha** (♀) |****|****||| `sasha.gpu` |[Sasha.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Sasha.wav) |
| **Tatyana** (♀) ||||| `tatyana_abramova.gpu` |[Tatyana.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Tatyana_Abramova.wav) |
| **Ermil** (♂) |****||****|| `ermil.gpu` |[Ermil.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Ermil.wav) |
| **Zahar** (♂) |****||****|| `zahar.gpu` |[Zahar.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Zahar.wav) |
| **Kolya** (♂) |****||****|| `kolya.gpu` |[Kolya.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Kolya.wav) |
| **Kostya** (♂) |****||****|| `kostya.gpu` |[Kostya.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Kostya.wav) |
| **Anton** (♂) ||||| `anton_samokhvalov.gpu` |[Anton.wav](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Anton_Samokhvalov.wav) |
| **Levitan** (♂) ||****|****|| `levitan` ||
| **Nick** (♂) |****|****|****|| `nick` ||
| **Zhenya** (♂) |****|****|****|| `zhenya` ||
| **Rezeda** <sup>`Tt`</sup> (♀) ||||| `rezeda.gpu` ||
| **Selay** <sup>`Tr`</sup> (♀) ||||| `selay.gpu` | [Selay.ogg](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Selay.ogg) |
| **Silaerkan** <sup>`En`</sup> (♀) ||****||| `silaerkan` ||
| **Erkanyavas** <sup>`En`</sup> (♂) |****|****|****|| `erkanyavas` | [Erkanyavas.ogg](https://github.com/Alkohole/machine-reading-text/raw/main/examples/Erkanyavas.ogg) |


**** - Supported.<br>
**** - Available only in the **`CPU`** version of the model.<br>
**** - Not supported.

## ⚠️ Possible plans:
- [ ] Block-by-block voice-over and block visualization.
- [ ] Floating window.
- [ ] Ability to rewind the voice-over.
- [ ] Ability to download the voice-over.
- [ ] Ability to send selected text to TTS and automatically voice it through the RMB menu.
- [x] Caching of selector parameters. _(memory)_
- [x] Pause.
- [x] Settings, positioning of the extension window.
- [x] Ability to switch between **`CPU`** and **`GPU`**. _(Partially at the moment)_
- [x] Ability to change language. _(`Ru`, `Tr`, `Tt`, `Uk`, `En`)_
- [x] Transition from **`WAV`** format to **`WEBM`**/**`OGG`** formats.
- [x] Ability to change speed.
- [x] Ability to change emotions.
- [x] Choice of voice-over voice.
- [x] **Fix errors in `README.md`**...

<br><br>

# Update Window

<br>

## Update in v0.5.6(js)
- New features:
- Update monitoring and update button.
- Settings caching.
- Settings window:
- Styling of the settings window.
- Added update item.
- Added function to choose the position of the extension window.
- Added rollback button.
- Added `About` block.
- Fixed bugs:
- Bug with duplication of the plugin window in `iframe` elements on websites.


_Previous update:_
> ### Update in v0.5.5(js)
> - Minor update to button style.
> - Fixed index.
> ### Update in v0.5.4(js)
> - Added `Shadow DOM` encapsulation - now css/js of sites will not affect the plugin interface.
> - `offsetRight` was renamed to `offset`.
> - Other minor changes
> ### Update in v0.5.3(js)
> - Added ability to change window positioning.
> - Added settings button.
## Update in v0.4.2(web)
- New features:
- Selector caching.

_Previous update:_
> ## Update in v0.4.1(web)
> - Script server changed, - solving the problem with text-to-speech refusal.
> - Updated `webspeech` version to v160.1.
> - Added Tatar language.
> - Added Pause button.
> ### Update in v0.4(web)
> - Added voices: **Selay**, **Erkanyavas**, **Silaerkan**.
> - Added languages: `Tr`, `Uk`, `En`.
> - Added additional speech speeds.
> - Added ability to set stress using `+` before the stressed letter, and pause `-`.
> - Interface redesigned.
> - Fixed the problem when the model for English language used Russian language.
> - Removed **Erkanyavas** and **Silaerkan** voices from Turkish language.
> - Added 3 voices: **Levitan**, **Nick** and **Zhenya**.
<br>

> [!IMPORTANT]
> This project is my personal whim, and it's not designed for anything serious. <br>
> Because this tts is only available in the `Yandex` browser and only under **`Windows`**, and **`MacOS`** and **`Linux`** users, even with the `Yandex` browser, don't have access to this reader, I wanted to implement this capability for any browsers and OSes. <br>
> [!TIP]
> If you need an English version - use **[Edge TTS](https://github.com/EdgeTTS/EdgeTTS.github.io)** or any other TTS. <br>
> If you're interested in implementations of other functionality from the `Yandex` browser: <br>
> - **[[VOT] - voice-over-translation](https://github.com/ilyhalight/voice-over-translation)** - allows you to translate videos on `YouTube` _(and not only)_ in the form of voice-over and/or subtitles.
> [!IMPORTANT]
> In case of problems - reload the browser. <br>
> `1` request of about `20k` characters is approximately equal to `10MB`, <br>
> `102` requests of `20k` will approach `1GB`, <br>
> this clogs up your RAM and can cause hangs, <br>
> at the moment, I'm trying to solve this problem, and a temporary solution is `browser reload`. <br>
> <br>
> For those with limited internet traffic, it's recommended to control the number of requests you send to avoid excessive traffic consumption and limitations of your internet connection.

0 comments on commit 8757c16

Please sign in to comment.