2024 年最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)

OpenAi 环境安装

首先确保您的计算机上已经安装了 Python。您可以从 Python 官方网站下载并安装最新版本 Python。安装时,请确保勾选 “Add Python to PATH” (添加环境变量)选项,以便在 cmd 命令行中直接使用 Python。

安装 OpenAI Python 库

打开命令行或终端窗口安装 OpenAI Python 库

pip install openai

OpenAi Platform 教程

平台官网:https://platform.openai.com/

在这里插入图片描述

http API 调用方式文档:https://platform.openai.com/docs/api-reference/introduction

文本生成 GPT-4

GPT-4 模型概述

GPT-4是一个大型多模态模型(接受文本或图像输入和输出文本),由于其更广泛的一般知识和先进的推理能力,它可以比我们以前的任何模型都更准确地解决难题。付费客户可以在OpenAI API中使用GPT-4。与gpt-3.5 turbo一样,GPT-4针对聊天功能进行了优化,但在使用聊天完井API的传统完井任务中表现良好。在我们的文本生成指南中学习如何使用GPT-4。

测试案例

聊天模型将消息列表作为输入,并返回模型生成的消息作为输出。虽然聊天格式的设计是为了使多回合的对话变得容易,但它对于没有任何对话的单回合任务同样有用。

一个聊天完成API调用的例子如下:

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

print(response)

数据结构

{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "message": {
                "content": "The 2020 World Series was played in Texas at Globe Life Field in Arlington.",
                "role": "assistant"
            },
            "logprobs": null
        }
    ],
    "created": 1677664795,
    "id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW",
    "model": "gpt-3.5-turbo-0613",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 17,
        "prompt_tokens": 57,
        "total_tokens": 74
    }
}

图像合成 DALL·E

DALL·E 模型概述

DALL·E是一个人工智能系统,可以通过自然语言的描述创造逼真的图像和艺术。DALL·e3目前支持在提示下创建具有特定大小的新映像的功能。DALL·e2还支持编辑现有映像,或创建用户提供的映像的变体。

测试案例

图像生成端点允许您在给定文本提示的情况下创建原始图像。当使用DALL·e3时,图像的大小可以是1024x1024、1024x1792或1792x1024像素。

默认情况下,图像以标准质量生成,但当使用DALL·e3时,您可以将质量设置为“hd”以增强细节。正方形的、标准质量的图像是最快生成的。您可以使用DALL·e3一次请求1个图像(通过并行请求请求更多),或者使用带n参数的DALL·e2一次至多请求10个图像。

from openai import OpenAI

client = OpenAI()

response = client.images.generate(
    model="dall-e-3",
    prompt="a white siamese cat",
    size="1024x1024",
    quality="standard",
    n=1,
)

image_url = response.data[0].url

语音合成 TTS

TTS 模型概述

TTS是一种人工智能模型,可以将文本转换为自然发音的口语文本。我们提供了两种不同的模型变量,ts-1针对实时文本到语音的用例进行了优化,而ts-1-hd针对质量进行了优化。这些模型可以与Audio API中的Speech端点一起使用。

测试案例

语音端点接受三个关键输入:模型、应该转换为音频的文本和用于音频生成的语音。简单的请求如下所示:

from pathlib import Path
from openai import OpenAI

client = OpenAI()

speech_file_path = Path(__file__).parent / "speech.mp3"
response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Today is a wonderful day to build something people love!"
)

response.stream_to_file(speech_file_path)

音色选择

尝试不同的声音(alloy, echo, fable, onyx, nova, and shimmer),找到一个符合你想要的语气和听众。当前的声音是针对英语优化的。

语音识别 Whisper

Whisper 概述

Whisper 是一个通用的语音识别模型。它是在不同音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisper v2大型模型目前可通过我们的API使用Whisper -1模型名称。

目前,Whisper的开源版本和通过我们的API提供的版本之间没有区别。然而,通过我们的API,我们提供了一个优化的推理过程,这使得通过我们的API运行Whisper比执行它要快得多。

测试案例

语音识别 API 将要识别的音频文件和所需的音频转录输出文件格式作为输入。我们目前支持多种输入和输出文件格式。文件上传目前限制为 25mb,支持 mp3、mp4、mpeg、mpga、m4a、wav、webm 等文件类型的输入。

from openai import OpenAI

client = OpenAI()

audio_file = open("/path/to/file/audio.mp3", "rb")
transcription = client.audio.transcriptions.create(
    model="whisper-1",
    file=audio_file
)
print(transcription.text)

数据结构

{
  "text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger.
....
}

配置 OPENAI_API_KEY

查看 class OpenAI(SyncAPIClient) 类实现的源码片段发现,关于 api_keybase_url 会读取本地环境变量中 OPENAI_API_KEYOPENAI_BASE_URL 变量。

if api_key is None:
    api_key = os.environ.get("OPENAI_API_KEY")
if api_key is None:
    raise OpenAIError(
        "The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable"
    )
self.api_key = api_key
if base_url is None:
    base_url = os.environ.get("OPENAI_BASE_URL")
if base_url is None:
    base_url = f"https://api.openai.com/v1"

dotenv 加载 .env 环境变量

dotenv是一个Python库(虽然也适用于其他编程语言,如JavaScript),它的主要功能是从.env文件中读取环境变量,并将这些变量加载到操作系统的环境变量中,使得Python应用程序可以轻松地访问这些变量。.env文件是一个纯文本文件,其中包含键值对(key-value pairs),每个键值对占据一行,格式为KEY=VALUE。

pip install python-dotenv

将敏感信息(如API密钥、数据库密码等)存储在环境变量中,而不是硬编码在代码中,是一种良好的安全实践。这样可以减少敏感信息泄露的风险,因为这些值不会存储在代码库中,也不会在部署时暴露出来。

在 Python 代码中,使用 python-dotenv 库加载 .env 文件,并访问其中的环境变量。这通常通过 from dotenv import load_dotenvload_dotenv() 函数实现。访问环境变量:加载.env文件后,可以使用 os.getenv('KEY') 的方式访问环境变量。

from dotenv import load_dotenv
load_dotenv()

图像理解 GPT-4o

gpt - 40和GPT-4 Turbo都具有视觉功能,这意味着这些模型可以接收图像并回答有关图像的问题。从历史上看,语言模型系统一直受到单一输入形式文本的限制。

模型可以通过两种主要方式使用图像:通过传递到图像的链接或在请求中直接传递base64编码的图像。图像可以在用户消息中传递。

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What’s in this image?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

print(response.choices[0])

上传base64编码的图像如果你在本地有一张或一组图像,你可以将它们以base64编码的格式传递给模型,下面是一个实际的例子

import base64
import requests

api_key = "YOUR_OPENAI_API_KEY"


def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')


image_path = "path_to_your_image.jpg"

base64_image = encode_image(image_path)

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {api_key}"
}

payload = {
    "model": "gpt-4o",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What’s in this image?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{base64_image}"
                    }
                }
            ]
        }
    ],
    "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())
### 回答1: 要使用Python调用百度AI语音识别,需要按照以下步骤进行操作: 1. 在百度AI开放平台申请账号并创建应用,获取API Key和Secret Key。 2. 安装Python的requests库和pyaudio库,前者用于发送HTTP请求,后者用于录制音频。 3. 编写Python代码,通过requests库向百度AI语音识别API发送HTTP请求,将录制好的音频文件发送到API进行语音识别。 以下是一段Python代码的示例: ``` import requests import json import base64 import time import hashlib import os import pyaudio # API Key和Secret Key APP_ID = "你的App ID" API_KEY = "你的API Key" SECRET_KEY = "你的Secret Key" # 录音参数 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "output.wav" # 获取AccessToken def get_access_token(): url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + API_KEY + '&client_secret=' + SECRET_KEY response = requests.get(url) access_token = json.loads(response.text)['access_token'] return access_token # 生成语音识别API的请求参数 def get_params(): access_token = get_access_token() params = { 'format': 'wav', 'rate': RATE, 'dev_pid': '1536', 'cuid': '123456PYTHON', 'token': access_token } return params # 生成语音识别API的请求头部 def get_header(): header = { 'Content-Type': 'audio/wav;rate=%d' % RATE, 'Authorization': 'Bearer %s' % get_access_token() } return header # 录制音频 def record_audio(): p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) frames = [] print("正在录音...") for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("录音结束!") stream.stop_stream() stream.close() p.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() # 调用百度AI语音识别API def speech_recognition(): record_audio() with open(WAVE_OUTPUT_FILENAME, 'rb') as f: audio_data = f.read() url = 'http://vop.baidu.com/server_api' params = get_params() headers = get_header() response = requests.post(url, params=params, headers=headers, data=audio_data) result = json.loads(response.text) print(result['result'][0]) if __name__ == '__main__': speech_recognition() ``` 这段代码通过PyAudio库录制音频,然后使用requests库向百度AI语音识 ### 回答2: Python调用百度AI语音识别代码需要以下几个步骤: 首先,需要在百度智能云平台上创建一个新的应用,然后获取到App Key和App Secret。这些信息将用于认证和授权你的应用程序。 接着,你需要在Python环境中安装baidu-aip包。可以使用pip install baidu-aip命令来安装。 然后,你需要导入baidu-aip包并初始化一个AipSpeech对象,将App Key和App Secret传入初始化函数中。 接下来,你可以调用AipSpeech对象的相应方法来实现语音识别功能。例如,使用speech.asr方法来进行语音识别。该方法接受音频文件路径作为参数,并返回一个包含识别结果的字典。 最后,你可以根据需求对识别结果进行处理,例如输出识别结果或进行其他相关的操作。 需要注意的是,在调用百度AI语音识别API时,你需要将音频数据转化为符合API要求的格式。通常情况下,你可以使用百度智能云提供的工具或第三方库来实现音频格式的转换。 以上是Python调用百度AI语音识别代码的基本步骤。具体代码实现可能会根据实际需要而有所不同。你可以参考百度AI语音识别API的官方文档和示例代码来进一步了解和实践。 ### 回答3: 要使用Python调用百度AI语音识别,首先要安装百度AIPython SDK。通过以下步骤来完成: 1. 首先,在百度AI语音识别的官方网站上注册并创建一个应用,获取到API Key(API Key是用来识别应用信息的密钥,类似于用户名)和Secret Key(Secret Key是用来保障数据安全的密钥,类似于密码)。 2. 在Python环境中安装百度AIPython SDK。可以通过运行以下命令来安装: ``` pip install baidu-aip ``` 3. 在Python代码中调用百度AI语音识别的API。例如,假设我们要识别一个音频文件(file.wav),可以按照以下方式编写代码: ```python from aip import AipSpeech # 设置API Key、Secret Key和应用ID APP_ID = 'your_app_id' API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' # 创建AipSpeech对象 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 读取音频文件 def get_file_content(file_path): with open(file_path, 'rb') as fp: return fp.read() # 调用语音识别API result = client.asr(get_file_content('file.wav'), 'wav', 16000, {'dev_pid': 1536}) # 打印识别结果 if 'result' in result.keys(): print(result['result']) else: print(result['err_msg']) ``` 在上述代码中,注意替换`your_app_id`、`your_api_key`和`your_secret_key`为你自己的应用信息。此外,`get_file_content`函数用于读取音频文件内容。 以上是使用Python调用百度AI语音识别的基本步骤和代码示例。通过这样的方式,我们可以方便地利用百度AI进行语音识别实现各种语音识别应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唤醒手腕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值