一、软硬件配置

  1. 树莓派 3B
  2. AC108 树莓派语音模块
    image.png
  3. 系统软件版本:Linux raspberrypi 5.10.103-v 8+ #1529 SMP PREEMPT Tue Mar 8 12:26:46 GMT 2022 aarch 64 GNU/Linux
  4. 蓝牙音响

二、前期准备

1. 配置科学上网

在 Linux 中使用 Clash | CodeSwift (iswiftai.com)

科学上网配置完毕之后,先通过 clash 脚本启动服务,然后再 export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

2. 更新apt、安装git

sudo apt update
sudo apt-get install git

3. 卸载python2,配置 pip

1)卸载python2

# 1.使用以下命令卸载
sudo apt-get remove --purge python2

# 2.自动清理 python2.7 的依赖
sudo apt autoremove

# 3.输入python验证是否卸载成功,若出现no command found 则成功
python

# 4.删除python2.7软连接
sudo rm -f /usr/bin/python

# 5.更改软链接,默认使用python3
sudo ln -s /usr/bin/python3.7 /usr/bin/python

# 6.检查当前 python 版本
python -V

2)配置 pip

# 1.安装pip
apt-get install python3-pip

# 2.更新pip到指定版本
pip3 install --upgrade pip==21.3.1

三、安装AC108 驱动

  1. 下载驱动文件git clone https://github.com/respeaker/seeed-voicecard.git
  2. 进入文件夹cd seeed-voicecard
  3. 修改install.sh文件,将/boot/kernel.img 修改为/boot/kernel8.img
    image.png
  4. 执行 sudo ./install.sh 开始安装
  5. 重启 sudo reboot,并通过 arecord -L 查看驱动是否安装正常
    image.png
  6. 可以通过 arecord -d 10 -r 44100 test.wav 进行声音录制

四、安装wukong-robbt

详情参见:https://wukong.hahack.com/#/install

五、修改配置

因为我使用的是中转的 chatgpt 的 api 因此需要对 wukong 中的配置文件进行修改。中转免费 api 获取途径:chatanywhere
image.png

  1. 获取API Key 如我的为sk-dFvMT61TN6vkWZovXodOefe9eyzxhQqgYkNEaTCyFHHLYqun
  2. 修改 wukong 的配置文件
openai:
    openai_api_key: 'sk-dFvMT61TN6vkWZovXodOefe9eyzxhQqgYkNEaTCyFHHLYqun'
    provider: 'openai' # openai的接口填写openai, azure的填写azure
    api_version:   # 如果是openai的,留空就行,azure的需填写对应的api_version,参考官方文档
    # 参数指定将生成文本的模型类型。目前支持 gpt-3.5-turbo 和 gpt-3.5-turbo-0301 两种选择
    model: 'gpt-3.5-turbo'
    # 在前面加的一段前缀
    prefix: '请用200字回答:'
    # 该temperature参数可以设置返回内容地多样性。值越大意味着该模型更有可能产生创造性的东西,设置为 1 意味着模型将返回它不确定的结果;相比之下,将此参数设置为 0 意味着模型将返回它几乎可以肯定的结果。
    temperature: 1
    # 该max_tokens参数指定模型允许生成的最大字符数量作为其输出的一部分。您需要为生成的更多字符付费,因此请务必小心使用此参数。
    max_tokens: 2000
    # 一个可用于代替 temperature 的参数,对应机器学习中 nucleus sampling,如果设置 0.1 意味着只考虑构成前 10% 概率质量的 tokens
    top_p: 1.0
    # -2.0 ~ 2.0 之间的数字,正值会根据新 tokens 在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性
    frequency_penalty: 0.0
    # -2.0 ~ 2.0 之间的数字,正值会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性
    presence_penalty: 0.0
    stop_ai: 'stop'
    # 如果需要代理,反注释下面的配置进行修改
    proxy: 'http://127.0.0.1:7890'
    # 如果需要更换 api_base ,反注释下面的配置进行修改
    api_base: "https://api.chatanywhere.cn/v1/chat"