IBM-Watson Text to Speech выдает ошибку «403: запрещено» - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать IBM watson api для преобразования текста в речь. Служба работает, если я использую команду curl, но когда я пытаюсь использовать srrvice, используя Python SDK, она выдает ошибку ниже.

Traceback (последний вызов был последним): Файл "/ anaconda3 / lib / python3 .6 / site-packages / ibm_cloud_sdk_core / base_service.py ", строка 234, в отправке response.status_code, error_message, http_response = response) ibm_cloud_sdk_core.api_exception.ApiException: ошибка: запрещен, код 40: код состояния 403: Запрещено

Ниже приведена команда curl

curl -X GET -u "apikey:myapiKey" --output hello_world.wav "https://api.eu-de.text-to-speech.watson.cloud.ibm.com/text-to-speech/api/v1/synthesize?accept=audio/wav&text=Hallo%20Welt&voice=de-DE_DieterVoice"

Ниже приведен код python

from ibm_watson import TextToSpeechV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator


from ibm_watson import ApiException
import json

IBM_API_ENDPOINT = "https://api.eu-de.text-to-speech.watson.cloud.ibm.com/text-to-speech/api/v1/synthesize"


IBM_TTS_API_KEY = "myAPIKey"

authenticator = IAMAuthenticator(IBM_TTS_API_KEY)
text_to_speech = TextToSpeechV1(authenticator=authenticator)
text_to_speech.set_service_url(IBM_API_ENDPOINT)


try:
    with open('IBM.wav', 'wb') as audio_file:
        audio_file.write(text_to_speech.synthesize("Hallo world", voice='de-DE_DieterVoice', accept='audio/wav').get_result().content)

except ApiException as ex:
    print("Method failed with status code " + str(ex.code) + ": " + ex.message)

1 Ответ

1 голос
/ 23 марта 2020

Это произойдет, потому что вы используете метод и версию в конце конечной точки. Поскольку вы используете Python SDK для IBM-Watson, SDK позаботится о применении метода при вызове synthesize. Следовательно, ваша конечная точка должна быть только:

IBM_API_ENDPOINT = "https://api.eu-de.text-to-speech.watson.cloud.ibm.com"

Для получения дополнительной информации обратитесь к документации API - https://cloud.ibm.com/apidocs/text-to-speech/text-to-speech?code=python#service -endpoint

...