cheetah
Cheetah 是一款由 Picovoice 打造的深度学习驱动语音转文字引擎,专为在设备端实时处理音频流而设计。它能够将用户的语音输入即时转化为文本,无需依赖云端服务器,从而彻底解决了传统语音识别中常见的数据隐私泄露风险和网络延迟问题。由于所有运算均在本地完成,Cheetah 不仅保障了用户数据的绝对私密性,还实现了极低的响应延迟和出色的运行效率,即使在树莓派等资源受限的设备上也能流畅运行。
这款工具非常适合需要集成语音功能的开发者,无论是构建移动应用(Android/iOS)、桌面软件,还是开发 Web 前端或物联网项目,Cheetah 都提供了涵盖 Python、JavaScript、Flutter、React Native 等多种主流语言的 SDK,极大地降低了集成门槛。其独特的技术亮点在于“紧凑且高效”,在保证高识别准确率的同时,对计算资源和内存的占用极低。如果你正在寻找一个既保护用户隐私,又能跨平台稳定运行的离线语音识别方案,Cheetah 将是一个值得信赖的选择。
使用场景
某跨国物流公司的移动端应用团队正在为货车司机开发一款离线语音日志记录功能,要求司机在驾驶途中通过语音快速录入货物状态,且数据不能上传云端以保护商业隐私。
没有 cheetah 时
- 隐私泄露风险高:为了实现高精度的语音转文字,团队不得不将录音文件上传至第三方云端 API,导致敏感的货运路线和客户信息暴露在公网传输中。
- 弱网环境不可用:货车常行驶于信号盲区或隧道,依赖网络的方案一旦断网,语音录入功能立即瘫痪,司机被迫改为手写,严重影响效率。
- 延迟体验差:即使网络通畅,音频上传、云端处理再返回结果的全链路延迟高达数秒,无法实现“边说边出字”的流畅交互。
- 成本难以控制:按调用次数计费的云端服务随着司机用户量增长,每月产生巨额的 API 调用账单,压缩了项目利润空间。
使用 cheetah 后
- 数据完全本地化:cheetah 作为端侧引擎,所有语音识别过程均在司机手机芯片上完成,原始音频从未离开设备,彻底杜绝隐私泄露。
- 全天候离线运行:得益于轻量级模型,cheetah 在无网络环境下依然保持高精度识别,确保司机在任何路况下都能顺畅录入日志。
- 实时流式反馈:cheetah 支持流式处理,能够逐词实时输出文本,实现了零延迟的听写体验,让司机感觉像在与人对话般自然。
- 零边际成本部署:一次性集成后,无论多少司机使用、录制多长时间,都不再产生额外的按量付费成本,大幅降低运营支出。
cheetah 通过将高性能深度学习模型压缩至端侧运行,完美解决了移动场景下隐私安全、网络依赖与实时响应的不可能三角。
运行环境要求
- Linux (x86_64)
- macOS (x86_64
- arm64)
- Windows (x86_64
- arm64)
未说明
未说明

快速开始
猎豹
由位于加拿大温哥华的 Picovoice 制作。
猎豹是一款设备端流式语音转文本引擎。猎豹具有以下特点:
- 私密性:所有语音处理均在本地进行。
- 准确
- 紧凑且计算高效
- 跨平台支持:
- Linux (x86_64)、macOS (x86_64、arm64) 和 Windows (x86_64、arm64)
- Android 和 iOS
- Chrome、Safari、Firefox 和 Edge
- 树莓派 (3、4、5)
目录
AccessKey
AccessKey 是您用于部署 Picovoice SDK(包括猎豹)的身份验证和授权令牌。任何使用 Picovoice 的人都需要有效的 AccessKey。请务必妥善保管您的 AccessKey。尽管语音识别完全离线运行,但您仍需互联网连接来通过 Picovoice 许可服务器验证您的 AccessKey。
AccessKey 还会验证您的使用是否在账户限制范围内。您可以在 Picovoice 控制台个人资料 中查看您的使用限制和实时使用情况。如需在试用期结束后继续使用 Picovoice,或续订并调整使用限制,请联系我们的 企业销售团队 或您现有的 Picovoice 联系人。
语言支持
- 猎豹流式语音转文本目前支持英语、法语、德语、意大利语、葡萄牙语和西班牙语。
- 对于商业客户,其他语言的支持可根据具体需求提供。
演示
Python 演示
安装演示包:
pip3 install pvcheetahdemo
cheetah_demo_mic --access_key ${ACCESS_KEY}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的 AccessKey。
C 演示
如果使用 SSH,克隆仓库时执行以下命令:
git clone --recurse-submodules git@github.com:Picovoice/cheetah.git
如果使用 HTTPS,克隆仓库时执行以下命令:
git clone --recurse-submodules https://github.com/Picovoice/cheetah.git
构建演示程序:
cmake -S demo/c/ -B demo/c/build && cmake --build demo/c/build
运行演示程序:
./demo/c/build/cheetah_demo_mic -a ${ACCESS_KEY} -m ${MODEL_PATH} -l ${LIBRARY_PATH}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的 AccessKey,${LIBRARY_PATH} 替换为指向 lib 目录下相应库文件的路径,${MODEL_PATH} 替换为指向 默认模型文件 的路径(或您自定义的模型文件)。
iOS 演示
要运行演示程序,请前往 demo/ios/CheetahDemo,然后执行以下命令:
pod install
将文件 ViewModel.swift 中的 let accessKey = "${YOUR_ACCESS_KEY_HERE}" 替换为您自己的 AccessKey。
随后,使用 Xcode 打开生成的 CheetahDemo.xcworkspace,并运行应用程序。
安卓演示
使用 Android Studio,将 demo/android/CheetahDemo 作为安卓项目打开,然后运行应用程序。
将文件 MainActivity.java 中的 "${YOUR_ACCESS_KEY_HERE}" 替换为您自己的 AccessKey。
Flutter 示例
要在 Android 或 iOS 上使用 Flutter 运行 Cheetah 示例,您必须在系统上安装 Flutter SDK。安装完成后,您可以运行 flutter doctor 来检查您的相关平台是否缺少其他必要依赖项。环境配置完成后,请启动模拟器或连接 Android/iOS 设备。
从 demo/flutter 运行 prepare_demo 脚本,并指定语言代码以将示例设置为您选择的语言(例如 de 表示德语,ko 表示韩语)。要查看可用语言列表,请不带语言代码运行 prepare_demo。
dart scripts/prepare_demo.dart ${LANGUAGE}
将文件 main.dart 中的 "${YOUR_ACCESS_KEY_HERE}" 替换为您的 AccessKey。
从 demo/flutter 运行以下命令以构建并将示例部署到您的设备:
flutter run
React Native 示例
要运行 React Native Cheetah 示例应用,您首先需要设置 React Native 环境。为此,请参阅 React Native 官方文档。环境设置完成后,导航到 demo/react-native/CheetahDemo,运行以下命令:
对于 Android:
yarn android-install # 设置环境
yarn android-run ${LANGUAGE} # 构建并部署到 Android
对于 iOS:
yarn ios-install # 设置环境
yarn ios-run ${LANGUAGE} # 构建并部署到 iOS
Node.js 示例
安装示例包:
yarn global add @picovoice/cheetah-node-demo
确保您的设备已连接正常工作的麦克风,然后在终端中运行以下命令:
cheetah-mic-demo --access_key ${ACCESS_KEY}
有关 Node.js 示例的更多信息,请访问 demo/nodejs。
Java 示例
Cheetah Java 示例 是一个命令行应用程序,允许您选择在音频文件上或实时麦克风输入上运行 Cheetah。
要试用实时演示,请确保您的设备已连接正常工作的麦克风。然后从终端调用以下命令:
cd demo/java
./gradlew build
cd build/libs
java -jar cheetah-mic-demo.jar -a ${ACCESS_KEY}
有关 Java 示例的更多信息,请访问 demo/java。
.NET 示例
Cheetah .NET 示例 是一个命令行应用程序,允许您选择在音频文件上或实时麦克风输入上运行 Cheetah。
请确保您的设备已连接正常工作的麦克风。从 demo/dotnet/CheetahDemo 在终端中运行以下命令:
dotnet run -c MicDemo.Release -- --access_key ${ACCESS_KEY}
将 ${ACCESS_KEY} 替换为您的 Picovoice AccessKey。
有关 .NET 示例的更多信息,请访问 demo/dotnet。
Web 示例
原生 JavaScript 和 HTML
从 demo/web 在终端中运行以下命令:
yarn
yarn start
(或者)
npm install
npm run start
在浏览器中打开 http://localhost:5000 即可试用该示例。
React 示例
从 demo/react 在终端中运行以下命令:
yarn
yarn start
(或者)
npm install
npm run start
在浏览器中打开 http://localhost:3000 即可试用该示例。
SDK
Python
安装 Python SDK:
pip3 install pvcheetah
创建引擎实例并实时转录音频:
import pvcheetah
handle = pvcheetah.create(access_key='${ACCESS_KEY}')
def get_next_audio_frame():
pass
while True:
partial_transcript, is_endpoint = handle.process(get_next_audio_frame())
if is_endpoint:
final_transcript = handle.flush()
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的密钥。
C
创建引擎实例并实时转录音频:
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include "pv_cheetah.h"
pv_cheetah_t *handle = NULL;
const pv_status_t status = pv_cheetah_init("${ACCESS_KEY}", "${MODEL_PATH}", "${DEVICE}", 0.f, false, false, &handle);
if (status != PV_STATUS_SUCCESS) {
// 错误处理逻辑
}
extern const int16_t *get_next_audio_frame(void);
while (true) {
char *partial_transcript = NULL;
bool is_endpoint = false;
const pv_status_t status = pv_cheetah_process(
handle,
get_next_audio_frame(),
&partial_transcript,
&is_endpoint);
if (status != PV_STATUS_SUCCESS) {
// 错误处理逻辑
}
// 处理转录内容
free(partial_transcript);
if (is_endpoint) {
char *final_transcript = NULL;
const pv_status_t status = pv_cheetah_flush(handle, &final_transcript);
if (status != PV_STATUS_SUCCESS) {
// 错误处理逻辑
}
// 处理最终转录内容
free(final_transcript);
}
}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的密钥,将 ${MODEL_PATH} 替换为 默认模型文件 的路径(或您自定义的模型路径)。最后,在完成操作后,请务必使用 pv_cheetah_delete(handle) 释放资源。
iOS
Cheetah 的 iOS 绑定可通过 CocoaPods 获取。要将其导入您的 iOS 项目中,请在 Podfile 中添加以下行并运行 pod install:
pod 'Cheetah-iOS'
创建引擎实例并实时转录音频:
import Cheetah
let modelPath = Bundle(for: type(of: self)).path(
forResource: "${MODEL_FILE}", // Cheetah 模型文件名
ofType: "pv")!
let cheetah = Cheetah(accessKey: "${ACCESS_KEY}", modelPath: modelPath)
func getNextAudioFrame() -> [Int16] {
// .. 获取音频帧
return audioFrame;
}
while true {
do {
let partialTranscript, isEndpoint = try cheetah.process(getNetAudioFrame())
if isEndpoint {
let finalTranscript = try cheetah.flush()
}
} catch let error as CheetahError {
// 处理错误
} catch { }
}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的密钥,将 ${MODEL_FILE} 替换为通过 Picovoice 控制台 或 默认模型 训练的自定义模型。
Android
要将该软件包包含到您的 Android 项目中,请确保在项目的顶级 build.gradle 文件中已添加 mavenCentral(),然后将以下内容添加到应用的 build.gradle 文件中:
dependencies {
implementation 'ai.picovoice:cheetah-android:${LATEST_VERSION}'
}
创建引擎实例并实时转录音频:
import ai.picovoice.cheetah.*;
final String accessKey = "${ACCESS_KEY}"; // 从 Picovoice 控制台获取的 AccessKey (https://console.picovoice.ai/)
final String modelPath = "${MODEL_FILE}";
short[] getNextAudioFrame() {
// .. 获取音频帧
return audioFrame;
}
try {
Cheetah cheetah = new Cheetah.Builder().setAccessKey(accessKey).setModelPath(modelPath).build(appContext);
String transcript = "";
while (true) {
CheetahTranscript transcriptObj = cheetah.process(getNextAudioFrame());
transcript += transcriptObj.getTranscript();
if (transcriptObj.getIsEndpoint()) {
CheetahTranscript finalTranscriptObj = cheetah.flush();
transcript += finalTranscriptObj.getTranscript();
}
};
} catch (CheetahException ex) { }
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的 AccessKey,并将 ${MODEL_FILE} 替换为来自 控制台 的默认模型或自定义训练模型。
Flutter
将 Cheetah Flutter 插件 添加到您的 pubspec.yaml 文件中。
dependencies:
cheetah_flutter: ^<version>
创建引擎实例并实时转录音频:
import 'package:cheetah_flutter/cheetah.dart';
const accessKey = "{ACCESS_KEY}" // 从 Picovoice 控制台获取的 AccessKey (https://console.picovoice.ai/)
List<int> buffer = getAudioFrame();
try{
Cheetah _cheetah = await Cheetah.create(accessKey, '{CHEETAH_MODEL_PATH}');
String transcript = "";
while (true) {
CheetahTranscript partialResult = await _cheetah.process(getAudioFrame());
transcript += partialResult.transcript;
if (partialResult.isEndpoint) {
CheetahTranscript finalResult = await _cheetah.flush();
transcript += finalResult.transcript;
}
}
_cheetah.delete()
} on CheetahException catch (err) { }
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台 获取的 AccessKey,并将 ${CHEETAH_MODEL_PATH} 替换为来自 Picovoice 控制台 的自定义训练模型路径,或使用 默认模型。
React Native
Cheetah 的 React Native 绑定可通过 NPM 获取。通过以下命令将其添加:
yarn add @picovoice/cheetah-react-native
创建引擎实例并转录音频文件:
import {Cheetah, CheetahErrors} from '@picovoice/cheetah-react-native';
const getAudioFrame = () => {
// 获取音频帧
}
try {
while (1) {
const cheetah = await Cheetah.create("${ACCESS_KEY}", "${MODEL_FILE}")
const {transcript, isEndpoint} = await cheetah.process(getAudioFrame())
if (isEndpoint) {
const {transcript} = await cheetah.flush()
}
}
} catch (err: any) {
if (err instanceof CheetahErrors) {
// 处理错误
}
}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台获取的 AccessKey,并将 ${MODEL_FILE} 替换为来自 控制台 的默认模型或自定义训练模型。完成操作后,请务必使用 cheetah.delete() 显式释放资源。
Node.js
安装 Node.js SDK:
yarn add @picovoice/cheetah-node
创建 Cheetah 类的实例:
const Cheetah = require("@picovoice/cheetah-node");
const accessKey = "${ACCESS_KEY}"; // 从 Picovoice 控制台获取 (https://console.picovoice.ai/)
const endpointDurationSec = 0.2;
const handle = new Cheetah(accessKey);
function getNextAudioFrame() {
// ...
return audioFrame;
}
while (true) {
const audioFrame = getNextAudioFrame();
const [partialTranscript, isEndpoint] = handle.process(audioFrame);
if (isEndpoint) {
finalTranscript = handle.flush()
}
}
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台 获取的 AccessKey。
完成操作后,请务必使用 release() 释放资源:
handle.release();
Java
使用 Cheetah Builder 类创建引擎实例,并实时转录音频:
import ai.picovoice.cheetah.*;
final String accessKey = "..."; // Picovoice 控制台提供的 AccessKey (https://console.picovoice.ai/)
short[] getNextAudioFrame() {
// .. 获取音频帧
return audioFrame;
}
String transcript = "";
try {
Cheetah cheetah = new Cheetah.Builder().setAccessKey(accessKey).build();
while (true) {
CheetahTranscript transcriptObj = cheetah.process(getNextAudioFrame());
transcript += transcriptObj.getTranscript();
if (transcriptObj.getIsEndpoint()) {
CheetahTranscript finalTranscriptObj = cheetah.flush();
transcript += finalTranscriptObj.getTranscript();
}
}
cheetah.delete();
} catch (CheetahException ex) { }
.NET
使用 NuGet 或 dotnet CLI 安装 .NET SDK:
dotnet add package Cheetah
该 SDK 提供了一个工厂方法来创建引擎实例,如下所示:
using Pv;
const string accessKey = "${ACCESS_KEY}";
Cheetah handle = Cheetah.Create(accessKey);
将 ${ACCESS_KEY} 替换为您从 Picovoice 控制台 获取的 AccessKey。
初始化后,有效的采样率由 handle.SampleRate 给出。预期的帧长度(输入数组中的音频样本数量)为 handle.FrameLength。该引擎接受 16 位线性编码的 PCM 格式,并且仅处理单声道音频。
short[] GetNextAudioFrame()
{
// .. 获取音频帧
return audioFrame;
}
string transcript = "";
while(true)
{
CheetahTranscript transcriptObj = handle.Process(GetNextAudioFrame());
transcript += transcriptObj.Transcript;
if (transcriptObj.IsEndpoint) {
CheetahTranscript finalTranscriptObj = handle.Flush();
transcript += finalTranscriptObj.Transcript;
}
}
Cheetah 的资源将由垃圾回收器自动释放,但若希望在使用完毕后立即释放资源,可以使用 using 语句:
using(Cheetah handle = Cheetah.Create(accessKey))
{
// .. 在此处使用 Cheetah
}
网页
原生 JavaScript 和 HTML(ES 模块)
使用 yarn 安装 Web SDK:
yarn add @picovoice/cheetah-web
或者使用 npm:
npm install --save @picovoice/cheetah-web
使用 CheetahWorker 创建引擎实例,并转录音频文件:
import { CheetahWorker } from "@picovoice/cheetah-web";
import cheetahParams from "${PATH_TO_BASE64_CHEETAH_PARAMS}";
let transcript = "";
function transcriptCallback(cheetahTranscript: CheetahTranscript) {
transcript += cheetahTranscript.transcript;
if (cheetahTranscript.isEndpoint) {
transcript += "\n";
}
}
function getAudioData(): Int16Array {
// ... 获取音频数据的函数
return new Int16Array();
}
const cheetah = await CheetahWorker.create(
"${ACCESS_KEY}",
transcriptCallback,
{ base64: cheetahParams }
);
for (;;) {
cheetah.process(getAudioData());
// 在满足某些条件时退出循环
}
cheetah.flush(); // 对剩余数据调用 transcriptionCallback。
将 ${ACCESS_KEY} 替换为你从 Picovoice 控制台 获取的密钥。最后,完成操作后使用 cheetah.release() 释放资源。
React
yarn add @picovoice/cheetah-react @picovoice/web-voice-processor
(或)
npm install @picovoice/cheetah-react @picovoice/web-voice-processor
import { useCheetah } from "@picovoice/cheetah-react";
function App(props) {
const {
result,
isLoaded,
isListening,
error,
init,
start,
stop,
release,
} = useCheetah();
const initEngine = async () => {
await init(
"${ACCESS_KEY}",
cheetahModel,
);
};
const toggleRecord = async () => {
if (isListening) {
await stop();
} else {
await start();
}
};
useEffect(() => {
if (result !== null) {
console.log(result.transcript);
console.log(result.isComplete);
}
}, [result])
}
版本发布
v4.0.0 - 2026年3月19日
- 提升了引擎性能和降低延迟
- 新增文本归一化功能
v3.0.0 - 2025年12月17日
- 进一步优化了引擎性能
- 支持在 GPU 或多核 CPU 上运行
- Node.js 最低版本提升至 Node 18
- iOS 最低版本提升至 iOS 16
- Flutter 最低版本提升至 3.10
- React Native 最低版本提升至 0.73
v2.3.0 - 2025年8月29日
- 新增支持低延迟的 Cheetah Fast 模型
- 提高了引擎的准确性
v2.2.0 - 2025年7月3日
- 改进了自动标点符号插入功能
v2.1.0 - 2024年12月10日
- 新增对法语、德语、意大利语、葡萄牙语和西班牙语的支持
- 修复了多个 bug 并提升了性能
v2.0.0 - 2023年11月27日
- 改进了错误报告机制
- 升级了授权与认证系统
- 提高了引擎的准确性
- 修复了多个 bug 并进行了多项改进
- Node.js 最低支持版本提升至 Node 16
- iOS 最低支持版本提升至 iOS 13 及以上
- 修复了 .NET 的兼容性问题
v1.1.0 - 2022年8月11日
- 转录结果默认启用大小写正确化
- 新增自动标点符号插入选项
- 发布 Cheetah Web SDK
v1.0.0 - 2022年1月25日
- 初始版本发布
版本历史
v4.02026/03/193.0.02025/12/19v2.32025/08/29v2.22025/07/03v2.12024/12/11v2.02023/11/27v1.12022/08/12常见问题
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
GPT-SoVITS
GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。
TTS
🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。
LocalAI
LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获
bark
Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。
ChatTTS
ChatTTS 是一款专为日常对话场景打造的生成式语音模型,特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音(TTS)技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题,让机器生成的语音听起来更像真人在聊天。 这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化:它不仅支持中英文双语,还能精准控制韵律细节,自动生成自然的 laughter(笑声)、pauses(停顿)和 interjections(插入语),从而实现多说话人的互动对话效果。在韵律表现上,ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成,虽主要用于学术研究与教育目的,但已展现出强大的潜力,并支持流式音频生成与零样本推理,为后续的多情绪控制等进阶功能奠定了基础。