QureL / ChatGPTVoice

🤖Desktop app for RealTime Voice Chat with GPT, Improving your spoken skills. Powered by Whisper. 🐔🐔 基于Qt开发的本地实时gpt语音聊天工具,进行模拟场景对话,支持多语音,帮助锻炼口语

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChatGPTVoice

中文

Base on whisper and PyQT(PySide6), a RealTime Voice GPT chat tool, supporting historical conversations. Enjoy chatting with GPT voice without relying on ChatGPT Plus. 🐔🐔

Requirement

python >= 3.10

OS

win10+, Linux(Just test in Ubuntu, works), Mac(Based on Linux as reference, theoretically feasible, but not tested.)

GPU

Running the whisper base model requires less than 1GB of available memory, and the results are passable with no noise and an accuracy rate around 90% in accurate spoken language situations. The whisper large model requires over 8GB of available memory, yet it provides excellent performance. Even my poor English speaking skills are recognized fairly accurately. Moreover, it handles long speech segments and interruptions quite effectively.

In summary, the base model is more user-friendly, but if conditions allow, it's recommended to use the large model. In cases of recognition errors, modifications can be directly made to the recognized results in the GUI.

Install

Clone repo

git clone https://github.com/QureL/ChatGPTVoice.git
cd ChatGPTVoice

Create and activate a virtual environment.(powershell. In Bash, you may need to run scripts like activate.)

mkdir venv
python -m venv .\venv\
.\venv\Scripts\Activate.ps1

Install dependencies.

pip install -r requirements.txt

In Linux, you need to run the following command to install the required dependencies.

apt install portaudio19-dev python3-pyaudio
apt install espeak

Run

Execute directly within the virtual env.

python ./main.py

whisper run remotely

I have a Linux host with 12GB of GPU memory and a laptop with a weak 1650 GPU. To run the Whisper large model, you can host Whisper on Linux and use websocket communication between the client and Whisper.

Linux:

python scrpit/whisper_server.py --model large-v2

client:

python .\main.py --whisper_mode remote --whisper_address ws://{You Linux IP}:3001

Proxy for openai

python .\main.py --proxy http://127.0.0.1:10809

After enabling the proxy, all OpenAI GPT requests and model downloads will pass through the proxy node.

Thanks

PyQt-Fluent-Widgets A fluent design widgets library based on PyQt5

TODO LIST

  • 国际化支持
  • 聊天ui优化
  • 导入其他TTS
  • 消息编辑
  • 本地langchain向量库

About

🤖Desktop app for RealTime Voice Chat with GPT, Improving your spoken skills. Powered by Whisper. 🐔🐔 基于Qt开发的本地实时gpt语音聊天工具,进行模拟场景对话,支持多语音,帮助锻炼口语

License:Mozilla Public License 2.0


Languages

Language:Python 100.0%