Позвольте мне сначала объяснить некоторые сокращения и некоторые основные термины, которые мы собираемся использовать в этом посте.

Для тех, кто не знает, что означает TTS, это означает Text To Speech.

По сути, то, что мы хотим сделать, это дать какой-то фрагмент текста нашей программе, и она преобразует этот текст в речь и прочитает ее нам.

Другими словами, это заставляет компьютер читать для нас.

Сейчас есть разные способы сделать это TTS, но здесь мы обсудим библиотеку, которую я лично использовал и получил хорошие результаты.

Мы собираемся использовать pyttsx3.

Что такое pyttsx3

pyttsx3 — это библиотека Python, которая позволяет нам преобразовывать текст в речь. Итак, мы предоставим его, наш текст, и он преобразует этот текст в аудио.

Это оболочка для нескольких механизмов преобразования текста в речь, включая механизм преобразования текста в речь (TTS) от Microsoft.

Веселье

Теперь давайте посмотрим, как мы используем эту библиотеку для TTS.

Первое и главное, что нам нужно сделать, это установить эту библиотеку, и мы можем сделать это с помощью pip, который поставляется вместе с установкой python.

Синтаксис этой установки аналогичен всем pip installs.

pip install pyttsx3

Если в случае, если эта установка выдает ошибку cmd not found, попробуйте использовать pip3 вместо pip, например:

pip3 install pyttsx3

После установки давайте проверим, успешно ли он был установлен, выполнив эту команду:

pip3 freeze

Он вернет список всех пакетов, установленных в нашем env. Если вы найдете pyttsx3 в этом списке, значит мы успешно установили pyttsx3 и готовы использовать его в нашем проекте.

После завершения установки нам нужно импортировать эту библиотеку в наш проект, а затем мы должны инициализировать текстовый речевой движок. Этот двигатель является наиболее важной частью, и именно он будет выполнять для нас TTS.

Importing pyttsx3 and initializing the text-to-speech engine:

import pyttsx3
engine = pyttsx3.init()

.init() — это метод, который необходимо вызвать для инициализации движка.

Теперь, когда наш движок инициализирован, мы можем использовать его для нашей TTS, вызвав метод say(text).

engine.say(text)
engine.runAndWait()

Эта скорость и громкость произносимого текста будут установлены по умолчанию, и мы можем изменить их следующими способами.

Все, что нам нужно, это установить некоторые значения для нашего движка. Это все равно, что говорить двигателю, что использовать.

Итак, мы должны сделать это следующим образом:

  • Сначала мы получим это свойство, используя getProperty(name)
  • Затем мы установим это свойство, используя setProperty(name, value)

Мы установим скорость, а также объем двигателя.

Настройка скорости и громкости речи:

rate = engine.getProperty('rate')
engine.setProperty('rate', rate-100)

По умолчанию скорость равна 200, поэтому мы уменьшим ее до 100. rate — это скорость речи, а 200 — это для нас много. Поэтому мы снизили его.

Уточните, что это за ставка??

После установки скорости мы изменим или установим громкость, сначала получив свойство громкости, а затем установив его.

volume = engine.getProperty('volume')
engine.setProperty('volume', volume+0.50)

Объем по умолчанию равен 1, т.е. 100%, мы увеличим его до 150%, добавив .50 к полученному значению при чтении свойства объема.

Теперь, когда мы закончили настройку этих двух свойств, мы назовем say(), и теперь речь будет иметь наш параметр, то есть скорость 1x и громкость 1.50.

engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()

Теперь это runAndWait важно для нас. Мы хотим запустить этот движок и продолжать работать, пока он не завершит TTS переданного текста.

Кроме того, изменяя громкость, мы также можем изменить голос, которым говорят. Теперь здесь 2 голоса. Один для женщины и один для мужчины.

Мы будем использовать тот же синтаксис для установки нашего свойства, что и ранее.

Иметь ввиду:

  • voices[0] для мужчин.
  • voices[1] для женщин.

Давайте изменим голос:

voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)

Нам нужно будет вызвать свойство id выбранного голоса, и тогда все готово.

Мы можем скопировать верхний код .say(), и на этот раз голос будет женский, а не мужской по умолчанию.

После того, как мы закончили настройку параметров и тестирование TTS, теперь мы можем сохранить аудиофайл сгенерированного TTS.

Вместо вызова .say() мы на этот раз вызовем .save_to_file и передадим текст, а также имя выходного файла, в который мы хотим сохранить наше аудио TTS.

На этот раз он не будет читать текст вслух, а сохранит его в файл, имя которого мы передали.

engine.save_to_file("Hello, this is test for pyttsx3.", "test.mp3")
engine.runAndWait()

После запуска у нас будет файл с именем test.mp3 со сгенерированным TTS.

Кроме того, у pyttsx3 есть несколько других методов и свойств, которые вы можете использовать для настройки преобразования текста в речь, таких как настройка высоты тона, языка и т. д. Вы можете найти больше информации об этом в документации pyttsx3.

Заключительные слова

Посмотрите, как легко сгенерировать TTS из текста или даже из файла, содержащего текст.

Мы можем использовать эти сгенерированные TTS для различных целей, и это для вас.

Я знаю, теперь вы сможете легко выполнять эту TTS, и вы будете делать потрясающие проекты, используя это.

Теперь сделайте одно: подпишитесь на меня в Твиттере, если вам нравится контент и вы хотите оставаться на связи.

Спасибо за прочтение, наслаждайтесь контентом.