Как изменить голос в pyttsx3?
Это опять я. В сей раз расклад такой:
Есть самая банальная программа для произношения слов на питоне:
import pyttsx3 tts = pyttsx3.init() voices = tts.getProperty('voices') tts.setProperty("voice", "ru") for voice in voices: if voice.name == "Irina": tts.setProperty("voice", voice.id) tts.say("Привет") tts.runAndWait()
Как я в неё могу добавить другие голоса, которые нельзя просто скачать в windows?
P.s. Какую-нибудь Алёну допустим (голос ближе к человеческому)
- Вопрос задан более двух лет назад
- 3615 просмотров
1 комментарий
Средний 1 комментарий
ИИ на Python для распознавания голоса и выполнения команд
На Python можно строить как простые программы, так и сложные ИИ системы. В данной статье мы покажем как реализовать распознавание голоса и выполнение различных команд.
Перед стартом работы, вам стоит убедиться в нескольких вещах:
- у вас установлен Python на вашем компьютере;
- у вас установлен текстовый редактор, к примеру PyCharm ;
- у вас установлен пакетный менеджер Pip .
Установка библиотек
Для распознавания голоса вам необходимо установить библиотеки:
- SpeechRecognition — команда pip install SpeechRecognition ;
- gTTS — команда pip install gTTS ;
- PyAudio — команда pip install PyAudio .
Все библиотеки стоит устанавливать через терминал в ваш проект через программу PyCharm:

После установки всех библиотек начните прописывать код самой программы. Ниже мы приведем весь код программы с комментариями, дабы вам было проще в нём разобраться:
# Подключение всех необходимых библиотек # Нам нужно: speech_recognition, os, sys, webbrowser # Для первой бибилотеки прописываем также псевдоним import speech_recognition as sr import os import sys import webbrowser # Функция, позволяющая проговаривать слова # Принимает параметр "Слова" и прогроваривает их def talk(words): print(words) # Дополнительно выводим на экран os.system("say " + words) # Проговариваем слова # Вызов функции и передача строки # именно эта строка будет проговорена компьютером talk("Привет, чем я могу помочь вам?") """ Функция command() служит для отслеживания микрофона. Вызывая функцию мы будет слушать что скажет пользователь, при этом для прослушивания будет использован микрофон. Получение данные будут сконвертированы в строку и далее будет происходить их проверка. """ def command(): # Создаем объект на основе библиотеки # speech_recognition и вызываем метод для определения данных r = sr.Recognizer() # Начинаем прослушивать микрофон и записываем данные в source with sr.Microphone() as source: # Просто вывод, чтобы мы знали когда говорить print("Говорите") # Устанавливаем паузу, чтобы прослушивание # началось лишь по прошествию 1 секунды r.pause_threshold = 1 # используем adjust_for_ambient_noise для удаления # посторонних шумов из аудио дорожки r.adjust_for_ambient_noise(source, duration=1) # Полученные данные записываем в переменную audio # пока мы получили лишь mp3 звук audio = r.listen(source) try: # Обрабатываем все при помощи исключений """ Распознаем данные из mp3 дорожки. Указываем что отслеживаемый язык русский. Благодаря lower() приводим все в нижний регистр. Теперь мы получили данные в формате строки, которые спокойно можем проверить в условиях """ zadanie = r.recognize_google(audio, language="ru-RU").lower() # Просто отображаем текст что сказал пользователь print("Вы сказали: " + zadanie) # Если не смогли распознать текст, то будет вызвана эта ошибка except sr.UnknownValueError: # Здесь просто проговариваем слова "Я вас не поняла" # и вызываем снова функцию command() для # получения текста от пользователя talk("Я вас не поняла") zadanie = command() # В конце функции возвращаем текст задания # или же повторный вызов функции return zadanie # Данная функция служит для проверки текста, # что сказал пользователь (zadanie - текст от пользователя) def makeSomething(zadanie): # Попросту проверяем текст на соответствие # Если в тексте что сказал пользователь есть слова # "открыть сайт", то выполняем команду if 'открыть сайт' in zadanie: # Проговариваем текст talk("Уже открываю") # Указываем сайт для открытия url = 'https://itproger.com' # Открываем сайт webbrowser.open(url) # если было сказано "стоп", то останавливаем прогу elif 'стоп' in zadanie: # Проговариваем текст talk("Да, конечно, без проблем") # Выходим из программы sys.exit() # Аналогично elif 'имя' in zadanie: talk("Меня зовут Сири") # Вызов функции для проверки текста будет # осуществляться постоянно, поэтому здесь # прописан бесконечный цикл while while True: makeSomething(command())
Как видите, программа простая и не требует гигантского количества строчек кода. Сам код можете подстраивать в любую программу, дабы добавить в неё функционал прослушивания речи.
Также предлагаем посмотреть видео, где все описано еще более детально:
Полезные ссылки из видео:
- Скачать редактор PyCharm ;
- Скачать пакетный менеджер Pip ;
- Скачать Homebrew для установки PyAudio;
- Пример установки библиотеки PyAudio ;
- Поддержка различных языков .
Основное руководство по преобразованию текста в речь Python с использованием библиотеки pyttsx3

Позвольте мне сначала объяснить некоторые сокращения и некоторые основные термины, которые мы собираемся использовать в этом посте.
Для тех, кто не знает, что означает TTS, это означает преобразование текста в речь.
Что мы хотим сделать, так это дать какой-то фрагмент текста нашей программе, и она преобразует этот текст в речь и прочитает ее нам.
Другими словами, это заставляет компьютер читать нам.
Сейчас есть разные способы сделать это TTS, но здесь мы обсудим библиотеку, которую я лично использовал и получил хорошие результаты.
Мы будем использовать pyttsx3 .
Что такое pyttsx3
pyttsx3 — это библиотека Python, которая позволяет преобразовывать текст в речь. Таким образом, мы предоставим ему наш текст, и он преобразует этот текст в аудио.
Это оболочка для нескольких механизмов преобразования текста в речь, в том числе механизма преобразования текста в речь (TTS) от Microsoft.
Самое интересное
Теперь давайте посмотрим, как мы используем эту библиотеку для TTS.
Первое и главное, что нам нужно сделать, это установить эту библиотеку, и мы можем сделать это с помощью pip , который поставляется вместе с установкой Python.
Синтаксис этой установки аналогичен всем установкам pip .
pip установить pyttsx3
Если в случае, если эта установка выдает ошибку cmd not found , попробуйте использовать pip3 вместо pip , например:
pip3 установить pyttsx3
После установки давайте проверим, успешно ли он был установлен, выполнив эту команду:
Он вернет список всех пакетов, установленных в нашем env. Если вы найдете pyttsx3 в этом списке, значит мы успешно установили pyttsx3 и готовы использовать его в нашем проекте.
После завершения установки нам нужно импортировать эту библиотеку в наш проект, а затем мы должны инициализировать механизм преобразования текста в речь. Этот движок является наиболее важной частью, и именно он будет выполнять TTS для нас.
Импорт pyttsx3 и инициализация механизма преобразования текста в речь:
.init() — это метод, который необходимо вызвать для инициализации движка.
Теперь, когда наш движок инициализирован, мы можем использовать его для TTS, вызвав метод say(text) .
Эта скорость и громкость произносимого текста будут использоваться по умолчанию, и мы можем изменить их следующими способами.
Все, что нам нужно, это установить некоторые значения для нашего движка. Это все равно, что указывать движку, что использовать.
Итак, мы должны сделать это следующим образом:
* Во-первых, мы получим это свойство, используя getProperty(name) * Затем мы установим это свойство с помощью setProperty(name, value)
Мы установим скорость, а также объем двигателя.
Настройка скорости и громкости речи:
По умолчанию скорость равна 200, поэтому мы уменьшим ее до 100. rate — это скорость речи, а 200 для нас — это много. Поэтому мы снизили его.
Скорость — это просто скорость, с которой говорящий будет говорить пройденный текст.
После установки скорости мы изменим или установим громкость, сначала получив свойство громкости, а затем установив его.
Громкость по умолчанию равна 1, т.е. 100%, мы увеличим ее до 150%, добавив .50 к полученному значению при чтении свойства громкости.
Теперь, когда мы закончили настройку этих двух свойств, мы вызовем say() , и теперь речь будет иметь наш параметр, то есть скорость 1x и 1,50 . громкость.
engine.say(«Здравствуйте, это тест для pyttsx3»)
Теперь этот runAndWait важен для нас. Мы хотим запустить этот движок и продолжать работать, пока он не завершит TTS переданного текста.
Кроме того, изменяя громкость, мы также можем изменить голос, которым говорят. Теперь здесь 2 голоса. Один для женского голоса, другой для мужского.
Мы будем использовать тот же синтаксис для установки нашего свойства, что и раньше.
Имейте в виду:
- voices[0] — мужской голос.
- voices[1] — женский голос.
Давайте изменим голос:
Нам нужно будет вызвать свойство id выбранного голоса, и тогда все готово.
Мы можем скопировать верхний код, и на этот раз голос будет женским, а не мужским по умолчанию.
После того, как мы закончили настройку параметров и тестирование TTS, теперь мы можем сохранить аудиофайл сгенерированного TTS.
Вместо вызова .say() мы вызовем, на этот раз, .save_to_file и передадим текст, а также имя выходного файла, в который мы хотим, чтобы наш звук TTS для сохранения.
На этот раз он не будет читать текст вслух, а сохранит его в файл, имя которого мы передали.
engine.save_to_file(«Здравствуйте, это тест для pyttsx3.», «test.mp3»)
После запуска у нас будет файл с именем test.mp3 со сгенерированным TTS.
Кроме того, у pyttsx3 есть несколько других методов и свойств, которые вы можете использовать для настройки преобразования текста в речь, таких как установка высоты тона, языка и т. д. Дополнительную информацию об этом можно найти в разделе pyttsx3 документация.
Заключительные слова
Видите, как легко сгенерировать TTS из текста или даже из файла, содержащего текст?
Мы можем использовать эти сгенерированные TTS для различных целей, и это зависит от вас.
Я знаю, теперь вы сможете легко выполнять эту TTS, и вы будете делать потрясающие проекты, используя это.
Теперь сделайте одно: подпишитесь на меня в Twitter, если вам нравится контент и вы хотите оставаться на связи.
Спасибо за чтение, наслаждайтесь контентом.
Изменение голоса pyttsx3
итак, у меня есть голосовой помощник, имя — Джарвис, для реализации голоса использую библиотеку pyttsx3, перерыл весь интернет, не получается изменить ему голос, говорит по дефолту женским, прошу мен помочь(ОС macos)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import pyttsx3 engine = pyttsx3.init() engine.setProperty('rate', 180) voices = engine.getProperty('voices') # Задать голос по умолчанию engine.setProperty('voice', 'ru') def speaker(text): engine.say(text) engine.runAndWait()
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

pyttsx3 выводит только стандартные голоса Windows 10
Мне нужен офлайн синтезатор речи, с которым можно работать на pyton в среде windows 10 .

Изменение голоса
Ситуация такая, нужно записать диалог. Какой войс морфер посоветуете? Запись должна вестись в.
Изменение голоса
Приветствую! Подскажите софтину для изменения голоса. Нет, не чтобы голос с микрофона звучал.
Изменение голоса
Народ, хочу написать кроссплатформенную прогу которая будет записывать на микрофон голос и потом.
VAD и прерывистая передача голоса, какой кодек можно использовать для передачи голоса?
Здравствуйте, использую UDP клиент и сервер для передачи голоса, голос отсеиваю через VAD фильтр.
