Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/KoljaB/RealtimeTTS
Browse files Browse the repository at this point in the history
  • Loading branch information
KoljaB committed Nov 1, 2024
2 parents 6f82e8b + a33e23f commit 8b1bc6d
Show file tree
Hide file tree
Showing 17 changed files with 589 additions and 11 deletions.
2 changes: 1 addition & 1 deletion docs/ar/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*مكتبة تحويل النص إلى كلام سهلة الاستخدام ومنخفضة الكمون للتطبيقات في الوقت الحقيقي*

Expand Down
2 changes: 1 addition & 1 deletion docs/de/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

* Einfach zu verwendende Text-to-Speech-Bibliothek mit geringer Latenz für Echtzeitanwendungen*

Expand Down
2 changes: 1 addition & 1 deletion docs/en/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*Easy to use, low-latency text-to-speech library for realtime applications*

Expand Down
2 changes: 1 addition & 1 deletion docs/es/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*Biblioteca de conversión de texto en voz fácil de usar y de baja latencia para aplicaciones en tiempo real.

Expand Down
2 changes: 1 addition & 1 deletion docs/fr/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*Bibliothèque de synthèse vocale à faible latence et facile à utiliser pour les applications en temps réel*

Expand Down
2 changes: 1 addition & 1 deletion docs/hi/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*रीयल-टाइम अनुप्रयोगों के लिए उपयोग में आसान, कम-विलंबता वाला टेक्स्ट-टू-स्पीच लाइब्रेरी*

Expand Down
2 changes: 1 addition & 1 deletion docs/it/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#RealtimeTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*Libreria text-to-speech facile da usare e a bassa latenza per applicazioni in tempo reale*

Expand Down
2 changes: 1 addition & 1 deletion docs/ja/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# リアルタイムTTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*リアルタイムアプリケーション向けの使いやすく、低遅延のテキスト読み上げライブラリ*

Expand Down
2 changes: 1 addition & 1 deletion docs/ko/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 실시간TTS

[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[EN](../en/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*실시간 애플리케이션을 위한 사용하기 쉽고 저지연 텍스트 음성 변환 라이브러리*

Expand Down
2 changes: 1 addition & 1 deletion docs/pt/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# RealtimeTTS

[PT](../pt/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md)
[PT](../pt/index.md) | [FR](../fr/index.md) | [ES](../es/index.md) | [DE](../de/index.md) | [IT](../it/index.md) | [ZH](../zh/index.md) | [JA](../ja/index.md) | [HI](../hi/index.md) | [KO](../ko/index.md) | [RU](../ru/index.md)

*Biblioteca de texto para fala fácil de usar e de baixa latência para aplicações em tempo real*

Expand Down
171 changes: 171 additions & 0 deletions docs/ru/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
## Конфигурация

### Параметры инициализации для `TextToAudioStream`

Когда вы инициализируете класс `TextToAudioStream`, у вас есть различные параметры для настройки его поведения. Вот доступные параметры:

#### `engine` (BaseEngine)
- **Тип**: BaseEngine
- **Обязательный**: Да
- **Описание**: Основной движок, отвечающий за синтез текста в аудио. Вы должны предоставить экземпляр `BaseEngine` или его подкласса для включения синтеза аудио.

#### `on_text_stream_start` (callable)
- **Тип**: Вызываемая функция
- **Обязательная**: Нет
- **Описание**: Эта необязательная функция обратного вызова вызывается, когда начинается поток текста. Используйте его для любой настройки или ведения журнала, которые вам могут понадобиться.

#### `on_text_stream_stop` (callable)
- **Тип**: Вызываемая функция
- **Обязательна**: Нет Эта необязательная функция обратного вызова активируется, когда поток текста заканчивается. Вы можете использовать это для задач очистки или ведения журнала.

#### `on_audio_stream_start` (callable)
- **Тип**: Вызываемая функция
- **Обязательная**: Нет
- **Описание**: Эта необязательная функция обратного вызова вызывается, когда начинается аудиопоток. Полезно для обновления пользовательского интерфейса или ведения журналов событий.

#### `on_audio_stream_stop` (callable)
- **Тип**: Вызываемая функция
- **Обязательно**: Нет
- **Описание**: Эта необязательная функция обратного вызова вызывается, когда аудиопоток останавливается. Идеально подходит для очистки ресурсов или задач постобработки.

#### `on_character` (callable)
- **Тип**: Вызов функции Нет
- **Описание**: Эта необязательная функция обратного вызова вызывается, когда обрабатывается один символ.

#### `output_device_index` (int)
- **Тип**: Целое число
- **Обязательно**: Нет
- **По умолчанию**: Нет
- **Описание**: Указывает индекс устройства вывода, которое следует использовать. Ничего не использует устройство по умолчанию.

#### `tokenizer` (string)
- **Тип**: Строка
- **Обязательно**: Нет
- **По умолчанию**: nltk
- **Описание**: Токенизатор для разбиения на предложения (currently "nltk" and "stanza" are supported).

#### `language` (string)
- **Тип**: Строка
- **Обязательный**: Нет
- **По умолчанию**: en
- **Описание**: Язык, который использовать для разбиения предложений.

#### `muted` (bool)
- **Тип**: Bool
- **Обязательный**: Нет
- **По умолчанию**: False
- **Описание**: Глобальный параметр отключения звука. Если True, поток pyAudio не будет открыт. Отключает воспроизведение аудио через локальные динамики (в случае, если вы хотите синтезировать в файл или обрабатывать аудиофрагменты) и переопределяет настройку отключения звука в параметрах воспроизведения.

#### `level` (int)
- **Тип**: Целое число
- **Обязательный**: Нет
- **По умолчанию**: `logging.WARNING`
- **Описание**: Устанавливает уровень логирования для внутреннего логгера. Это может быть любое целое число из встроенного модуля `logging` Python.

#### Пример использования:

```python
engine = YourEngine() # Замените на ваш движок
stream = TextToAudioStream(
engine=engine,
on_text_stream_start=my_text_start_func,
on_text_stream_stop=my_text_stop_func,
on_audio_stream_start=my_audio_start_func,
on_audio_stream_stop=my_audio_stop_func,
level=logging.INFO
)
```

### Методы

#### `play` и `play_async`

Эти методы отвечают за выполнение синтеза текста в аудио и воспроизведение аудиопотока. Разница в том, что `play` является блокирующей функцией, в то время как `play_async` выполняется в отдельном потоке, позволяя другим операциям продолжаться.

##### Параметры:

###### `fast_sentence_fragment` (bool)
- **По умолчанию**: `True`
- **Описание**: Когда установлено значение `True`, метод будет приоритизировать скорость, генерируя и воспроизводя фрагменты предложений быстрее. Это полезно для приложений, где важна задержка.

###### `fast_sentence_fragment_allsentences` (bool)
- **По умолчанию**: `False`
- **Описание**: Когда установлено значение `True`, применяется быстрая обработка фрагментов предложений ко всем предложениям, а не только к первому.

###### `fast_sentence_fragment_allsentences_multiple` (bool)
- **По умолчанию**: `Ложь`
- **Описание**: Когда установлено на `True`, позволяет выдавать несколько фрагментов предложений вместо одного.

###### `buffer_threshold_seconds` (float)
- **По умолчанию**: `0.0`
- **Описание**: Указывает время в секундах для порога буферизации, что влияет на плавность и непрерывность воспроизведения аудио.

- **Как это работает**: Перед синтезом нового предложения система проверяет, осталось ли в буфере больше аудиоматериала, чем время, указанное в `buffer_threshold_seconds`. Если да, он извлекает другое предложение из генератора текста, предполагая, что сможет получить и синтезировать это новое предложение в пределах временного окна, предоставленного оставшимся аудио в буфере. Этот процесс позволяет движку синтеза речи иметь больше контекста для лучшего синтеза, улучшая пользовательский опыт.

Большее значение гарантирует наличие большего объема предварительно буферизованного аудио, что снижает вероятность тишины или пауз во время воспроизведения. Если вы испытываете перерывы или паузы, рассмотрите возможность увеличения этого значения.

###### `minimum_sentence_length` (int)
- **По умолчанию**: `10`
- **Описание**: Устанавливает минимальную длину строки в символах, чтобы считать её предложением для синтеза. Это влияет на то, как обрабатываются и воспроизводятся текстовые фрагменты.

###### `minimum_first_fragment_length` (int)
- **По умолчанию**: `10`
- **Описание**: Минимальное количество символов, необходимое для первого фрагмента предложения перед завершением.

###### `log_synthesized_text` (bool)
- **По умолчанию**: `False`
- **Описание**: Когда включено, записывает текстовые фрагменты по мере их синтезации в аудио. Полезно для аудита и отладки.

###### `reset_generated_text` (bool)
- **По умолчанию**: `True`
- **Описание**: Если верно, сбросьте сгенерированный текст перед обработкой.

###### `output_wavfile` (str)
- **По умолчанию**: `None`
- **Описание**: Если установлено, сохранить аудио в указанный WAV файл.

###### `on_sentence_synthesized` (вызываемая функция)
- **По умолчанию**: `None`
- **Описание**: Функция обратного вызова, которая вызывается после синтеза одного фрагмента предложения.

###### `before_sentence_synthesized` (вызываемая функция)
- **По умолчанию**: `None`
- **Описание**: Функция обратного вызова, которая вызывается перед синтезом отдельного фрагмента предложения.

###### `on_audio_chunk` (вызываемая функция)
- **По умолчанию**: `None`
- **Описание**: Функция обратного вызова, которая вызывается, когда готов один аудиофрагмент.

###### `tokenizer` (str)
- **По умолчанию**: `"nltk"`
- **Описание**: Токенизатор для разбиения на предложения. В настоящее время поддерживает "nltk" и "stanza".

###### `tokenize_sentences` (вызываемый объект)
- **По умолчанию**: `None`
- **Описание**: Пользовательская функция, которая разбивает предложения на токены из входного текста. Вы можете предоставить свой собственный легковесный токенизатор, если вас не устраивают nltk и stanza. Он должен принимать текст в виде строки и возвращать разделённые предложения в виде списка строк.

###### `language` (str)
- **По умолчанию**: `"en"`
- **Описание**: Язык, используемый для разделения предложений.

###### `context_size` (int)
- **По умолчанию**: `12`
- **Описание**: Количество символов, используемых для установления контекста при определении границ предложений. Более широкий контекст улучшает точность определения границ предложений.

###### `context_size_look_overhead` (int)
- **По умолчанию**: `12`
- **Описание**: Дополнительный размер контекста для просмотра вперед при определении границ предложений.

###### `muted` (bool)
- **По умолчанию**: `False`
- **Описание**: Если True, отключает воспроизведение аудио через локальные динамики. Полезно, когда вы хотите синтезировать в файл или обрабатывать аудиофрагменты без их воспроизведения.

###### `sentence_fragment_delimiters` (str)
- **По умолчанию**: `".?!;:,\n…)]}。-"`
- **Описание**: Строка символов, которые считаются разделителями предложений.

###### `force_first_fragment_after_words` (int)
- **По умолчанию**: `15`
- **Описание**: Количество слов, после которых первый фрагмент предложения должен быть выдан.


Loading

0 comments on commit 8b1bc6d

Please sign in to comment.