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

请求将IBM Watson语音转文本的curl命令转换为pycurl实现

将IBM Watson语音转文本curl命令转为pycurl代码

当然可以!我帮你把提供的curl命令转换成了对应的pycurl代码,还添加了注释来对应原curl的各个参数,方便你理解:

import pycurl
from io import BytesIO

# 请替换为你的IBM Watson语音转文本服务的用户名和密码
watson_username = "{username}"
watson_password = "{password}"
# 请替换为你的FLAC音频文件的完整路径
audio_file_path = "{path_to_file}audio-file.flac"
# Watson语音转文本的API地址
stt_api_url = "https://stream.watsonplatform.net/speech-to-text/api/v1/recognize"

# 创建缓冲区用于存储API响应内容
response_buffer = BytesIO()

# 初始化pycurl客户端
curl_client = pycurl.Curl()

try:
    # 设置请求目标URL,对应curl中的目标地址
    curl_client.setopt(pycurl.URL, stt_api_url)
    
    # 设置请求方法为POST,对应curl的 -X POST
    curl_client.setopt(pycurl.POST, 1)
    
    # 设置基本认证信息,对应curl的 -u {username}:{password}
    curl_client.setopt(pycurl.USERPWD, f"{watson_username}:{watson_password}")
    
    # 设置Content-Type请求头,对应curl的 --header "Content-Type: audio/flac"
    curl_client.setopt(pycurl.HTTPHEADER, ["Content-Type: audio/flac"])
    
    # 读取本地FLAC文件的二进制数据,对应curl的 --data-binary @{path_to_file}audio-file.flac
    with open(audio_file_path, "rb") as audio_file:
        curl_client.setopt(pycurl.POSTFIELDS, audio_file.read())
    
    # 指定将响应内容写入缓冲区(避免直接输出到控制台)
    curl_client.setopt(pycurl.WRITEDATA, response_buffer)
    
    # 执行HTTP请求
    curl_client.perform()
    
    # 解析并打印响应结果
    response_content = response_buffer.getvalue().decode("utf-8")
    print("语音识别结果:")
    print(response_content)

    # 可选:获取并打印请求的HTTP状态码
    # http_status_code = curl_client.getinfo(pycurl.RESPONSE_CODE)
    # print(f"\n请求状态码:{http_status_code}")

finally:
    # 关闭资源,避免内存泄漏
    curl_client.close()
    response_buffer.close()

注意事项:

  • 请确保你已经安装了pycurl库,若未安装可以执行命令:pip install pycurl
  • 记得把代码中的{username}、{password}和{path_to_file}替换为你自己的实际信息
  • 如果你的音频文件较大,考虑使用流式上传的方式(pycurl也支持),避免一次性读取整个文件到内存中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:14:59