Skip to content

带API接口的音频播放器,可以自定义输出声卡,可通过web配置基本信息

License

Notifications You must be signed in to change notification settings

Ikaros-521/audio_player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

前言

用于做为独立的音频播放器使用。
支持HTTP API,可以配合其他程序协同工作。

使用&部署

开发系统:win11
python:3.10
安装依赖:pip install -r requirements.txt
其他依赖:ffmpeg
运行:python app.py
浏览器访问:http://127.0.0.1:5600/index.html

整合包

github:https://github.com/Ikaros-521/audio_player/releases
迅雷云盘: https://pan.xunlei.com/s/VNitDF0Y3l-qwTpE0A5Rh4DaA1
夸克网盘: https://pan.quark.cn/s/936dcae8aba0

API

添加音频数据到播放列表

使用 POST 请求到以下 URL:

http://127.0.0.1:5600/play

请求体(json字符串):

      
{
  "voice_path": "out\\2.mp3",
  "content": "音频文本内容",
  "random_speed": {
      "enable": false,
      "max": 1.3,
      "min": 0.8
  },
  "speed": 1,
  "insert_index": 0
}
      
  

参数说明:

  • voice_path: 音频文件路径
  • content: 音频文本内容
  • random_speed enable: 启用随机播放功能(非必填,不填默认读取本地配置)
  • random_speed max: 随机播放的最大速度(非必填,不填默认读取本地配置)
  • random_speed min: 随机播放的最小速度(非必填,不填默认读取本地配置)
  • speed: 播放速度(非必填,不填默认读取本地配置)
  • insert_index: 数据插入列表的索引值(非必填,不填默认末尾插入)

返回数据:

      
// 成功返回
{"code": 200, "message": "添加音频信息成功!"}
    
  
    
// 失败返回
{"code": -1, "message": "添加音频信息失败!{e}"}
      
  

暂停播放

使用 GET 请求到以下 URL:

http://127.0.0.1:5600/pause_stream

恢复播放

使用 GET 请求到以下 URL:

http://127.0.0.1:5600/resume_stream

跳过当前播放

使用 GET 请求到以下 URL:

http://127.0.0.1:5600/skip_current_stream

清空播放列表

使用 GET 请求到以下 URL:

http://127.0.0.1:5600/clear

获取播放列表

使用 GET 请求到以下 URL:

http://127.0.0.1:5600/get_list

配置

      
{
  "device_index": 5,
  "captions_printer": {
    "api_ip_port": "http://127.0.0.1:5500",
    "enable": false
  },
  "random_speed": {
    "enable": false,
    "max": 1.3,
    "min": 0.8
  },
  "speed": 1,
  "random_audio_interval": {
    "enable": false,
    "max": 3,
    "min": 0.1
  },
  "audio_interval": 0.5,
  "priority_mapping": {
    "copywriting": 1, 
    "abnormal_alarm": 1, 
    "trends_copywriting": 10, 
    "idle_time_task": 10,
    "image_recognition_schedule": 10,
    "local_qa_audio": 20,
    "comment": 20,
    "song": 20,
    "read_comment": 20,
    "gift": 20,
    "follow": 20,
    "reread": 30,
    "direct_reply": 30
  },
  "ai_vtuber": {
    "api_ip": "127.0.0.1",
    "api_port": 8082,
    "callback_enable": false
  }
}
      
  

配置说明:

  • device_index: 声卡设备索引值
  • random_speed enable: 启用随机播放功能
  • random_speed max: 随机播放的最大速度
  • random_speed min: 随机播放的最小速度
  • speed: 播放速度
  • captions_printer enable: 启用对接web字幕打印机
  • captions_printer api_ip_port: web字幕打印机服务的API地址
  • random_audio_interval enable: 启用随机音频间隔功能
  • random_audio_interval max: 随机音频播放的最大间隔
  • random_audio_interval min: 随机音频播放的最小间隔
  • audio_interval: 音频播放间隔
  • priority_mapping: 音频数据优先级(type键值,值越大优先级越高)
  • ai_vtuber enable: 启用ai_vtuber回传功能
  • ai_vtuber api_ip: ai_vtuber内部http服务ip
  • ai_vtuber api_port: ai_vtuber内部http服务端口

FAQ

1.5600端口冲突
可以修改app.pyjs/index.js中,搜索5600,全部改成你的新端口即可。

更新日志

  • 2024-04-29

    • 新增 AI Vtuber回传功能,配合闲时任务的待播放音频数 功能
  • 2024-03-20

    • 配置文件新增优先级配置项,针对各个音频数据类型,可以自定义优先级进行排队,用于实现弹幕优先于文案的这种效果。
  • 2024-02-18

    • 更换协议为GPL3.0
  • 2024-01-21

    • 修复传参不携带type键时的插入异常bug
  • 2024-01-16

    • 支持传入随机速度等参数来控制输出音频效果
    • 新增实时刷新的当前播放列表显示框
    • 添加音频新增 插入索引字段,可以自定义插入的位置,用于让音频可以插队(默认非文案的音频自动插到文案前面)
    • 新增配置项 随机音频间隔和音频间隔,用于控制音频播放的间隔,让机器嘴歇会
  • 2024-01-15

    • 修改列表为列表的形式,提高了数据可操作性
    • 增加了线程锁保护
    • 修改暂停、恢复播放功能实现,实现真正意义上的暂停和暂停点恢复播放。
  • 2023-11-02

    • 给播放线程追加异常捕获,起码不会直接挂了
    • 新增web字幕打印机的对接
    • 美化UI
  • 2023-11-01

    • 新增跳过当前播放、清空播放列表和获取播放列表功能
    • 优化文档
  • 2023-10-31

    • 优化UI排版
    • 新增暂停/恢复播放功能
    • 补充API文档
  • 2023-10-29

    • 基本功能通过,可以本地调用播放音频
    • 删除频率配置,新增播放速度、随机播放开关和上下限配置
  • 2023-10-28

    • 开发中

About

带API接口的音频播放器,可以自定义输出声卡,可通过web配置基本信息

Resources

License

Stars

Watchers

Forks

Packages

No packages published