Как я могу преобразовать текстовый файл в mp3-файл, используя python pyttsx3 и sapi5? - PullRequest
0 голосов
/ 26 декабря 2018

Вот мой код Python ..

import pyttsx3;
engine = pyttsx3.init(driverName='sapi5')
infile = "tanjil.txt"
f = open(infile, 'r')
theText = f.read()
f.close()
engine.say(theText)
engine.runAndWait()

Не удалось сохранить файл в аудиофайл

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

По состоянию на 14 июля 2019 г. я могу сохранять в файл с библиотекой pyttsx3 (без использования другой библиотеки или подключения к Интернету).

Это не документировано, но, глядя наИсходный код в github для класса Engine в "engine.py" (https://github.com/nateshmbhat/pyttsx3/blob/master/pyttsx3/engine.py), Мне удалось найти функцию "save_to_file":

def save_to_file(self, text, filename, name=None):
    '''
    Adds an utterance to speak to the event queue.
    @param text: Text to sepak
    @type text: unicode
    @param filename: the name of file to save.
    @param name: Name to associate with this utterance. Included in
        notifications about this utterance.
    @type name: str
    '''
    self.proxy.save_to_file(text, filename, name)

Я могу использовать это как:

engine.save_to_file('the text I want to save as audio', path_to_save)

Не уверен, что формат - это какой-то необработанный аудиоформат (я думаю, это может быть что-то вроде aiff) - но я могу воспроизвести его в аудиоплеере.

Если вы установите pydub: https://pypi.org/project/pydub/

, тогда вы можете легко конвертировать это в mp3, например:

from pydub import AudioSegment
AudioSegment.from_file(path_to_save).export('converted.mp3', format="mp3")
0 голосов
/ 26 декабря 2018

Установите модуль gTTs

Сначала установите модуль gTTs . gTTs - это базовая утилита cmd для сохранения вашего текстового вывода (речи) в mp3.

Не совсем уверен, используете ли вы python3 или python2, но устанавливаете с помощью следующей команды:

pip3 install gtts

или (python2)

pip install gtts

Сохранение выходного файла в формате mp3

После установки gTT вы можете использовать приведенный ниже код для сохранения вывода:

import pyttsx3
from gtts import gTTS

engine = pyttsx3.init(driverName='sapi5')
infile = "tanjil.txt"
f = open(infile, 'r')
theText = f.read()
f.close()

#Saving part starts from here 
tts = gTTS(text=theText, lang='en')
tts.save("saved_file.mp3")
print("File saved!")

Помните, что сохраненный файл будет создан в текущем рабочем каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...