Как заставить Python говорить
Как я могу заставить Python сказать какой-то текст?
Я мог бы использовать Фестиваль с подпроцессом, но я не смогу его контролировать (или, может быть, в интерактивном режиме, но он не будет чистым).
Есть ли библиотека TTS Python? Как API для фестиваля, eSpeak,...?
Ответы
Ответ 1
Обратите внимание, что это работает только с python 2.x
Вы должны попробовать использовать пакет PyTTSx, поскольку PyTTS устарел. PyTTSx работает с последней версией python.
http://pypi.python.org/pypi/pyttsx/1.0 → Пакет
Надеюсь, что это поможет
Ответ 2
Немного дрянной, но если вы используете mac, вы можете передать команду терминала на консоль из python.
Попробуйте ввести в терминал следующее:
$ say 'hello world'
И будет голос от мака, который будет говорить об этом. Из python такая вещь относительно проста:
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
Ответ 3
Как использовать функции преобразования текста в речь на ПК с Windows
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice")
speak.Speak("Ciao")
Использование Google Api для преобразования текста в речь, чтобы создать mp3 и прослушать его
После того, как вы установили модуль gtts в cmd:
pip install gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
Ответ 4
Пакет python-espeak доступен в Debian, Ubuntu, Redhat и других дистрибутивах Linux. Он имеет последние обновления и отлично работает.
from espeak import espeak
espeak.synth("Hello world.")
Джонатан Лидерс отмечает, что он также работает на Windows, и вы также можете установить голоса mbrola. См. Веб-сайт espeak по адресу http://espeak.sourceforge.net
Ответ 5
Простой Google привел меня к pyTTS и нескольким документам о это. Тем не менее, он выглядит невосприимчивым и специфичным для речевого механизма Microsoft.
По крайней мере, для Mac OS X вы можете использовать subprocess
для вызова команды say
, что довольно забавно для общения с вашими коллегами, но может быть не очень полезно для ваших нужд.
Похоже, что у Фестиваля есть несколько общедоступных API:
Фестиваль предлагает интерфейс на основе сокетов BSD. Это позволяет Фестивалю работать как сервер и разрешать клиентским программам доступ к нему. В основном сервер предлагает новый интерпретатор команд для каждого клиента, который подключается к нему. Сервер разветвляется для каждого клиента, но это намного быстрее, чем ждать, пока процесс фестиваля начнется с нуля. Также сервер может работать на более крупной машине, предлагая гораздо более быстрый синтез. linky
Существует также полнофункциональный С++ API, из которого вы можете сделать модуль Python (это весело!). Фестиваль также предлагает упрощенный API C - держите прокрутку в этом документе - вы можете бросить ctypes
для одноразового использования.
Возможно, вы обнаружили дыру на рынке?
Ответ 6
Есть несколько способов заставить Python говорить как на Python3, так и на Python2, два замечательных метода:
Если вы используете Mac, в ваш компьютер будет встроен модуль os. Вы можете импортировать модуль os, используя:
import os
Затем вы можете использовать os для запуска команд терминала с помощью команды os.system:
os.system("Your terminal")
В терминале компьютер заставляет говорить с помощью команды "сказать", поэтому, чтобы заставить компьютер говорить, вы просто используете:
os.system("say 'some text'")
Если вы хотите использовать это для произнесения переменной, вы можете использовать:
os.system("say " + myVariable)
Второй способ заставить Python говорить - использовать
Вам придется установить это с помощью
pip isntall pyttsx3
или для Python3
pip3 install pyttsx3
Затем вы можете использовать следующий код, чтобы заставить его говорить:
import pyttsx3
engine = pyttsx3.init()
engine.say("Your Text")
engine.runAndWait()
Надеюсь, это поможет! :)
Ответ 7
Не может быть ничего "специфичного для Python", но рабочие столы KDE и GNOME предлагают текст в речь как часть их поддержки доступности, а также предлагают привязки библиотек python.
Возможно использование связок python для управления библиотеками рабочего стола для текста в речь.
Если вы используете Jython-реализацию Python для JVM, можно использовать FreeTTS.
Наконец, OSX и Windows имеют встроенные API для текста в речь. Их можно использовать из python через ctypes или другие механизмы, такие как COM.
Ответ 8
Вы можете использовать espeak, используя python для преобразования текста в речь.
Вот пример кода python
from subprocess import call
speech="Hello World!"
call(["espeak",speech])
P.S: если espeak не установлен в вашей Linux-системе, вам необходимо сначала установить его.
Откройте терминал (используя ctrl + alt + T) и введите
sudo apt install espeak
Ответ 9
Если вы используете Python 3 и Windows 10, лучшее решение, которое я нашел для работы, от Джованни Джанни. Это сыграло для меня мужским голосом:
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
speak.Speak("This is the pc voice speaking")
Я также нашел это видео на YouTube, так что если вы действительно хотите, вы можете найти кого-то, кого вы знаете, и сделать свой собственный голос.
Ответ 10
Это то, что вы ищете. Полное решение TTS для Mac.
Вы можете использовать этот автономный или как локальный сервер Mac для веб-приложений:
http://wolfpaulus.com/jounal/mac/ttsserver/
Ответ 11
PYTTSX3!
THE COMPLETE SOLUTION TO ALL YOU PYTHON TEXT-TO-SPEECH NEEDS
ЧТО:
Pyttsx3 - это модуль python, который является клоном модуля pyttsx для Python 2.x, за исключением того, что он модифицирован для работы в последних версиях Python 3!
ПОЧЕМУ:
Это на 100% МНОГОПлатформенная И РАБОТАЕТ ОФФЛАЙН И АКТИВНО/ЕЩЕ РАЗ РАЗВИВАЕТСЯ И РАБОТАЕТ С ЛЮБОЙ ВЕРСИЕЙ ПИТОНА
КАК:
Его можно легко установить с помощью pip install pyttsx3
и использовать его так же, как pyttsx:
import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait();
ЗАКЛЮЧЕНИЕ:
Работает легко и без нареканий, поэтому считаю это лучшим решением
Ответ 12
Для текста в речь я нашел этот пакет под названием " gTTS" в Python.
Вы можете попробовать это. Он работает с Python 3.5.
Репозиторий github для этого пакета gTTS-github.