Я использовал Google Speech API, чтобы успешно преобразовать речь в текст, используя следующий код.
import speech_recognition as sr
import os
#obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
# recognize speech using Google Cloud Speech
GOOGLE_CLOUD_SPEECH_CREDENTIALS = r"""{KEY}
"""
# INSERT THE CONTENTS OF THE GOOGLE CLOUD SPEECH JSON CREDENTIALS FILE HERE
try:
speechOutput = (r.recognize_google_cloud(audio, credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS, language = "si-LK"))
except sr.UnknownValueError:
speechOutput = ("Google Cloud Speech could not understand audio")
except sr.RequestError as e:
speechOutput = ("Could not request results from Google Cloud Speech service; {0}".format(e))
print(speechOutput)
Я хочу знать, могу ли я преобразовать текст в речь с помощью того же API? Если не то, какой API использовать, и образец кода Python для этого. Спасибо!





Для этого вам нужно использовать новый Преобразование текста в речь API, который сейчас находится в бета-версии. Вы можете найти Краткое руководство по Python в разделе клиентской библиотеки документации. Образец является частью репозиторий python-docs-sample. Добавляем сюда соответствующую часть примера для лучшей наглядности:
def synthesize_text(text):
"""Synthesizes speech from the input string of text."""
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
input_text = texttospeech.types.SynthesisInput(text=text)
# Note: the voice can also be specified by name.
# Names of voices can be retrieved with client.list_voices().
voice = texttospeech.types.VoiceSelectionParams(
language_code='en-US',
ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE)
audio_config = texttospeech.types.AudioConfig(
audio_encoding=texttospeech.enums.AudioEncoding.MP3)
response = client.synthesize_speech(input_text, voice, audio_config)
# The response's audio_content is binary.
with open('output.mp3', 'wb') as out:
out.write(response.audio_content)
print('Audio content written to file "output.mp3"')
Обновление: настройка скорости и шага
Вы можете заключить текстовые элементы в тег <prosody>, чтобы изменить rate и pitch. Например:
<prosody rate = "slow" pitch = "-2st">Can you hear me now?</prosody>
Возможные значения для них соответствуют спецификациям W3, которые можно найти в здесь. Это подробно описано в Документы SSML для API преобразования текста в речь, а также приведены некоторые примеры.
Кроме того, вы можете управлять общей скоростью воспроизведения звука с помощью опции speed в <audio>, которая в настоящее время принимает значения от 50 до 200% (с шагом 1%).
Привет, @Guillem, не могли бы вы сказать мне возможные значения Speed & Pitch в этом api? пожалуйста!