在 QT 项目中使用开源大模型

随着 ChatGPT 和 Stable Diffusion 的大热,AI 不再作为一个玩具,走进人们的视线,AIGC 产品也如雨后春笋一般纷纷涌现。然而对大多数 C++程序员而言,却处在尴尬的位置。

诚然,AI 的核心都是 C++实现的,但对于普通 C++程序员来说,门槛太高,参与不了。然而, C++程序员想将 AI 集成进产品,却发现大多数模型都是提供的 Python 接口,示例也是 Python 代码,甚至连网上的资料,也都是 Python 相关,想集成进 C++项目,难上加难。

最近在考虑 Qt 项目中使用开源大模型。这里的大模型不是 GPT,而是最早的 AI 应用领域:语音识别。功夫不负有心人,经过一番搜索,终于找到这样一个开源项目:whisper.cpp。

Whisper.cpp 是一个基于 OpenAI 的 Whisper 模型的 C++ 移植版本,具有轻量级、高效和可扩展的优势。

Whisper 模型则是出自 OpenAI 之手,OpenAI 有多牛,就不需要我多说了吧。

自动语音识别(ASR)是指将语音转换为文本的过程。ASR系统在各种应用中都有广泛的应用,包括语音到文本转换、口语翻译、虚拟助手和语音识别。

近年来,ASR系统取得了显著的进展。这主要归功于深度学习技术的快速发展。深度学习模型可以从大量数据中学习,从而提高ASR系统的准确性。

Whisper 模型是一个基于Transformer的编码器-解码器模型。Transformer是一种强大的神经网络架构,最初用于机器翻译。Transformer模型具有以下优点:

  • 它可以并行处理音频数据,从而提高训练速度。

  • 它可以学习长距离的依赖关系,从而提高准确性。

Whisper的训练数据集包含680,000小时的音频和文本数据。数据集包括来自各种来源的音频,包括电影、电视节目、新闻报道和公开演讲。

Whisper 支持多种语言,这其中就包括中文,这也是我选择 Whisper 的原因之一。

whisper.cpp 虽然是个人维护的项目,但看提交记录以及项目的介绍,感觉也是一位大牛的作品。作者写了比较详细的指南和教程,还有演示视频,比较靠谱。项目地址:

https://github.com/ggerganov/whisper.cpp

项目采用了 MIT License,这是一个相当宽松的开源协议,使用在商业项目中毫无问题。

由于 whisper.cpp 采用了 cmake 构建系统,所以集成进 QT 会相当方便。支持的平台有 Mac OS、IOS、Windows、Android等,如果你想开发跨平台应用,它也是一个不错的选择。

whisper.cpp 支持各种规模的模型,从 tiny 到 large,模型大小不同,占用的内存大小不同,适用于不同的使用场景。下面是作者给出的模型大小及内容占用情况:

6490ef5e98392c8847d254de5680cd2c.png

源码中提供了丰富的示例代码,有兴趣的朋友可以点进去看一看。

外来的和尚是否好念经,能否平替国内的讯飞,还有待测试,请关注我后续的研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/291925.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java并发编程六 共享模型之内存

文章目录 Java 内存模型可见性解决方法 有序性解决方法 Java 内存模型 JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等。 JMM 体现在以下几个方面 原子性 - 保证指令不会受到线程上…

3D模型人物换装系统(一)

3D模型人物换装系统 介绍遇到的问题问题修复具体实现换装1.准备所有模型部位和模型骨骼部位准备材质准备模型根骨骼准备创建文件夹将上述模型拖成预制体创建一个动画状态机给他们附上待机动画 2.脚本驱动Mesh合并代码 UCombineSkinnedMgr.cs创建Mesh以及实例化对象的代码 UChar…

主流数据库体系结构

MySQL 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库(database)组成。实例包括一组后台进程/线程和许多内存结构,用于管理数据库;数据库由一组磁盘文件组成,用于存储数…

人工智能在约会APP开发中的作用

约会APP已成为当今技术世界中结识人们的流行方式。这意味着您不必要求您的朋友去见某人约会。简而言之,技术改善了约会过程,而人工智能在约会APP开发中的兴起极大地影响了人们今天的约会方式。 在约会APP中使用人工智能技术可以改善个人寻找完美匹配对象…

vue3+element plus组件库中el-carousel组件走马灯特效,当图片变动时下面数字也随着图片动态变化

1.效果图 2.html <section style"height:30%"><div class"left-img1-title"><img src"../assets/img/title.png"alt""srcset""><div class"text">回收垃圾数量</div></div>…

1. 线程概述、线程和进程、 并发和并行、多线程的优势 、程序运行原理 、主线程、 线程的 6 种状态

文章目录 1. 线程概述1.1 线程和进程1.2 并发和并行1.3 多线程的优势1.4 程序运行原理1.5 主线程 1.6 线程的 6 种状态 1. 线程概述 1.1 线程和进程 ​ 进程是处于运行过程中的程序&#xff0c;并且具有一定的独立功能&#xff0c;进程是系统进行资源分配和调度的一个独立单位…

微信小程序 动态设置状态栏样式

onLoad(options) {//修改状态栏标题wx.setNavigationBarTitle({title: 页面标题, //页面标题success: () > {}, //接口调用成功的回调函数fail: () > {}, //接口调用失败的回调函数complete: () > {} //接口调用结束的回调函数&#xff08;调用成功、失败…

【数字图像处理】实验二 图像变换

图像变换 一、实验内容&#xff1a; 1&#xff0e; 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2&#xff0e; 熟练掌握各种图像变换的基本原理及方法。 3&#xff0e; 能够从深刻理解图像变换&#xff0c;并能够思考拓展到一定的应用领域。…

图像识别与人工智能到底是何关系?有何区别?

图像识别是人工智能领域的一个重要应用领域&#xff0c;它利用人工智能技术和算法来分析和理解图像内容。图像识别是使计算机能够模拟和理解人类视觉系统的能力&#xff0c;并从图像中提取出有用的信息和特征。 人工智能在图像识别中扮演着至关重要的角色&#xff0c;主要体现…

从0开始学Git指令

从0开始学Git指令 因为网上的git文章优劣难评&#xff0c;大部分没有实操展示&#xff0c;所以打算自己从头整理一份完整的git实战教程&#xff0c;希望对大家能够起到帮助&#xff01; 初始化一个Git仓库&#xff0c;使用git init命令。 添加文件到Git仓库&#xff0c;分两步…

助力工业产品质检,基于YOLOv8开发构建智能PCB电路板质检分析系统

AI助力工业质检智能生产制造已经有很多成功的实践应用了&#xff0c;在我们前面的系列博文中也有很多对应的实践&#xff0c;感兴趣的话可以自行移步阅读前面的博文即可&#xff1a; 《助力质量生产&#xff0c;基于目标检测模型MobileNetV2-YOLOv3-Lite实现PCB电路板缺陷检测…

【Jenkins】远程API接口:Java 包装接口使用示例

jenkins-rest 库是一个面向对象的 Java 项目&#xff0c;它通过编程方式提供对 Jenkins REST API 的访问&#xff0c;以访问 Jenkins 提供的一些远程 API。它使用 jclouds 工具包构建&#xff0c;可以轻松扩展以支持更多 REST 端点。其功能集不断发展&#xff0c;用户可以通过拉…