【问题标题】:IBM-Watson Text to Speech throws "403:Forbidden" ErrorIBM-Watson Text to Speech 引发“403:Forbidden”错误
【发布时间】:2020-03-22 23:41:38
【问题描述】:

我正在尝试将 IBM watson api 用于文本到语音服务。如果我使用 curl 命令,该服务可以工作,但是当我尝试使用 Python SDK 使用 srrvice 时,它​​会抛出错误。

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:错误:禁止,代码:403 方法失败,状态码 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)

【问题讨论】:

    标签: python text-to-speech ibm-watson speech-to-text


    【解决方案1】:

    检查当前使用情况(10000 千个字符)。当我达到每月的最大字符数限制时,我遇到了同样的问题。

    (千字符:使用 21091 of 10000)

    【讨论】:

    • 是的,我也觉得这个问题是在超过最大限制的时候出现的。
    【解决方案2】:

    这将是因为您正在端点末尾添加方法和版本。当您使用 Python SDK for 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

    【讨论】:

    • 即使按照上面的建议更改了“IBM_API_ENDPOINT”,我仍然得到以下错误 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:错误:禁止,代码:403 方法失败,状态代码为 403:禁止
    • 当您在 IBM 云上检查您的凭据时,端点显示为什么?这就是你应该使用的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多