Git Product home page Git Product logo

chatgpt-video's Introduction

chatGPT-video 开箱即用 解锁ChatGPT识别文字、音频、视频能力

Static Badge Static Badge

ChatGPT是由OpenAI训练的一款大型语言模型,能够和你进行任何领域的对话。 这款程序主要让chatGPT拥有处理音频和视频的能力


chatGPT来处理您的视频(该图片由chatGPT绘制)

📖 项目简介

我能用这个程序干什么?

🏢 软件架构

  • jdk8
  • SpringBoot
  • 讯飞API
  • ChatGPT-Java-API
  • hutool
  • okhttp3

JDK 8 下载地址

你可以从以下链接下载并安装 JDK 8:

🛠 特性

提供了多个完整的chatGPT聊天方式API

提供了四个不同功能的聊天测试用例

1.OneMessageChatwithGPT为单条信息交换功能

该接口适合一些简单的一问一答制功能

2.ShortChatWithGPT为流式信息交互

该接口适合进行一些简单的不需要聊天记录的对话功能,适合进行长时间的一问一答制功能

输入图片说明

3.MediumChatWithGPT为单向聊天记录流式信息交互

该接口适合进行一些富有逻辑的单向问题

输入图片说明

4.LongChatWithGPT为双向聊天记录流式信息交互

该接口适合进行复杂的大型逻辑处理,在每次聊天的时候都会带上chatGPT和自己的完整聊天记录,随着聊天的增加,会消耗大量的token。你可能需要修改这段代码提示chatGPT

Message GPTMessage = Message.of("我会在每次聊天中添加我们的聊天历史 以下chatGPT回复的聊天历史内容:"+lastMessageValue);

输入图片说明

🚀 快速开始

📜修改配置文件

//文件位于:com.example.gptvideohelper.common.ConfigParameter
    //需要配置的内容
    String GPT_API_KEY="";//chatGPT的API密钥
    String KEY_SECRET="";//讯飞API接口
    String GPT_API_KEY="";//chatGPT的API密钥
**********************************************************************
    //如果需要走代理    
    int PROXY_PORT=7880;//代理走的端口号 列如7080 要改成自己的
    String PROXY_IP ="";//代理的IP地址 列如127.0.0.1

🔌直接开始

1.将视频移动到src/main/resources/video中
2.打开test文件,修改成自己专属的test文件
2.使用getAudio()获取到音频文件
3.使用getText()获取文本文件
4.使用ToContent解析返回的json
5.配置调用适合自己的GptAPI聊天接口

如果你需要进行一些自定义修改

🎵视频转为音频

代码位于VideoHelper中
使用getAudio()功能
里面可以配置编码器、格式等功能 列如:
// 创建一个音频属性对象,指定音频的编码器、比特率、采样率和声道数
        AudioAttributes audioAttr = new AudioAttributes();
        audioAttr.setCodec("pcm_s16le");//无损音频编码 同时也是讯飞要求的格式 想要音频文件变小一点可以在这里改
        audioAttr.setBitRate(128000);
        audioAttr.setSamplingRate(44100);
        audioAttr.setChannels(2);

        // 创建一个编码属性对象,指定音频属性和空的视频属性
        EncodingAttributes encodingAttr = new EncodingAttributes();
        encodingAttr.setFormat("wav");
        encodingAttr.setAudioAttributes(audioAttr);
        encodingAttr.setVideoAttributes(null);

🔤 音频转文字功能

  • 在这个部分,我们主要使用了讯飞开放平台的音频转文字 API。 已经编写了一个示例,名为 IfasrDemo,它包含了文件上传、解析 JSON 等功能。你只需要配置好自己的 AppID 和 Key 即可开始使用。

  • 如果想自定义其他配置 详细的配置参数可以参考这里。 一旦提取出文字,你可以使用 ToContent() 函数来获取主要内容。

  • 最后,我建议将提取出来的文字传递给 ChatGPT 进行文本修正,然后再将修正后的文本发送给 ChatGPT。



⚡文件下载功能

//以视频文件为例 将这里的请求头和Url设置对即可 或者还有更多包括Se开头的安全信息头(依据下载需要的文件头而定)
            HttpResponse response = HttpRequest.get(videoUrl)
                    .header("Accept", "改成你的Accept值")
                    .header("Accept-Encoding", "改成你的请求头编码方式")
                    .header("Accept-Language", "改成你的语言偏好的值")//语言偏好
                    .header("Origin", "改成你的视频链接地址")
                    .header("Range", "bytes=0-1048575")//请求数据范围 改成你要的值
                    .header("Referer", "改成你的视频链接地址")
                    .header("User-Agent", "改成你的用户标识")
                    .header("Upgrade-Insecure-Requests", "1")
                    .header("Range", "bytes=" + fileSize + "-") // 设置Range头部,从已下载的字节后开始下载
                    .execute();
                    

🎬视频网站的视频解析

/*先通过Api文件夹下的GetHeader获取到需要的文件头信息
一般网站都是会做加密等手段,你需要依据你获取到的Header去获取到真实的视频地址
然后将获取到的信息头添加到getRealUrl方法中
这里的data2要依据具体下载的视频地址进行修改
一般都会存在于json内置的某一数据内有着真实的数据地址
*/
        String realUrl="";
        String url = "你需要获取视频的真实地址的API接口" + parameter1 + "参数2:" +parameter2;
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder().url(url).build();
        Response response = client.newCall(request).execute();
        String responseBody = response.body().string();
        JSONObject json = new JSONObject(responseBody);
        JSONObject data = json.getJSONObject("data");
        //修改:获取data2数组
        JSONArray data2 = data.getJSONArray("data2");//获取嵌套在data json内的其他属性数据
        //修改:遍历data2数组
        for (int i = 0; i < data2.size(); i++) {
            //修改:获取durl数组中的每个元素
            JSONObject durlItem = data2.getJSONObject(i);
            //修改:获取每个元素中的url字段
            realUrl = durlItem.getStr("url");
            System.out.println(realUrl);
        }
        return realUrl;

💭如果你想修改chatGPT的配置等内容



🙏鸣谢

☕如果有什么需要改进联系我,欢迎交流改进。Static Badge

欢迎进行技术以及代码交流 包括后续的更新

chatgpt-video's People

Contributors

1439101157 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.