You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将外部问题及Python语音转文本结果发送至IBM Watson Assistant

Python实现语音转文本结果对接IBM Watson Assistant

1. 准备工作

  • 从IBM Cloud控制台获取Watson Assistant的API Key、服务URL和目标助理的assistant_id
  • 安装IBM Watson Python SDK及环境变量管理工具:
    pip install ibm-watson python-dotenv
    

2. 核心对接逻辑

假设你已经有成熟的语音转文本函数(比如speech_to_text(),返回转换后的字符串),以下是对接Watson Assistant的核心代码:

初始化Watson客户端

from ibm_watson import AssistantV2
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from dotenv import load_dotenv
import os

# 加载本地环境变量(避免硬编码敏感凭据)
load_dotenv()

authenticator = IAMAuthenticator(os.getenv('WATSON_ASSISTANT_API_KEY'))
assistant = AssistantV2(
    version='2021-06-14',
    authenticator=authenticator
)
assistant.set_service_url(os.getenv('WATSON_ASSISTANT_URL'))
assistant_id = os.getenv('WATSON_ASSISTANT_ID')

发送文本并获取回复

def get_watson_response(input_text, session_id=None):
    # 无会话ID时创建新会话
    if not session_id:
        session_response = assistant.create_session(assistant_id=assistant_id).get_result()
        session_id = session_response['session_id']
    
    # 发送用户文本到Watson
    response = assistant.message(
        assistant_id=assistant_id,
        session_id=session_id,
        input={
            'message_type': 'text',
            'text': input_text
        }
    ).get_result()
    
    # 提取Watson的回复内容
    watson_reply = response['output']['generic'][0]['text']
    return watson_reply, session_id

3. 完整流程示例

整合语音转文本与Watson对接的完整代码:

# 替换为你实际的语音转文本实现
def speech_to_text():
    # 模拟语音转换结果:"I need my bank account info"
    return "I need my bank account info"

def main():
    # 1. 执行语音转文本
    user_text = speech_to_text()
    if not user_text:
        print("语音转文本失败,请重试")
        return
    
    # 2. 对接Watson获取回复
    try:
        reply, session_id = get_watson_response(user_text)
        print(f"Watson Assistant回复:{reply}")
    except Exception as e:
        print(f"对接Watson失败:{str(e)}")

if __name__ == "__main__":
    main()

4. 关键注意事项

  • 多轮对话支持:如果需要连续对话,需保存每次返回的session_id,后续调用时传入以保留对话上下文
  • 错误处理:通过try-except捕获API调用异常(如网络超时、凭据无效等)
  • 凭据安全:使用.env文件存储敏感信息,并将该文件加入.gitignore避免泄露

内容的提问来源于stack exchange,提问作者MAH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:39:20