IBM Watson Speech To Text无法获得预期的结果

问题描述

尝试在标准IBM Watson S2T模型上测试mp3文件时,我得到以下输出

<bound method DetailedResponse.get_result of <ibm_cloud_sdk_core.detailed_response.DetailedResponse object at 0x00000250B1853700>>

这不是错误,但不是我想要的输出

这是我的代码

api = IAMAuthenticator(api_key)
speech_to_text = SpeechToTextV1(authenticator=api)

speech_to_text.set_service_url(url)

with open(mp3-file,"rb") as audio_file:
    result = speech_to_text.recognize(
        model='de-DE_broadbandModel',audio=audio_file,content_type="audio/mp3"
    ).get_result

print(result)

我对这个话题还很陌生,还没有真正弄清楚参数是什么。我希望有这样的输出

{'result': [...]}

我关注了this tutorial。 我在做什么错了?

解决方法

get_result是一种方法,因此您需要调用它。您正在打印该方法,而不是调用它。因此,您的输出显示了

<bound method DetailedResponse.get_result ...

应该用几个方括号将其修复。

with open(mp3-file,"rb") as audio_file:
    result = speech_to_text.recognize(
        model='de-DE_BroadbandModel',audio=audio_file,content_type="audio/mp3"
    ).get_result()
,

以下是使用示例audio_file2.mp3

对我有用的代码
import json
from os.path import join,dirname
from ibm_watson import SpeechToTextV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

authenticator = IAMAuthenticator('{api_key}')
speech_to_text = SpeechToTextV1(
    authenticator=authenticator
)

speech_to_text.set_service_url('{url}')

with open(join(dirname(__file__),'./.','audio-file2.mp3'),'rb') as audio_file:
    speech_recognition_results = speech_to_text.recognize(
        audio=audio_file,content_type='audio/mp3',word_alternatives_threshold=0.9
    ).get_result()
print(json.dumps(speech_recognition_results,indent=2))

步骤:

  1. 创建Watson Speech-to-Text service
  2. 用语音到文本服务凭据替换Python代码中的{url}{api_key}
  3. 将代码保存为speech-to-text.py的文件。
  4. 在命令提示符或终端上,运行pip install ibm-watson,然后运行python speech-to-text.py,以查看与以下所示类似的结果

请参阅speech-to-text api docs,以获取更多选项。

{
  "result_index": 0,"results": [
    {
      "final": true,"alternatives": [
        {
          "transcript": "a line of severe thunderstorms with several possible tornadoes is approaching Colorado on Sunday ","confidence": 1.0
        }
      ],"word_alternatives": [
        {
          "start_time": 0.2,"end_time": 0.35,"alternatives": [
            {
              "word": "a","confidence": 0.94
            }
          ]
        },{
          "start_time": 0.35,"end_time": 0.69,"alternatives": [
            {
              "word": "line",{
          "start_time": 0.69,"end_time": 0.78,"alternatives": [
            {
              "word": "of","confidence": 1.0
            }
          ]
        },{
          "start_time": 0.78,"end_time": 1.13,"alternatives": [
            {
              "word": "severe",{
          "start_time": 1.13,"end_time": 1.9,"alternatives": [
            {
              "word": "thunderstorms",{
          "start_time": 4.0,"end_time": 4.18,"alternatives": [
            {
              "word": "is",{
          "start_time": 4.18,"end_time": 4.63,"alternatives": [
            {
              "word": "approaching",{
          "start_time": 4.63,"end_time": 5.21,"alternatives": [
            {
              "word": "Colorado","confidence": 0.93
            }
          ]
        },{
          "start_time": 5.21,"end_time": 5.37,"alternatives": [
            {
              "word": "on",{
          "start_time": 5.37,"end_time": 6.09,"alternatives": [
            {
              "word": "Sunday","confidence": 0.94
            }
          ]
        }
      ]
    }
  ]
}