Подтвердить что ты не робот

Как заставить Python говорить

Как я могу заставить Python сказать какой-то текст?

Я мог бы использовать Фестиваль с подпроцессом, но я не смогу его контролировать (или, может быть, в интерактивном режиме, но он не будет чистым).

Есть ли библиотека TTS Python? Как API для фестиваля, eSpeak,...?

4b9b3361

Ответ 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 говорить - использовать

  • Модуль pyttsx

Вам придется установить это с помощью

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.