Python 中的 IBM 音素检测

IBM Phoneme Detection in Python

我正在尝试使用 watson developer cloud python library to interface with the IBM Speech to Text API 来检测某些文本中存在哪些音素或音节。但是我 运行 遇到了一些与名为 customization_id 的必需参数相关的问题,我希望有人能够提供更多关于传递什么值的上下文。我无法做到阅读文档后理解。这是一个代码片段:

from watson_developer_cloud import TextToSpeechV1, WatsonApiException

API_KEY = "<redacted>"
URL = "https://gateway-wdc.watsonplatform.net/text-to-speech/api"

client = TextToSpeechV1(iam_apikey=API_KEY, url=URL)

try:
    #response = client.get_word(customization_id="1", word="HELLO WORLD") 
    #> Malformed GUID: '1'

    #response = client.get_word(word="HELLO WORLD") 
    #> get_word() missing 1 required positional argument: 'customization_id'

    #response = client.get_word(customization_id=None, word="HELLO WORLD") 
    #> ValueError: customization_id must be provided

    #response = client.get_word(customization_id="GA", word="HELLO WORLD") 
    #> ERROR 400: Malformed GUID: 'GA'

    # WHAT VALUE TO USE FOR CUSTOMIZATION_ID ??? ...
    response = client.get_word(customization_id="_______", word="HELLO WORLD") #>

    print("RESPONSE")
    print(type(response))
except WatsonApiException as ex:
    print(f"ERROR {str(ex.code)}: {ex.message}")

编辑:预期值可能是新自定义语音模型的标识符。我已经开始研究该策略 here,但不幸的是,我也 运行 研究了该策略的问题。该方法可能类似于:

# ...

voice_model_response = client.create_voice_model(
    name="My Custom Model",
    language=LANG,
    description="to get a valid 'customization_id' value..."
).get_result()

customization_id = voice_model_response["customization_id"]

response = client.get_word(customization_id=customization_id, word="HELLO WORLD")

# ...

我认为您误读了 Speech to Text 服务的文档。

您可以创建自定义来修改语料库使用发音检测单词的方式

https://cloud.ibm.com/apidocs/speech-to-text?code=python#add-custom-words

但要做到这一点,您需要创建一个自定义项,而使用精简版帐户则无法做到这一点。

https://cloud.ibm.com/apidocs/speech-to-text?code=python#create-a-custom-language-model

您可以使用 API 列出您已经创建的自定义项。

https://cloud.ibm.com/apidocs/speech-to-text?code=python#list-custom-language-models

原来我使用了错误的 URL 和错误的 API 密钥。在将 URL 修复为真正的“https://gateway-wdc.watsonplatform.net/text-to-speech/api”并创建和升级新的标准级文本到语音服务并使用该服务的 API 键后,我能够实现两个 -我在问题的更新部分提到的步骤过程。