你好我是程序员贵哥。2024年5月又一个重磅炸弹从天而降。OpenAI隆重推出了新的旗舰模型GPT-4o这个模型不仅更加强大更加聪明而且它的API还比老一代的GPT-4-Turbo更便宜。它最惊艳的特性就是多模态能力尤其是在语音方面它拥有把握人类语音中情感信息的能力比如说仅通过语气发现你在和ChatGPT4对话时候是否焦躁、伤心、紧张、疲惫等因此它能够更完美地实时处理音频、视觉和文本的推理。下面的几张图片是我在ChatGPT App中和GPT对话的过程惊喜地发现GPT-4o模型也即将在App中上线了。当GPT-4o的新语音识别功能上线之后ChatGPT将能够从我的语气中推知我当前的情绪和情感。好下面我们就来详细介绍下GPT-4o的多模态能力并说说它能够为我们的AI应用带来哪些方面的新拓展。GPT-4o 的关键特性GPT-4o中的 “o”英文是omni。它是一个来自拉丁语的前缀意思是“全部”、“所有”或“全能”。人如其名这一款模型旨在实现更加自然的人机交互可以接受文本、音频、图像和视频的输入并生成文本、音频和图像的输出。能力碾压上一课已经提到GPT-4o的英文文本和编码任务性能与GPT-4 Turbo相匹配同时在非英语语言的性能上有显著提升。它速度更快成本降低50%。因为之前的GPT-4V版本已经拥有了读图能力因此GPT-4o的核心能力增强主要是在音频方面平均响应时间为320毫秒与人类对话速度非常接近。在GPT-4o之前的GPT模型已经可以让人类通过语音模式与ChatGPT对话平均延迟为2.8秒GPT-3.5和5.4秒GPT-4。为了实现这一点ChatGPT的语音模式使用了三个独立的模型一个简单的模型将音频转录为文本GPT-3.5或GPT-4接收文本并输出文本第三个简单的模型将文本转换回音频。但是这样的过程导致主要的智能来源GPT-4失去了大量信息——它无法直接观察语气、多说话者或背景噪音也无法输出笑声、歌唱或表达情感。通过GPT-4oOpenAI训练了一个全新的端到端模型来处理文本、视觉和音频这意味着所有的输入和输出都由同一个神经网络处理。GPT-4o是OpenAI的第一个结合所有这些模态的模型其能力立即就碾压了某大厂前两个月所推出的“多模态一体化模型”——对我说的就是Google和Gemini。当然目前最新的Claude-3.5似乎很多方面能力又超越了GPT-4o模型评估在传统基准测试中GPT-4o在文本、推理和编码智能方面达到了与GPT-4 Turbo相同的性能同时在多语言、音频和视觉能力方面设定了新的高标。文本评估GPT-4o在零样本链式推理COTMMLU通用知识问题中创下了88.7%的新高分。在传统的五样本无链式推理COTMMLU中GPT-4o创下了87.2%的新高分。音频ASR性能GPT-4o显著提高了对Whisper-v3的语音识别性能特别是在资源较少的语言方面。音频翻译性能GPT-4o在MLS基准测试中超越了Whisper-v3。多语言视觉推理评估M3Exam基准测试包括各个国家标准化测试的多项选择题包含图表和图形。在这个测试中GPT-4o在所有语言上都比GPT-4表现更强。视觉理解评估GPT-4o在零样本视觉感知基准测试中达到了行业最先进的性能包括MMMU、MathVista和ChartQA的零样本链式推理。作为开发者目前我们也可以在API中访问GPT-4o的文本和视觉模型。并且GPT-4o的速度是GPT-4 Turbo的两倍价格是其一半速率限制也只有之前的 5 倍。这对于开发者来说无疑都是天大的好消息。在这个消息推出之后国内大模型厂商就纷纷打起了API Token价格战大模型变得越来越便宜越来越接地气。大模型应用开发的节奏无疑是被OpenAI的最新模型驱动的一波未平一波又起一浪更比一浪高。当然在一个浪接一个浪的汹涌大潮中站在潮头的总是OpenAI。用 GPT-4o 一键解读视频其实OpenAI是计划在未来几周内逐步向一小群授信的合作伙伴推出GPT-4o的新音频和视频功能也就是说最新的GPT-4o音频和视频接口还没有完全成熟。不过这打消不了我们希望用GPT-4o来尝试开发多模态应用的积极性。下面我们就来开始用GPT-4o进行视频解读的项目实战。项目准备先来为项目做准备做视频处理我们需要用到 FFmpeg 这款功能强大的开源多媒体处理工具。FFmpeg 用于处理音频、视频和其他多媒体文件可以实现以下功能。转码将多媒体文件从一种格式转换为另一种格式例如将视频从 MP4 转换为 AVI。剪辑从多媒体文件中提取片段或合并多个片段。处理调整视频的尺寸、比特率、帧率或音频的采样率、声道数等。添加效果为视频添加滤镜、字幕、水印等。流媒体将多媒体文件实时传输到网络上。如果你是用Windows开发应用程序那么在这里下载FFmpeg或者访问 FFmpeg 官方下载页面。找到 Windows 版本的 FFmpeg并下载适合你系统的压缩包通常是 ffmpeg-release-essentials.7z。将下载的压缩包解压到一个你方便访问的文件夹然后添加 FFmpeg 到系统路径。右键点击“此电脑”或“计算机”选择“属性”。选择“高级系统设置”。在“系统属性”窗口中点击“环境变量”。在“系统变量”部分找到并选中 “Path”然后点击“编辑”。点击“新建”然后输入 C:\ffmpeg\bin换成你的解压路径点击“确定”。关闭所有窗口并重启命令提示符以应用更改。如果你是用Linux比如Ubuntu那么直接安装即可。sudo apt install ffmpeg除了FFmpeg 之外还需要安装 opencv-python 和 moviepy。pip install opencv-python pip install moviepy几个音视频处理软件装好准备工作就完成了处理视频下面开始处理视频。这里准备了一段短视频我想让GPT-4o对它进行解读和分析。这段短视频是我从抖音下载下来的描绘了一个卡车司机看到路面不平进行了好人好事的行为。视频需要先做一些预处理代码如下# 导入所需的库 import os import cv2 # 视频处理 import base64 # 编码帧 VIDEO_FILE Good_Driver.mp4 def extract_frames(video_file, interval2): encoded_frames [] file_name, _ os.path.splitext(video_file) video_capture cv2.VideoCapture(video_file) total_frame_count int(video_capture.get(cv2.CAP_PROP_FRAME_COUNT)) frame_rate video_capture.get(cv2.CAP_PROP_FPS) frames_interval int(frame_rate * interval) current_frame 0 # 循环遍历视频并以指定的采样率提取帧 while current_frame total_frame_count - 1: video_capture.set(cv2.CAP_PROP_POS_FRAMES, current_frame) success, frame video_capture.read() if not success: break _, buffer cv2.imencode(.jpg, frame) encoded_frames.append(base64.b64encode(buffer).decode(utf-8)) current_frame frames_interval video_capture.release() print(f提取了 {len(encoded_frames)} 帧) return encoded_frames # 每2秒提取1帧采样率 encoded_frames extract_frames(VIDEO_FILE, interval2)导入必要的模块包括os用于路径操作cv2用于视频处理base64用于编码帧以及moviepy.editor用于处理音频。函数extract_frames_and_audio用于提取视频帧和音频。参数video_file为视频文件路径interval为每提取一帧所间隔的秒数。使用OpenCV遍历视频并提取指定间隔的帧将每个帧编码为Base64格式并存储在列表中。使用moviepy从视频中提取音频并保存为MP3文件。用 GPT-4o 根据视频帧回答问题下面的代码我就调用了GPT-4o并通过提示词让它对视频进行简单解读并保存在Markdown格式的网页中。# 创建OpenAI客户端 from openai import OpenAI client OpenAI() # 使用GPT-4o模型生成视频介绍 response client.chat.completions.create( modelgpt-4o, messages[ {role: system, content: 请用Markdown格式生成视频的介绍.}, {role: user, content: [ 下面是视频的图像帧, *map(lambda x: {type: image_url, image_url: {url: fdata:image/jpg;base64,{x}, detail: low}}, encoded_frames) ]}, ], temperature0, ) # 打印生成的Markdown格式介绍 print(response.choices[0].message.content)输出如下我把输出拷贝到Markdown单元可以看到良好的格式化。图片链接目前无法显示不过无伤大雅我们完全可以在程序中把视频截图和这个文字自动搭配起来下面我接着问 GPT-4o 一些相关的问题期望它能够根据视频的内容来做出准确的回答。# 使用GPT-4o模型根据视频内容回答问题 QUESTION 图中的人做了什么? qa_response client.chat.completions.create( modelMODEL, messages[ {role: system, content: 请用Markdown格式根据视频内容回答问题.}, {role: user, content: [ 下面是视频的图像帧., *map(lambda x: {type: image_url, image_url: {url: fdata:image/jpg;base64,{x}, detail: low}}, encoded_frames), QUESTION ], } ], temperature0, ) # 打印生成的Markdown格式问题回答 print(QUESTION \n qa_response.choices[0].message.content)GPT-4o的回答如下图中的人做了什么? 图中的人发现路面有凹陷可能会对来往车辆造成安全隐患。他停车后打开双闪灯下车跑到路边拿起锥形桶并将锥形桶放置在路面凹陷处警示后方车辆。随后他确认情况并报警最后默默离开。当地公安找到他并表示感谢还送了一个纪念品给他。这个小例子至此结束程序结构虽然简单但这种强大的视频解读能力为我们带来很多想象的空间。GPT-4o 开脑洞的种种应用GPT-4o的超强逻辑分析能力、情绪感知能力以及接收实时音视频输入的能力为我们进一步开发新一代的AI应用打开了无数脑洞。OpenAI官方就通过很多视频进行了模型能力的展示这些视频各种各样覆盖日常生活的各种场景以及人类需求的方方面面比如两个GPT-4o模型的互动与歌唱比如帮助用户进行面试准备比如和 Imran Khan可汗学院创始人进行数学对话比如指点和学习西班牙语等等等等。那么顺着OpenAI的思路我们还可以想象并设计出更多的可以落地的AI应用我把这些应用列表如下。上述各种应用每一个想象空间都很大咱们来细化一个帮助盲人游览巴黎的应用场景并进行详细的描述。**实时描述环境**GPT-4o通过连接到盲人佩戴的摄像头可以实时描述他们周围的环境。例如当盲人走在巴黎的香榭丽舍大街时GPT-4o可以通过耳机向他们描述街道上的建筑、商店和行人。**景点介绍**当盲人到达某个著名景点如埃菲尔铁塔时GPT-4o可以自动识别该景点并开始讲解其历史和有趣的事实。这些信息可以通过自然语言生成功能以生动的方式呈现出来让盲人用户能够“看到”这些景点。**导航帮助**GPT-4o还可以提供导航帮助引导盲人从一个地点到另一个地点。例如盲人想要从卢浮宫前往塞纳河GPT-4o可以通过GPS和实时视频分析为他们提供详细的步行路线并提醒他们前方的障碍物或台阶。**交互式问答**如果盲人对某个景点或某件艺术品有问题他们可以直接问GPT-4o系统会基于其庞大的知识库提供准确且详细的回答。例如“埃菲尔铁塔有多高”或“蒙娜丽莎的背景是什么”。**社交互动**在一些公共活动或聚会中GPT-4o可以帮助盲人识别周围的人的面部表情和动作帮助他们更好地参与社交活动。这种应用不仅提高了盲人的生活质量还让他们能够独立、安全地探索世界享受旅行的乐趣。唉其实说实在的别说盲人了即使是一个正常成人如果我去巴黎全身上下我挂几个手机全方位打开ChatGPT和Camera走到哪里GPT-4o给我全景360度的建筑文化说明自然历史讲解交通情况提醒我也会觉着自己不再是个傻宝宝了。总结时刻作为开发者和AI爱好者我们正处在一个令人激动的时代。GPT-4o是OpenAI在深度学习领域推动能力和应用边界的最新一步这次的方向是实用性和AI落地。这节课我们全面了解了GPT-4o的强大功能及其在多模态AI应用开发中的巨大潜力并通过实际操作体验了如何利用GPT-4o进行视频解读。GPT-4o作为全新的端到端多模态模型能够在极短的时间内处理多种模态输入和输出使得人机交互更加自然和高效。尤其是在视频解读和音频分析方面GPT-4o的表现令人印象深刻。例如通过解读一段短视频GPT-4o不仅能准确描述视频中的行为还能基于视频内容回答相关问题。GPT-4o的多模态能力为我们开发者提供了新的开发思路和工具从实时环境描述、景点介绍、导航帮助到交互式问答和社交互动GPT-4o都能提供强有力的支持。这不仅提高了用户体验还为特殊人群提供了更多便利为生活增添新的乐趣。我觉得GPT-4o将为AI应用的开发带来革命性的变化基于GPT-4o的AI应用将在各行各业得到广泛应用并不断催生出更多创新的解决方案。