本地 AI 语音聊天
提供与 AI 实时对话的功能,完全在您的 PC 上本地运行,可自定义 AI 个性和声音。
提示: 对最先进的语音解决方案感兴趣的人请也看看 Linguflex。它允许您通过语音控制环境,是目前最强大和最复杂的开源助手之一。
注意: 如果遇到"General synthesis error: isin() received an invalid combination of arguments"错误,这是由于新的 transformers 库与 Coqui TTS 不兼容(参见这里)。请降级到旧版 transformers:
pip install transformers==4.38.2
或升级 RealtimeTTS 到最新版本pip install realtimetts==0.4.1
。
关于项目
集成了强大的 Zephyr 7B 语言模型与实时语音转文本和文本转语音库,创建了一个快速且引人入胜的基于语音的本地聊天机器人。
https://github.com/KoljaB/LocalAIVoiceChat/assets/7604638/cebacdad-8a57-4a03-bfd1-a469730dda51
提示: 如果安装 llama.cpp 时遇到问题,请也看看我的 LocalEmotionalAIVoiceChat 项目。它包括情感感知的实时文本转语音输出,并有多个 LLM 提供商选项。您也可以使用不同的 AI 模型。
技术栈
- llama_cpp 与 Zephyr 7B
- 基于 llama 的语言模型库接口
- RealtimeSTT 与 faster_whisper
- 实时语音转文本转录库
- RealtimeTTS 与 Coqui XTTS
- 实时文本转语音合成库
注意事项
此软件处于实验性 alpha 状态,不提供生产就绪的稳定性。当前用于合成的 XTTS 模型仍有故障,而且 Zephyr - 虽然对于 7B 模型来说非常好 - 当然无法与 GPT 4、Claude 或 Perplexity 的回答质量相媲美。
请将此视为提供早期版本本地实时聊天机器人的首次尝试。
更新
- 更新到 Coqui XTTS 2.0 模型
- 修复 RealtimeTTS 中的错误(Coqui 模型下载不正常)
先决条件
您需要一个约 8 GB VRAM 的 GPU 来实时运行此程序。
对于 nVidia 用户
-
NVIDIA CUDA Toolkit 11.8:
- 访问 NVIDIA CUDA Toolkit 存档。
- 选择 11.x 版本并按说明下载安装。
-
NVIDIA cuDNN 8.7.0 for CUDA 11.x:
- 前往 NVIDIA cuDNN 存档。
- 找到并下载 "cuDNN v8.7.0 (2022年11月28日), for CUDA 11.x"。
- 按提供的安装指南操作。
对于 AMD 用户
-
安装 ROCm v.5.7.1
- 下载 ROCm SDK 版本 5.7.1
- 按提供的安装指南操作。
-
FFmpeg:
根据您的操作系统安装 FFmpeg:
-
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
-
Arch Linux:
sudo pacman -S ffmpeg
-
macOS (Homebrew):
brew install ffmpeg
-
Windows (Chocolatey):
choco install ffmpeg
-
Windows (Scoop):
scoop install ffmpeg
-
安装步骤
-
克隆仓库或下载源代码包。
-
安装 llama.cpp
-
(AMD 用户) 在下一步之前设置环境变量
LLAMA_HIPBLAS
值为on
-
官方方法:
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir --verbose
- 如果官方安装不成功,请安装 text-generation-webui,它为许多平台和环境提供了一些优秀的轮子
-
-
安装实时库
- 安装主要库:
pip install RealtimeSTT==0.1.7 pip install RealtimeTTS==0.2.7
- 安装主要库:
-
从这里下载 zephyr-7b-beta.Q5_K_M.gguf。
- 打开 creation_params.json 并在
model_path
中输入下载模型的文件路径。 - 调整 n_gpu_layers(0-35,如果有更多 VRAM 则提高)和 n_threads(CPU 线程数,建议不要使用所有可用核心,为 TTS 留一些)
- 打开 creation_params.json 并在
-
如果出现依赖冲突,安装特定版本的冲突库:
pip install networkx==2.8.8 pip install typing_extensions==4.8.0 pip install fsspec==2023.6.0 pip install imageio==2.31.6 pip install numpy==1.24.3 pip install requests==2.31.0
运行应用程序
python ai_voicetalk_local.py
自定义
更改 AI 个性
打开 chat_params.json 以更改对话场景。
更改 AI 声音
- 打开 ai_voicetalk_local.py。
- 找到这行:coqui_engine = CoquiEngine(cloning_reference_wav="female.wav", language="en")
- 将 "female.wav" 更改为包含要克隆的声音的波形文件名(44100 或 22050 Hz 单声道 16 位)
语音结束检测
如果在开始第二句话之前就转录了第一句话,请在 AudioToTextRecorder 上提高 post_speech_silence_duration:
AudioToTextRecorder(model="tiny.en", language="en", spinner=False, post_speech_silence_duration = 1.5)
贡献
欢迎对项目进行增强或改进的贡献。请随时提出包含您建议更改或修复的拉取请求。
许可证
本项目采用 Coqui Public Model License 1.0.0 许可。
此许可证仅允许非商业使用机器学习模型及其输出。
联系方式
Kolja Beigel
- 电子邮件:kolja.beigel@web.de
如有任何与本项目相关的疑问或需要支持,请随时联系。