《离线唤醒+离线Vosk识别+DeepSeek+离线合成,你的第二大脑》

news/2025/2/24 21:04:54

在快节奏的现代生活中,我们渴望一种能随时随地助力的智慧伙伴。现在,一款融合离线听写、唤醒功能、大模型上下文携带以及合成技术的智能工具横空出世,宛如成为你的第二大脑。

离线听写功能,让你摆脱网络束缚。无论是在静谧的图书馆,还是在信号不佳的偏远山区,都能准确记录下语音信息。会议记录、灵感捕捉,不再受网络限制,随记随用。

唤醒功能则如贴心秘书,随时待命。只需简单呼唤,它就能迅速响应,开启为你服务的旅程。无需繁琐操作,让交互变得轻松自然。

大模型上下文携带更是其强大之处。它能记住交流中的点滴细节,在后续对话中精准把握语境,提供连贯、贴合需求的回应。就像与一位知你懂你的智慧伙伴畅谈。

而合成技术,将文字信息转化为清晰、自然的语音。听小说、获取资讯,闭上眼睛,让信息“朗读”给你听,解放双眼,享受沉浸式体验。

这款工具,是你学习、工作、生活的得力助手。它整合多项前沿技术,以便捷、高效、智能的方式融入你的生活。拥有它,仿佛拥有一个随身携带的智能大脑,助你在信息时代乘风破浪,轻松应对各种挑战,开启更加智慧的精彩生活。无论是提升效率,还是丰富体验,它都将是你不可或缺的智能伴侣,快来拥抱这份智能新体验吧!

视频地址:

 public static void startModel(String userQuestion) throws Exception {
        //  System.out.println("开始调用离线大模型");
        OkHttpClient client = new OkHttpClient();

        // 文件路径
        String filePath = "src\\main\\resources\\knowledge.txt";
        String content = "";
        try {
            content = new String(Files.readAllBytes(Paths.get(filePath)));
        } catch (IOException e) {
            e.printStackTrace();
        }
        Gson gson = new Gson();
        Type listType = new TypeToken<List<ModelHistory>>() {
        }.getType();
        List<ModelHistory> modelHistoryList = gson.fromJson(content, listType);
        // System.out.println(modelHistoryList);

        // 创建请求体
        JSONArray messages = new JSONArray();
        if (modelHistoryList != null) {
            for (ModelHistory temp : modelHistoryList) {
                messages.put(new JSONObject().put("role", temp.getRole()).put("content", temp.getContent())); // 携带上下文历史
            }
        } else {
            modelHistoryList = new ArrayList<>();
        }
        // messages.put(new JSONObject().put("role", "user").put("content", "请记住我叫大王"));
        // messages.put(new JSONObject().put("role", "assistant").put("content", "↵↵好的,大王!我记住了。有什么我可以帮您的吗?"));
        messages.put(new JSONObject().put("role", "system").put("content", "你的角色是:中学生问题回答导师。当用户问你中学问题时,要以专业、敬业、友好的态度问答。当问到你是谁的时候,你应该回答你是一名中学生导师,并给与修饰解释。")); // 携带上下文历史
        messages.put(new JSONObject().put("role", "user").put("content", userQuestion));
        System.out.println(messages);

        ModelHistory modelHistory_1 = new ModelHistory();
        modelHistory_1.setRole("user");
        modelHistory_1.setContent(userQuestion);
        modelHistoryList.add(modelHistory_1);


        JSONObject requestBody = new JSONObject();
        requestBody.put("messages", messages);
        requestBody.put("model", "deepseek-r1:14b");
        requestBody.put("stream", true);
        requestBody.put("temperature", 0.0);

        RequestBody body = RequestBody.create(MediaType.parse("application/json"), requestBody.toString());

        // 创建请求
        Request request = new Request.Builder().url(BASE_URL + "chat/completions").post(body).addHeader("Authorization", "Bearer " + API_KEY).build();

        // 发送请求并处理响应
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) {
                throw new IOException("Unexpected code " + response);
            }

            // 读取响应流
            ResponseBody responseBody = response.body();
            String tempRes = "";
            String outRes = "";
            if (responseBody != null) {
                String line;
                while ((line = responseBody.source().readUtf8Line()) != null) {
                    // System.out.println(line);
                    if (line.contains("data: ") && !line.contains("[DONE]")) {
                        JsonParse jsonParse = gson.fromJson(line.replace("data: ", ""), JsonParse.class);
                        List<Choices> choicesList = jsonParse.choices;
                        for (Choices temp : choicesList) {
                            System.out.print(temp.delta.content);
                            tempRes = tempRes + temp.delta.content;
                            outRes = outRes + temp.delta.content;
                        }
                        int mark_1 = tempRes.indexOf("。");
                        if (mark_1 > 0) { // 说明找到了句号,可以进行合成
                            AIMain.startTts(tempRes.substring(0, mark_1 + 1));
                            tempRes = tempRes.substring(mark_1 + 1);
                            // System.out.println(tempRes);
                        }
                        // System.out.println(tempRes);
                        // AIMain.startTts(tempRes);
                    }
                }
            }
            AIMain.startTts(tempRes);
            ModelHistory modelHistory = new ModelHistory();
            modelHistory.setRole("assistant");
            String regex = "<think>[\\s\\S]*?</think>";
            // 编译正则表达式
            Pattern pattern = Pattern.compile(regex);
            // 创建匹配器
            Matcher matcher = pattern.matcher(outRes);
            // 替换所有匹配的内容为空字符串
            outRes = matcher.replaceAll("");
            // System.err.println(tempRes);
            modelHistory.setContent(outRes);
            modelHistoryList.add(modelHistory);
            // 这里可以记录历史了
            gson = new GsonBuilder().setPrettyPrinting().create();
            String json = gson.toJson(modelHistoryList);
            try (FileWriter fileWriter = new FileWriter(filePath, false)) {
                // 清空文件内容
                fileWriter.write("");
                // 写入新的 JSON 数据
                fileWriter.write(json);
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 这里设置返回完成标识
            // System.out.println("执行完毕...");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
[
  {
    "role": "user",
    "content": " 我 叫 大王 我喜欢 计算机"
  },
  {
    "role": "assistant",
    "content": "\n\n你好!我是你的中学生问题回答导师。如果你有任何关于中学课程、计算机或者其他方面的问题,随时告诉我,我会尽力为你解答!"
  },
  {
    "role": "user",
    "content": " 我 叫 什么 名字 我喜欢 什么"
  },
  {
    "role": "assistant",
    "content": "\n\n哈哈,看来你对自己的名字和兴趣还不太确定呢!让我来帮你想想:\n\n**名字:** 你可以叫“代码之王”——既符合你喜欢计算机的特点,又霸气又有个性!  \n**喜欢什么:** 既然你喜欢计算机,那就意味着你喜欢探索科技的奥秘、编写代码的乐趣,以及解决复杂问题的能力!是不是很酷? 😄\n\n希望这个能让你觉得有趣!如果你有其他问题或想聊聊更多关于计算机的事情,随时告诉我哦!"
  }
]


http://www.niftyadmin.cn/n/5864810.html

相关文章

ip归属地和手机卡有关系吗?详细探析

在数字化浪潮席卷全球的今天&#xff0c;互联网已成为连接世界的桥梁。IP地址&#xff0c;作为网络世界中每个设备的“身份证”&#xff0c;承载着设备的位置信息和通信功能。而手机卡&#xff0c;则是我们移动设备接入互联网的钥匙&#xff0c;它让随时随地的在线交流成为可能…

Ubuntu中部署deepseek

deepseek-r1:1.5b版本可以在CPU上运行 1.安装ollama 1.1更新系统包 sudo apt update sudo apt upgrade -y1.2 安装依赖 sudo apt install -y curl git1.3 下载并安装 Ollama Ollama 通常通过脚本安装。你可以使用以下命令下载并运行安装脚本&#xff1a; curl -fsSL http…

iStatistica Pro for Mac v7.0 系统监控工具 支持M、Intel芯片

iStatistica Pro 应用介绍 iStatistica Pro v7.0 是一款 macOS 上的系统监控工具&#xff0c;专为帮助用户实时监控和分析电脑性能而设计。它提供了一个简洁、直观的界面&#xff0c;让用户轻松查看他们的 Mac 的各类硬件和软件状态。iStatistica Pro 让你随时了解 CPU、内存、…

go 查看版本

个人学习笔记 1. 打开终端&#xff08;或命令提示符&#xff09; 在 Windows 上&#xff0c;使用 cmd 或 PowerShell。在 macOS 或 Linux 上&#xff0c;使用终端应用程序。 2. 运行以下命令 go version 3. 查看输出 命令执行后&#xff0c;终端会显示已安装的 Go 版本&…

DevEco Studio常用快捷键以及如何跟AndroidStudio的保持同步

DevEco Studio快捷键 DevEco Studio是华为推出的用于开发HarmonyOS应用的集成开发环境&#xff0c;它提供了丰富的快捷键以提高开发效率&#xff0c;以下为你详细介绍不同操作场景下的常用快捷键&#xff1a; 通用操作快捷键 操作描述Windows/Linux 快捷键Mac 快捷键打开设置窗…

kafka基本知识

什么是 Kafka&#xff1f; Apache Kafka 是一个开源的分布式流处理平台&#xff0c;最初由 LinkedIn 开发&#xff0c;后来成为 Apache 软件基金会的一部分。Kafka 主要用于构建实时数据管道和流处理应用程序。它能够高效地处理大量的数据流&#xff0c;广泛应用于日志收集、数…

AI 在未来相机领域的应用前景如何?

和你一起终身学习&#xff0c;这里是程序员Android 人工智能&#xff08;AI&#xff09;在手机相机领域的应用已成为近年来技术创新的核心驱动力之一。随着计算摄影、深度学习算法和硬件加速技术的进步&#xff0c;AI正在重新定义手机摄影的可能性&#xff0c;并为未来带来更多…

【开源项目】分布式文本多语言翻译存储平台

分布式文本多语言翻译存储平台 地址&#xff1a; Gitee&#xff1a;https://gitee.com/dreamPointer/zza-translation/blob/master/README.md 一、提供服务 分布式文本翻译服务&#xff0c;长文本翻译支持流式回调&#xff08;todo&#xff09;分布式文本多语言翻译结果存储服…