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