ven-speaker-py
Форк библиотеки speakerpy с модификациями и улучшениями для потоковой работы с аудио и TTS.
🔹 Описание
ven-speaker-py — это Python-библиотека для синтеза речи с модификациями:
- Потоковая передача аудио в байтовом виде.
- Исправленная функция
to_mp3->to_wav. - Поддержка гибкой настройки скорости, громкости и sample rate.
- Постепенно добавляются новые функции и улучшения под конкретные задачи.
Библиотека подходит для создания голосовых приложений, озвучивания текста в реальном времени и интеграции с другими проектами.
Особенности и преимущества SpeakerPy
- Транскрипция чисел и английских слов: SpeakerPy способен озвучивать числа и английские слова через транскрипцию.
- Синтез больших объемов текста: SpeakerPy может синтезировать большие объемы текста без проблем.
- Корректное деление текста на куски: благодаря использованию библиотеки nltk, SpeakerPy корректно делит большие тексты на предложения.
- Кеширование синтезированного текста: SpeakerPy синтезирует и хранит текст по кускам, что позволяет кешировать уже ранее синтезированный текст и избежать повторного синтезирования. После первой генерации все последующие обычно занимают менее четверти секунды (имеется в виду не полная генерация, а момент, когда начинает зачитываться речь) на обычном процессоре!
- Работа в автономном режиме: SpeakerPy синтезирует звук локально, без подключения к интернету, что позволяет использовать его в автономном режиме.
- Сохранение синтезированного текста в MP3: SpeakerPy предоставляет возможность сохранять синтезированный текст в формате MP3.
⚙️ Установка через pip
ven-speaker-py можно установить с помощью pip:
pip install venspeakerpy
🛠️ Основные возможности
- Преобразование текста в речь.
- Потоковая генерация аудио чанков.
- Поддержка сохранения в различные форматы, включая mp3.
- Настройка скорости, громкости и sample rate.
- Интеграция в голосовые боты и приложения реального времени.
🚀 Системные требования
- 2 ГБ ОЗУ
- Наличие процессора :D
💡 Основные компоненты
Проект состоит из двух основных компонентов: Lib Speak и Lib SL Text.
Lib Speak
Lib Speak включает классы Speaker и SpeakerBase для синтеза речи с использованием моделей Silero. Основные методы класса Speaker:
speak:произнесение текста.Теперь это потоковая передача звука в байтах, что позволяет использовать звук где-то еще (например, для трансляции в Discord)to_wav: конвертация текста в аудиофайл wav.
📄 Пример использования функции speak
from lib_speak import Speaker
from lib_sl_text import SeleroText
import sounddevice as sd
import queue
import threading
import numpy as np
speaker = Speaker(model_id="ru_v3", language="ru", speaker="baya", device="cpu")
def text_to_speech(txt: str):
audio_queue = queue.Queue()
def audio_player():
with sd.OutputStream(samplerate=48000, channels=1, dtype='float32') as stream:
while True:
speech_chunk = audio_queue.get()
if speech_chunk is None:
break
audio_array = np.frombuffer(speech_chunk, dtype=np.float32)
stream.write(audio_array)
player_thread = threading.Thread(target=audio_player, daemon=True)
player_thread.start()
for chunk, text in speaker.speak(text=text.text, sample_rate=48000, speed=1.1, volume=0.7):
audio_queue.put(chunk)
audio_queue.put(None)
player_thread.join()
text = SeleroText("Пример текста для синтеза речи")
text_to_speech(text)
#p.s. я не проверял этот код, просто куски из своего проекта сюда напихал в надежде, что у вас заработает, так что удачи.
Пример использования функции to_wav
from lib_speak import Speaker
text = SeleroText("Пример текста для синтеза речи")
speaker = Speaker(model_id="ru_v3", language="ru", speaker="aidar", device="cpu")
speaker.to_wav(text=text.text, sample_rate=48000, speed=1.0, volume=1.0, name_text='output', audio_dir='output')
Lib SL Text
Lib SL Text содержит класс SeleroText для обработки текста перед синтезом речи. Основной метод класса SeleroText:
chunk: разделение текста на блоки.
Использование класса SeleroText
text = SeleroText("Привет, мир!", to_language="ru")
Разделение текста на куски с помощью метода chunk():
for chunk in text.chunk():
print(chunk)
Ресурсы и ссылки
Metadata
Release files for venSpeakerPy 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| venspeakerpy-0.1.1.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| venspeakerpy-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / venspeakerpy-0.1.1.tar.gz
| Download URL | venspeakerpy-0.1.1.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d3ccafc4c186bfb53ab40a50a8ae96901a1e9ee8b8fd0b0d0a3928b10cb7af85
|
|
BLAKE2b-256 checksum How to use checksums |
92e1b97f18167dfd9de63a471d496d0b2f92fab51ba8d23dd09fa4452f8ee6c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.6
|
Release files / venspeakerpy-0.1.1-py3-none-any.whl
| Download URL | venspeakerpy-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
64a85dd7d89d4aea390e3654f531c4a2f3df09b51a524530e710ffe5e1b789e2
|
|
BLAKE2b-256 checksum How to use checksums |
4abebe72261250b9305d130e65747a745b1f2820c689735dcc27347a71076b07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.6
|