语音模型 调用示例

本文中,我们将介绍如何使用 Python 调用 OpenKEY 提供的ChatGPT API接口来调用 ChatGPT 语音模型,即 Whisper 和 TTS。

系统环境:

Python 3.8.10

Name: openai Version: 0.27.8

1. Whisper 模型

Whisper 模型主要功能为转录和翻译,它们可以用于:

  • 将音频转录为任何语言。

  • 将音频翻译并转录成英语。

目前文件上传限制为 25 MB,并支持以下输入文件类型:mp3、mp4、mpeg、mpga、m4a、wav 和 webm。

注意:接口返回格式仅支持json格式,其他尚未适配调用会报错。

1.1 音频转文本

# 音频转文本
import requests

headers = {
    'Authorization': f'Bearer sk-xxxx', # 注:key为OpenKey创建的令牌
}
url = "https://openkey.cloud/v1/audio/transcriptions" # 注意这里是/transcriptions
file_path = r"./src/voice_250.mp3"  # 文件地址
files = {'file':open(file_path, "rb")}
query = {
            "model":"whisper-1",
            "language":"zh",  # 简体汉语
            "response_format":"json", # 注意:OpenKey接口目前仅支持json一种格式,否则会报错
        }
response = requests.post(url=url, data=query,files=files, headers=headers)
print(response.text)

终端输出如下:

1.2 音频转英文

# 音频转英文
import requests

headers = {
    'Authorization': f'Bearer sk-xxxx', # 注:key为OpenKey创建的令牌
}
url = "https://openkey.cloud/v1/audio/translations" # 注意这里是/translations
file_path = r"./src/voice_250.mp3" # 文件地址
files = {'file':open(file_path, "rb")}
query = {
            "model":"whisper-1",
            "response_format":"json", # 注意:OpenKey接口目前仅支持json一种格式,否则会报错
            "prompt":"This is English"
        }
response = requests.post(url=url, data=query,files=files, headers=headers)
print(response.text)

终端输出如下:

2. TTS 模型

TTS 模型主要的功能是将文字转语音,具体模型有以下两个:

  • tts-1: 这是最新的TTS模型,主要针对实时文本转语音使用案例进行了性能优化,速度更快。

  • tts-1-hd: 与tts-1类似,但更注重语音质量,适用于对语音质量要求更高的场景。

import requests
import json

headers = {
    'Authorization': f'Bearer sk-xxxx', # 注:key为OpenKey创建的令牌
    'Content-Type':'application/json'
}
url = "https://openkey.cloud/v1/audio/speech"
input_text = "《三国演义》以东汉末年三国时期为背景,展现了刘备、关羽、张飞等英雄豪杰的壮丽故事。他们桃园结义,共同抵抗董卓、曹操等反动势力,最终形成了三足鼎立的局面。小说描写了忠义仁爱、智勇双全的形象,同时也展现了权谋斗争和人性的复杂性。《三国演义》是一部具有高历史价值和文学艺术价值的作品,塑造了许多永垂史册的英雄形象,对中国传统文化产生了深远影响。"
query = {
            "model":"tts-1-hd",
            "input":input_text,
            "voice":"alloy",
            "response_format":"mp3",
            "speed":1,
        }
response = requests.post(url=url, data=json.dumps(query), headers=headers)
# 保存文件
f = open("./src/tts-1-hd.mp3", "wb")
f.write(response.content)
f.close()

实现效果如下:

OpenKey完全兼容OpenAI接口协议,具体调用方法参考官方文档:

https://platform.openai.com/docs/introduction

Last updated