在 GPT-4 的视频聊天功能尚未上线之际,开发了一个简易版本。借鉴谷歌发布的多模态 AI 项目 Project Astra,构建了一个基础的视觉聊天模型。该模型可以根据摄像头捕获的图像和用户的语言进行互动,并实时生成语音输出。目前,模型的英语效果最佳,中文也有一定的支持。演示程序未经加速和剪辑,虽然视觉反应较快,但文字转语音存在延迟。
基于 Github 项目 DIY-Astra 进行改进,现在用户可以使用摄像头自由聊天。Gemini 1.5 Flash 的效果非常出色,不敢想象以后手机、甚至个人穿戴设备都被这些低功耗AI模型改造一遍的时代。
本项目视频演示地址:https://www.bilibili.com/video/BV1Nn4y1o7CK/?vd_source=97fb05507112998874bd946470f720ff DIY-Astra 项目地址:https://github.com/Doriandarko/DIY-Astra
Free-Astra 是一个基于DIY-Astra(后文有详细介绍)开发而来的 Flask 应用程序,利用计算机视觉和自然语言处理创建一个交互式 AI 助手。该应用程序从网络摄像头捕获实时视频流,使用 Google AI API 分析捕获的图像,并根据视觉输入生成文本响应。生成的文本响应随后使用 ElevenLabs API 转换为音频,并播放给用户。
- 采用静默检测算法,实现自由录音
- 集成 OpenAI 的 Whisper 实现语音转文本
- 从网络摄像头捕获实时视频流
- 使用 Google AI API 进行图像分析
- 根据视觉输入生成文本
- 使用 ElevenLabs API 将文本转换为语音
- 实时播放生成的音频响应
- 基于 Web 的用户界面进行交互和控制
要运行 DIY-Astra 应用程序,您需要安装以下依赖项:
- Python 3.x
- Flask
- Flask-SocketIO
- OpenCV (cv2)
- Pydub
- Google Generative AI Client Library
- Pillow (PIL)
- Requests
- openai
需要拥有以下服务的有效 API 密钥:
- Google AI API (GOOGLE_API_KEY)
- ElevenLabs API (ELEVENLABS_API_KEY)
- OpenAI API (OPENAI_API_KEY)
请将这三个密钥添加到项目根目录的
.env
文件中,并由操作系统读取:
-
克隆仓库:
git clone https://github.com/your-username/free-astra.git
-
进入项目目录:
cd free-astra
-
安装所需的依赖项:
pip install -r requirements.txt
-
设置 API 密钥:
- 在
.env
文件中设置您的 Google AI API 密钥、 ElevenLabs API 密钥和 OpenAI API 秘钥。 类似如下方式:
- 在
GOOGLE_API_KEY = ''
ELEVENLABS_API_KEY = ''
OPENAI_API_KEY = ''
-
运行应用程序:
python app.py
-
打开您的网络浏览器并导航到
http://localhost:5001
以访问 free-astra 界面。
- 确保您的网络摄像头已连接并可访问。
- 运行
python app.py
启动 free-astra 应用程序。 - 应用程序将在您的默认浏览器中打开。
- 网络摄像头的实时视频流将显示在界面中。
- 点击“开始”按钮,开始聊天。说话结束录音自动发送后端分析。
- free-astra 将连续捕获图像,使用 Google AI API 进行分析,并根据视觉输入生成文本响应。
- 生成的文本响应将显示在视频流下方的文本容器中。
- 文本响应也将使用 ElevenLabs API 转换为音频并实时播放。
- 您可以通过点击界面中的“停止”按钮停止应用程序。要恢复,请点击“恢复”按钮。
app.py
: 包含服务器端逻辑的主 Flask 应用程序文件。templates/index.html
: 用户界面的 HTML 模板。static/css/styles.css
: 用于样式化用户界面的 CSS 样式表。static/js/script.js
: 用于客户端交互和套接字通信的 JavaScript 文件。requirements.txt
: 所需的 Python 依赖项列表。
欢迎贡献!如果您发现任何问题或有改进建议,请打开问题或提交拉取请求。
本项目使用 MIT 许可证。