Основное руководство по преобразованию текста в речь Python с использованием библиотеки pyttsx3
4 января 2023 г.Позвольте мне сначала объяснить некоторые сокращения и некоторые основные термины, которые мы собираемся использовать в этом посте.
Для тех, кто не знает, что означает TTS, это означает преобразование текста в речь.
Что мы хотим сделать, так это дать какой-то фрагмент текста нашей программе, и она преобразует этот текст в речь и прочитает ее нам.
Другими словами, это заставляет компьютер читать нам.
Сейчас есть разные способы сделать это TTS, но здесь мы обсудим библиотеку, которую я лично использовал и получил хорошие результаты.
Мы будем использовать pyttsx3
.
Что такое pyttsx3
pyttsx3 — это библиотека Python, которая позволяет преобразовывать текст в речь. Таким образом, мы предоставим ему наш текст, и он преобразует этот текст в аудио.
Это оболочка для нескольких механизмов преобразования текста в речь, в том числе механизма преобразования текста в речь (TTS) от Microsoft.
Самое интересное
Теперь давайте посмотрим, как мы используем эту библиотеку для TTS.
Первое и главное, что нам нужно сделать, это установить эту библиотеку, и мы можем сделать это с помощью pip
, который поставляется вместе с установкой Python.
Синтаксис этой установки аналогичен всем установкам pip
.
pip установить pyttsx3
Если в случае, если эта установка выдает ошибку cmd not found
, попробуйте использовать pip3
вместо pip
, например:
pip3 установить pyttsx3
После установки давайте проверим, успешно ли он был установлен, выполнив эту команду:
замораживание pip3
Он вернет список всех пакетов, установленных в нашем env. Если вы найдете pyttsx3
в этом списке, значит мы успешно установили pyttsx3
и готовы использовать его в нашем проекте.
После завершения установки нам нужно импортировать эту библиотеку в наш проект, а затем мы должны инициализировать механизм преобразования текста в речь. Этот движок является наиболее важной частью, и именно он будет выполнять TTS для нас.
Импорт pyttsx3 и инициализация механизма преобразования текста в речь:
импортировать pyttsx3
engine = pyttsx3.init()
.init()
— это метод, который необходимо вызвать для инициализации движка.
Теперь, когда наш движок инициализирован, мы можем использовать его для TTS, вызвав метод say(text)
.
engine.say(текст)
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("Здравствуйте, это тест для pyttsx3")
engine.runAndWait()
Теперь этот runAndWait
важен для нас. Мы хотим запустить этот движок и продолжать работать, пока он не завершит TTS переданного текста.
Кроме того, изменяя громкость, мы также можем изменить голос, которым говорят. Теперь здесь 2 голоса. Один для женского голоса, другой для мужского.
Мы будем использовать тот же синтаксис для установки нашего свойства, что и раньше.
Имейте в виду:
voices[0]
— мужской голос.voices[1]
— женский голос.
Давайте изменим голос:
voices = engine.getProperty('voices')
engine.setProperty('голос', voices[1].id)
Нам нужно будет вызвать свойство id
выбранного голоса, и тогда все готово.
Мы можем скопировать верхний код, и на этот раз голос будет женским, а не мужским по умолчанию.
После того, как мы закончили настройку параметров и тестирование TTS, теперь мы можем сохранить аудиофайл сгенерированного TTS.
Вместо вызова .say()
мы вызовем, на этот раз, .save_to_file
и передадим текст, а также имя выходного файла, в который мы хотим, чтобы наш звук TTS для сохранения.
На этот раз он не будет читать текст вслух, а сохранит его в файл, имя которого мы передали.
engine.save_to_file("Здравствуйте, это тест для pyttsx3.", "test.mp3")
engine.runAndWait()
После запуска у нас будет файл с именем test.mp3
со сгенерированным TTS.
Кроме того, у pyttsx3 есть несколько других методов и свойств, которые вы можете использовать для настройки преобразования текста в речь, таких как установка высоты тона, языка и т. д. Дополнительную информацию об этом можно найти в разделе pyttsx3 документация.
Заключительные слова
Видите, как легко сгенерировать TTS из текста или даже из файла, содержащего текст?
Мы можем использовать эти сгенерированные TTS для различных целей, и это зависит от вас.
Я знаю, теперь вы сможете легко выполнять эту TTS, и вы будете делать потрясающие проекты, используя это.
Теперь сделайте одно: подпишитесь на меня в Twitter, если вам нравится контент и вы хотите оставаться на связи.
Спасибо за чтение, наслаждайтесь контентом.
Оригинал