WhisperBot:整合了Mistral大型语言模型的实时语音转文本系统

本文主要是介绍WhisperBot:整合了Mistral大型语言模型的实时语音转文本系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目简介

欢迎来到 WhisperBot。WhisperBot 基于 WhisperLive 和 WhisperSpeech 的功能而构建,在实时语音到文本管道之上集成了大型语言模型 Mistral (LLM)。WhisperLive 依赖于 OpenAI Whisper,这是一个强大的自动语音识别 (ASR) 系统。Mistral 和 Whisper 都经过优化,可作为 TensorRT 引擎高效运行,从而最大限度地提高性能和实时处理能力。

特征

  • 实时语音转文本:利用 OpenAI WhisperLive 将口语实时转换为文本。

  • 大型语言模型集成:添加大型语言模型 Mistral,以增强对转录文本的理解和上下文。

  • TensorRT 优化:Mistral 和 Whisper 都经过优化,可作为 TensorRT 引擎运行,确保高性能和低延迟处理。

先决条件

安装 TensorRT-LLM 来构建 Whisper 和 Mistral TensorRT 引擎。自述文件为 TensorRT-LLM 构建了一个 docker 镜像。除了构建 docker 镜像之外,我们还可以参考 README 和 Dockerfile.multi 在基础 pytroch docker 镜像中安装所需的包。只要确保使用 dockerfile 中提到的正确的基础镜像,一切都会顺利进行。

构建 Whisper TensorRT 引擎

  • 将工作目录更改为 TensorRT-LLM 中的耳语示例目录。

cd TensorRT-LLM/examples/whisper
  • 目前,默认情况下 TensorRT-LLM 仅支持 large-v2 和 large-v3 。在此存储库中,我们使用 small.en 。

  • 下载所需的资源。

wget --directory-prefix=assets assets/mel_filters.npz https://raw.githubusercontent.com/openai/whisper/main/whisper/assets/mel_filters.npz
# small.en modelwget --directory-prefix=assets https://openaipublic.azureedge.net/main/whisper/models/f953ad0fd29cacd07d5a9eda5624af0f6bcf2258be67c92b79389873d91e0872/small.en.pt
  • 编辑 build.py 以支持 small.en 。为此,请将 "small.en" 添加为列表 choices 中的项目。

  • 构建 small.en TensorRT 引擎。

pip install -r requirements.txtpython3 build.py --output_dir whisper_small_en --use_gpt_attention_plugin --use_gemm_plugin --use_layernorm_plugin  --use_bert_attention_plugin --model_name small.en

构建 Mistral TensorRT 引擎

  • 将工作目录更改为 TensorRT-LLM 文件夹中的 llama 示例目录。

cd TensorRT-LLM/examples/llama
  • 将 Mistral 转换为 fp16 TensorRT 引擎。

    
    python build.py --model_dir teknium/OpenHermes-2.5-Mistral-7B \--dtype float16 \--remove_input_padding \--use_gpt_attention_plugin float16 \--enable_context_fmha \--use_gemm_plugin float16 \--output_dir ./tmp/mistral/7B/trt_engines/fp16/1-gpu/ \--max_input_len 5000--max_batch_size 1

构建 Phi TensorRT 引擎

注意:Phi 仅在主分支可用,尚未发布。因此,请确保从主分支构建 TensorRT-LLM。

  • 将工作目录更改为 TensorRT-LLM 文件夹中的 phi 示例目录。

cd TensorRT-LLM/examples/phi
  • 构建 phi TensorRT 引擎

git lfs install
git clone https://huggingface.co/microsoft/phi-2
python3 build.py --dtype=float16                    \--log_level=verbose                \--use_gpt_attention_plugin float16 \--use_gemm_plugin float16          \--max_batch_size=16                \--max_input_len=1024               \--max_output_len=1024              \--output_dir=phi_engine            \--model_dir=phi-2>&1 | tee build.log

项目链接

https://github.com/collabora/WhisperBot

这篇关于WhisperBot:整合了Mistral大型语言模型的实时语音转文本系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657415

相关文章

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析