Руководство по использованию библиотеки pyttsx3 для генерации речи в Python
13 мая 2023 г.Pyttsx3 - это простая и удобная библиотека Python для синтеза речи. Она позволяет создавать приложения, которые могут генерировать голосовые уведомления, речевые ответы и даже проговаривать текст.
В этом уроке мы рассмотрим, как использовать Pyttsx3 для создания простых приложений с синтезом речи.
Шаг 1: Установка Pyttsx3
Перед тем, как начать работу с Pyttsx3, необходимо установить библиотеку. Это можно сделать с помощью pip - менеджера пакетов для Python. Откройте терминал и введите следующую команду:
pip install pyttsx3
Шаг 2: Создание простого приложения
После установки Pyttsx3 мы можем начать создавать наше первое приложение. Для этого создадим новый файл main.py
.
import pyttsx3
Создаем объект класса TTS (text-to-speech)
engine = pyttsx3.init()
Устанавливаем настройки голоса
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
Генерируем речь
engine.say("Привет, мир!")
engine.runAndWait()
В этом примере мы создаем объект engine
класса pyttsx3.init()
, который будет использоваться для генерации речи. Затем мы устанавливаем настройки голоса, выбирая первый доступный голос из списка. Наконец, мы используем метод say()
для генерации речи и метод runAndWait()
для проигрывания речи.
Вы можете запустить этот пример, чтобы услышать голосовое приветствие.
Шаг 3: Изменение настроек голоса
Pyttsx3 позволяет настраивать различные параметры голоса, такие как скорость речи и высота голоса. Чтобы изменить эти параметры, мы можем использовать метод setProperty()
. Вот пример:
# Изменяем скорость речи
engine.setProperty('rate', 150)
Изменяем высоту голоса
engine.setProperty('pitch', 50)
Этот код устанавливает скорость речи на 150 слов в минуту и высоту голоса на 50.
Шаг 4: Генерация речи из текста
Pyttsx3 также позволяет генерировать речь из текста. Вот пример:
text = "Это текст, который мы хотим проговорить."
engine.say(text)
engine.runAndWait()
В этом примере мы используем метод say()
для генерации речи из
Шаг 5: Произношение текста
Теперь мы готовы к тому, чтобы наконец произнести текст. Для этого создадим экземпляр класса Engine
и вызовем его метод say()
:
import pyttsx3
engine = pyttsx3.init()
engine.say("Привет, мир!")
engine.runAndWait()
При вызове метода say()
наш движок произнесет переданный ему текст. Метод runAndWait()
позволяет дождаться окончания произнесения текста перед выходом из программы.
Шаг 6: Изменение настроек произношения
Библиотека pyttsx3
позволяет изменять настройки произношения текста. Например, можно изменить скорость речи, громкость и тон голоса.
Для изменения настроек нужно создать экземпляр класса Engine
и вызвать его метод setProperty()
с нужными параметрами:
import pyttsx3
engine = pyttsx3.init()
engine.setProperty('rate', 150) # установим скорость речи
engine.setProperty('volume', 0.8) # установим громкость
engine.setProperty('voice', 'ru') # установим русский голос
engine.say("Привет, мир!")
engine.runAndWait()
Значение параметра rate
определяет скорость речи, где 100 - нормальная скорость. Значение параметра volume
указывает громкость речи, где 1 - максимальная громкость. Значение параметра voice
определяет голос, на котором будет произнесен текст.
Шаг 7: Получение списка доступных голосов
Для того чтобы узнать, какие голоса доступны для использования, можно воспользоваться методом getProperty()
:
import pyttsx3
engine = pyttsx3.init()
получим список доступных голосов
voices = engine.getProperty('voices')
выведем информацию о каждом голосе
for voice in voices:
print("Name:", voice.name)
print("ID:", voice.id)
print("Languages:", voice.languages)
print("Gender:", voice.gender)
print("Age:", voice.age)
Метод getProperty('voices')
возвращает список объектов типа pyttsx3.voice.Voice
, каждый из которых представляет собой голос, доступный для использования.
Заключение
В этом уроке мы рассмотрели библиотеку pyttsx3
, которая позволяет произносить текст с помощью компьютера. Мы научились создавать экземпляр класса Engine
, настраивать его и произносить текст.
Кроме того, мы рассмотрели возможность использования различных
Оригинал