Gloridust / LocalChatLLM

AI project designed to enable out-of-the-box localized large-model offline natural language speech human-computer interaction.|LocalChatLLM旨在实现开箱即用的本地化大模型离线自然语言语音人机交互。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LocalChatLLM

LocalChatLLM 是一个由 YGeeker Pioneer 计划主导的开源项目,旨在实现开箱即用的本地化离线自然语言语音交互。

Sponsored by YGeeker

你需要注意的是,本项目支持中英双语。而不同语言的文档中使用的模型不同:中文使用的是'qwen:7b',而英文版本为'gemma:7b',请按照需要选择模型。For English? Please click here.

主要技术栈

  • Python
  • ollama
  • qwen
  • openai-whisper
  • pyttsx3

功能实现

  • LLM自然语言对话 - ollama|qwen
  • 语音输入 - whisper
  • 语音合成 - pyttsx3
  • 大模型实现自然语言合成
  • 语音唤醒
  • 自动结束录音
  • 分布式运行

更新日志

v1.1.1

  • 将Whisper模型改用'small',以提高准确性

v1.1.0

  • 加入运行时间检测功能,能统计每一次循环的处理时间:
asr time: 2.155439000001934 #语音转文字时间
get_response time: 4.139052400001674  #大语言模型处理时间
all time: 6.295364899997367 #总处理时间

v1.0.1

  • 加入文本检测,如果没有人说话将自动结束程序

v1.0.0

  • 实现了最基本的自然语言语音交流功能

部署

  1. clone 本仓库:
git clone https://github.com/Gloridust/LocalChatLLM.git
cd ./LocalChatLLM
  1. 从官网安装 ollama

  2. 安装Python依赖库:

pip install -r requirements.txt

如果出现异常,首先尝试一步一步安装,检查哪一步出问题了:

pip install ollama
pip install pyaudio
pip install pydub
pip install ffmpeg
pip install pyttsx3
pip install openai-whisper

参考 Openai-Whisper 的官方文档,你需要根据不同的系统用以下命令安装ffmpeg:

# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

如果您在上述 'pip install' 命令中看到安装错误,请按安装 Rust 开发环境。此外,您可能需要配置 PATH 环境变量,例如 'export PATH="$HOME/.cargo/bin:$PATH"' 。如果没有名为 "setuptools_rust "的模块,安装失败,则需要先安装 'setuptools_rust' :

pip install setuptools-rust
  1. Pull 所需要的 ollama 模型并定制:
ollama pull qwen:7b
ollama create localchatllm-qwen-7b -f ./modelfile_cn
  1. 初始化并尝试运行whisper:
whisper audio.wav --model small
  1. 调整其他配置

打开'start.py',你可以看见一些可以修改的配置:

######config#####

# For Chinese use 'qwen:7b'
model_name = 'localchatllm-qwen-7b' 

# For English use 'gemma:7b'
# model_name = 'localchatllm-gemma-7b' 

whisper_model = "small"
whisper_language = "zh"
#################

tokenizer.py查看所有支持的语言

大功告成!

运行

python start.py

程序录音5秒钟,然后等待生成回答。在朗读完生成的回答后,会再次进入录音状态,以此循环。

鸣谢

About

AI project designed to enable out-of-the-box localized large-model offline natural language speech human-computer interaction.|LocalChatLLM旨在实现开箱即用的本地化大模型离线自然语言语音人机交互。


Languages

Language:Python 100.0%