[go: up one dir, main page]

Skip to content

An AI-powered language tutor using Ollama models for customizable, natural conversations to improve speaking skills in various languages.

License

Notifications You must be signed in to change notification settings

tankxiaodi/OllamaTutor

Repository files navigation

OllamaTutor

OllamaTutor 是一个 AI 语言学习助手,采用 Ollama 支持的大型语言模型(LLM),通过实时语音对话帮助用户提高多种语言的口语能力。 特别是针对特定教程,特定主题的对话训练。

主要特性

  • 实时与 LLM 进行语音口语训练
  • 可根据自定义教材,自定义主题进行训练,比如"介绍自己的职业”
  • 可定制 LLM 性格和语气,语言习惯等...
  • 支持本地部署的Ollama 开源LLM模型,如 Llama3.1、Gemma2 等...充分保护数据隐私
  • 集成多种文本转语音(TTS)技术

安装说明

  1. 克隆仓库:

    git clone https://github.com/tankxiaodi/OllamaTutor.git
    
  2. 创建并激活 Python 虚拟环境:

    conda create --name ollama_tutor python=3.10
    conda activate ollama_tutor
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

    如果是macOS,需要安装:

    brew install portaudio
    brew install mpv
    brew install ffmpeg
    

    如果是Windows,需要安装:

    conda install ffmpeg
    

    如果是Debian/Ubuntu:

    apt install portaudio19-dev
    apt install ffmpeg
    
  4. 获取并配置API 密钥:

  5. 把项目中的 .env.sample 文件改成 .env,按照如下格式,填写上述 API 密钥和凭证信息。

     # 使用的tts, 填 Google 或 Edge , Azure
     # Google 语音最自然, 但需要配置CREDENTIAL
     TTS_API=Edge
    
     ASSEMBLYAI_API_KEY=your_ASSEMBLYAI_API_KEY  (必填)
    
     GOOGLE_APPLICATION_CREDENTIALS=your_CREDENTIALS_json_file_path (可选)
    
     AZURE_SUBSCRIPTION_KEY=your_AZURE_SUBSCRIPTION_KEY (可选)
     AZURE_REGION=your_AZURE_REGION (可选)
    
     # 对话使用的教材
     CONTEXT_FILE=context/Have_Friends_at_Work.txt
    
     # AI模型参数
     SYS_PROMPT=prompt/Sarah_prompt.txt
     MODEL_NAME=llama3.1
     MODEL_NUM_CTX=8192
    
  6. 安装 Ollama 并下载所需的模型: https://ollama.com/

    ollama run llama3.1
    

使用方法

先运行Ollama。

然后再运行 python3 main.py 。如果一切配置正确,程序会初始化, LLM 并开始说第一句话。 用户在听到提示音后可通过麦克风与 LLM 进行交流。用户一轮对话结束时,请明确说出结束语 "That's it"。

说出"That's it"非常重要,否则LLM会一直等待...

在对话中,LLM 将根据用户提供的教材内容进行教学,帮助用户练习语言。

如果发现LLM的对话不够专业,或是不够准确,请考虑使用更加清晰,明确的教材,或使用更高性能的LLM。

自定义教材

推荐使用 Engoo Daily News 或 BBC Learning English 等资源作为教材。

例如: https://www.bbc.co.uk/learningenglish/english/features/6-minute-english

https://engoo.com/app/materials/en

用户需拷贝文章的文字内容保存至 context 目录下的文本文件中,并在 .env 文件中设定 CONTEXT_FILE 环境变量, 使用相对路径指向该文件。LLM即可使用该文件为教材。

配置

编辑.env环境变量可以调整常用的参数, 而编辑 constants.py 文件可以定义高级参数。例如:

 # AI使用的语言
AI_LANGUAGE = "English"
AI_NAME = "Sarah" # AI名字

如果需要,也可以使用OpenAI的模型代替Ollama。在环境变量中加入OPENAI=True,并且设定OPENAI_API_KEY即可。

运行环境

代码已在 macOS 环境下测试通过。

我的开发环境是: Macbook Pro 2019 M1 Max 64GB和gemma2:27b模型。

理论上也支持 Windows和Debian/Ubuntu。

如何贡献

欢迎任何形式的贡献!请遵循标准的 GitHub 流程来提交您的贡献。

许可证

本项目遵循 MIT 许可证发布。有关更多信息,请查看 LICENSE 文件。

联系方式

有问题或建议,请通过以下方式联系我们:

  • 项目问题跟踪:GitHub Issues

About

An AI-powered language tutor using Ollama models for customizable, natural conversations to improve speaking skills in various languages.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages