当前位置: 首页 > news >正文

通过python安装小智语音服务器端

小智语音因为不提供服务器端开源代码,就自己在ai问了一套

GitHub - xinnan-tech/xiaozhi-esp32-server: 本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server.本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server. - xinnan-tech/xiaozhi-esp32-serverhttps://github.com/xinnan-tech/xiaozhi-esp32-server这套代码整体来说分为两部分,一部分是服务器部分,一部分是后台管理部分。

咱这里只说服务器核心代码的部分。我尝试了一下直接跑他们的docker镜像,很简单就可以跑通了。唯独需要注意下docker的端口号问题。

然而,我的服务器也是windows版本的,如果在服务器那个配置上跑docker,服务器就啥都别服务了。

于是看了一下,这套小智核心代码既然都是python的,那么我就在本地直接跑python吧。

上面图是某网站代码的截图。

好了,下来看我本地的python版本。

 py --version

本地显示的版本是

下来,我在本地文件夹使用了一种项目内的虚拟环境技术,这个技术挺好的啊,我也是第一次使用。

创建虚拟环境

  • 在 Windows 上:

  • python -m venv venv

    然后就会创建一个目录myenv,这个就是python的虚拟环境技术。激活这个环境,就会在命令行下进入这个环境

  • 激活虚拟环境:
    根据你的操作系统,使用以下命令激活虚拟环境

  • .\myenv\Scripts\activate


    命令行前缀多了一个绿色的myenv,表示已经在虚拟环境下了。
    venv 是 Python 3.3 及更高版本自带的标准库模块,用于创建轻量级的虚拟环境。它允许你在 Python 项目中创建独立的环境,从而隔离项目的依赖项,避免全局安装的包之间的版本冲突。
    关于 venv 的特点:
    内置模块:从 Python 3.3 开始,venv 被引入为标准库的一部分。因此,如果你使用的是 Python 3.3 或更高版本,无需额外安装,直接使用即可。
    轻量级:venv 提供了比 virtualenv 更简单、更轻量的虚拟环境创建方式。它不包含一些额外的功能,如对旧版本 Python 的支持,因此更适合现代 Python 项目。
    隔离环境:使用 venv 创建的虚拟环境会复制 Python 解释器和标准库文件,并创建一个独立的目录来存储项目的依赖项。这确保了每个项目可以在独立的环境中运行,不会相互干扰。

  • 停用虚拟环境

  • deactivate

安装依赖

这里注意一定要保持网络的稳定,这肯定都懂的

pip install -r requirements.txt

依赖安装完成后,会提示安装成功。

好了,下来尝试运行小智代码。这里会碰到一些问题,还会缺失两样东西,我下来再讲。

py ./app.py

这是因为这两个东西都需要额外下载安装到操作系统中,而不是python,python只是在操作系统中调用。

其中一个是Opus 库,文件是opus.dll 这个是音频信号处理,理所当然要用到。

https://www.dllme.com/dll/files/opus/5d3631c47e09deac2b0a2d0563937369https://www.dllme.com/dll/files/opus/5d3631c47e09deac2b0a2d0563937369

Releases · ShiftMediaProject/opus · GitHubUnofficial Opus with added custom native Visual Studio project build tools. Opus: Opus is a totally open, royalty-free, highly versatile audio codec. - Releases · ShiftMediaProject/opushttps://github.com/ShiftMediaProject/opus/releases

下载 DLL 文件后,将其放置在 Python 虚拟环境的 Scripts 目录下,或者将其路径添加到系统的环境变量 PATH 中,以确保 Python 能够找到并加载该 DLL 文件。例如,可以将 DLL 文件放在 venv/Scripts 目录下。

然后这里在线再安装一个库

pip install opuslib_next


安装完成后用

python -c "import opuslib_next"

验证安装成功是否,如果验证成功,就不会报错,否组会报错


继续执行py app.py

跳过了前面的报错,一个新的ffmpeg的报错信息。

哈哈哈,这个就简单了。直接下载安装

Download FFmpeghttps://ffmpeg.org/download.html

记得安装gyan.dev版本。

安装到默认目录,然后把环境变量加进去就好了。

再次执行主程序,依赖就没有问题了,下来是配置项目

差不多了,然后按照教程配置好配置文件,就好了,测试没问题。


相关文章:

  • window nvidia-smi命令 Failed to initialize NVML: Unknown Error
  • Elabscience 精准识别 CD4+ T 细胞|大鼠源单克隆抗体 GK1.5,适配小鼠样本的流式优选方案
  • 强化学习算法实战:一个例子搞懂sarsa、dqn、ddqn、qac、a2c及其区别
  • 【生成式AI文本生成实战】DeepSeek系列应用深度解析
  • 读取toml, 合并,生成新文件
  • 最新开源 TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人 | 社区来稿
  • 【C++】STL简介
  • FC7300 ADC MCAL配置引导
  • 启用rvzi可视化自己的机器人发现joint state publisher gui没有滑块
  • 数据服务共享平台方案
  • 轨道炮--范围得遍历,map巧统计
  • 蓝牙协议架构与调试工具详解(含 BLE、HCI 命令、调试命令)
  • 25年2月通信基础知识补充2:延迟对齐调制、常见卫星移动速度
  • 方法区与元空间解析
  • Reth(冗余以太网接口) 和Bridge-Aggregation(链路聚合接口)区别
  • Spring模拟转账开发
  • Python爬虫(28)Python爬虫高阶:Selenium+Splash双引擎渲染实战与性能优化
  • LangGraph 官方文档翻译 - 快速入门及示例教程(聊天、工具、记忆、人工干预、自定义状态、时间回溯)
  • 【vue】适合大型项目的封装(接口,全局字典,表格表头)
  • Python训练营打卡DAY27
  • 芬兰西南部两架直升机相撞坠毁,第一批救援队已抵达现场
  • 杨建全已任天津市委副秘书长、市委市政府信访办主任
  • 淮安市车桥中学党总支书记王习元逝世,终年51岁
  • 外企聊营商|上海仲裁:化解跨国企业纠纷的“上海路径”
  • 下周或迎外贸“抢出口”高峰,跨境电商敏感货物如何便利化“登机”?
  • 降水较常年同期少五成,安徽四大水利工程调水超11亿方应对旱情