MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. whiterasbk
    • 资料
    • 关注 0
    • 粉丝 4
    • 主题 3
    • 帖子 72
    • 最佳 11
    • 有争议的 0
    • 群组 1

    whiterasbk

    @whiterasbk

    人间有神兽,来自九重天

    16
    声望
    83
    资料浏览
    72
    帖子
    4
    粉丝
    0
    关注
    注册时间 最后登录

    whiterasbk 取消关注 关注
    CaptchaFree

    whiterasbk 发布的最佳帖子

    • 知识计算搜索引擎 Wolfram|Alpha 接口

      wolframalpha4mirai

      GitHub
      GitHub all releases
      GitHub release (latest by date)
      GitHub top language

      WolframAlpha 是开发计算数学应用软件的沃尔夫勒姆研究公司开发出的新一代的搜索引擎,能根据问题直接给出答案的网站,于2009年5月15日晚7点(美国中部当地时间,北京时间5月16日上午8点)提前上线,用户在搜索框键入需要查询的问题后,该搜索引擎将直接向用户返回答案,而不是返回一大堆网页链接。
      来自百度百科

      这是一个将 wolframalpha api 接入 mirai 的插件
      添加后, 你可以在 qq 里直接向 wolframalpha 发出查询请求

      项目地址
      插件地址

      使用方法

      1. 将 release 下的 wolframalpha-1.4.jar 文件下载并放入 mirai 运行目录下的 plugins\ 文件夹
      2. 前往 此处 按照提示获取一个 appid
      3. 启动一次 mirai 并关闭, 或者你也可以在 config\ 下新建 bot.query.wolframalpha.whiter\config.yml 文件
      4. 按照如下方式编辑 config.yml
      # wolfram|alpha 的 appid, 前往 https://developer.wolframalpha.com/portal/myapps/index.html 获得
      appid: 'your appid'
      # 触发前缀, 为空时是两个单引号
      prefix: ''
      # 当发生错误时的提示信息
      error_msg: ''
      # 图片与文本的分割线, 为空时是 ---------, 填 empty 时为空白字符
      separation_line: ''
      # 是否构建转发消息
      isForward: true
      
      1. 启动 mirai

      效果


      注意事项

      • 由于 wolframalpha 不支持非英文(但好像支持日文), 所以当输入消息中含有非英文字符时可能会导致未知错误
      • 若出现类似如下报错
      E/bot.query.wolframalpha.whiter: Exception in coroutine Plugin whiter.bot.wolframalpha of whiter.bot.wolframalpha
          java.lang.NoClassDefFoundError: org/json/JSONObject
          at bot.query.wolframalpha.whiter.Wolframalpha.query(Wolframalpha.kt:57)
      

      为缺少 org.json 包导致的找不到类的错误

      可以在 plugin-shared-libraries/libraries.txt 追加以下内容解决

      org.json:json:20220320
      
      发布在 插件发布
      whiterasbk
      whiterasbk
    • 在线作曲(唱歌)插件

      MidiProduce




      GitHub

      在线作曲插件

      项目地址
      插件下载
      release地址

      安装方法

      下载见 release

      1. 打开 plugins 文件夹
      2. 丢进去
      3. 关闭文件夹

      效果

      你看到了一张图
      BV1gS4y1W7cj

      狂乱木曜日 · 爱你

      >g;bE;sing;2x>f-[如]~[果]~[你]~[突然] f[打了]~[个] | d.[喷]f-[嚏] o | 
      c-[那]~[一]~[定]~[就是] g[我]e[在] | f.[想]c-[你]&c+ |
       f-[如]~[果]~[星]~[期四] a[被手]f[机] |
       f.[吵]d.[醒]d[啊] |
       c-[那]~[是]~[想]~[吃] g[肯]e[德] |
       f+[基] a↓[常]b↓[常] |
       c+[想] f[起] f-[肯] e.[德] d[基]d[的] d-[黄] c+[金] g[硬]↓b[脆]↓ | a[皮].↓ a[鸡]↓-&a |
       f↓[明]f↓[明] d[很] e[想]-d.[吃] c+[鸡] a↓[却] | b↓[又]c [忍]d[不] e[住]-d.[怀] c+[疑] o- |
       c+[在] f[你]f-[的]e.[心] d+[里] d[我] |
       c[是]g[否] g[就] e-[是]f.[唯] a+[一] b+[爱] a[就]g[是]f[请] | f[我]d[吃] e[肯]-f.[德] g++[基]
      

      使用方法

      普通指令(轨道语法): >params>sequence

      在 mider code 中, >params>sequence 可以称作一条轨道

      params

      参数之间用;号分隔
      支持的参数 params 详细说明如下:

      1. g|f|数字+b 设置 bpm 同时确定音域, f 表示低音 (pitch=3&bpm=80), g 表示高音 (pitch=4&bpm=80) 必选参数不可省略. 示例:
      >g>
      >f>
      >120b>
      
      1. [数字+x] 设置倍速, 支持整数和小数
      2. [/+数字] 以设定值为音符默认时值
      3. [数字+%] 设置轨道音量
      4. [数字+dB] 以设定值为音符默认音量, 范围 0~127
      5. [调号] 默认当前音符序列为 C大调 并将其转调到指定调号. 调号由两部分组成: 一部分是调的名字, 具体参考乐理, 需要大写, 另一部分是调的模式, major 和 minor 分别可以简写成 maj 和 min. 若为 minor 则为同名小调. 在一般情况下 major 可以省略. 示例:
      >g;Cmin>
      >g;#Fmajor>
      >g;bD>
      
      1. [数字] 设置默认音高
      2. [数字/数字] 设置拍号
      3. [i=instrument] 设置乐器, instrument 见 MidiInstrument.kt
      4. [midi|img|pdf|mscz] 上传乐谱文件, 如是 img 则会上传图片 注: 涉及乐谱生成需要先安装 Muse Score 见 转换乐谱
      5. [sing:area:singerId] 调用 sinsy 接口生成音频. 当 area 和 singerId 都提供时, singerId的格式为 [f|m]+数字 表示选取的是该地区的 第 singerId 位 女性|男性 歌手. 当仅提供 singerId 时, 其格式为 数字, 表示选取 表示符 为 singerId 的歌手. 当两者都不提供时, 相当于选取中国大陆地区的第一位女歌手 香玲

      sequence

      sequence 可以是音名序列或是唱名序列, 音名序列的判断标准是序列里是否出现了 c~a 或 C~B 中任何一个字符

      音符

      音名序列下, 使用 cdefgabCDEFGAB 表示, 其中小写写表示 pitch=4的音符, 大写表示比小写高一个八度的音符

      唱名序列下, 使用 1234567 表示

      创建的音符默认时值是四分音符, 要修改其时值, 可以使用 + 来拉长音符时值, - 以缩短时值
      例如以下示例就创建了一个八分音符, 十六分音符和一个二分音符

      >g>c- #八分音符
      >g>c-- #十六分音符
      >g>c+ #二分音符
      

      要为音符添加附点, 请在该音符后加上 ., 而特殊时值例如三连音可以使用 /

      >g>a. c/3 c/3 c/3
      

      # 和 $ 分别可以让音符升高或降低半音, @ 表示给音符添加一个还原符号

      >g>$e @f #c
      

      & 可以将多个音符的时值连在一起组成一个音符

      >g>a&a- # 等价于以下
      >g>a.
      

      而在唱名序列中, $ 可以用 b 代替

      >g>12b3
      

      在音符后加上数字可以改变其八度

      >g>c3 e5
      

      而更推荐的做法是使用 ↑ 和 ↓ 在 pitch=4 的基础上进行八度的增减. 而在唱名序列中, ↑ 和 ↓ 可以用 i 和 ! 代替

      >g>c↓ e↑ g↑↑
      >g>1↓ 3↑ 5↑↑
      >g>1! 3i 5ii
      

      % 可以设置单个音符的力度, 范围是 0~127, 未设置的情况下默认力度为 100

      >g>c%60
      

      使用 o 或 O 创建四分休止符或二分休止符, 休止符同样可以使用 +, - . 甚至 / 来修改时值. 在 唱名序列中 0 相当于 四分休止符

      >g>o-O+O.
      

      [ 配合 ] 可以给单个音符加上歌词

      >g>1[打]2[倒]3[列]1[强]
      

      要重复单个音符多次可以使用 *

      >g>c*100
      

      ~ 可以克隆前一个音符, 适合偷懒

      >g>c~~~~~~
      

      ^ 和 v 可以将上一个音符克隆并升高或降低一个音, 升高或降低的音满足在 C大调 下的音程关系. 类似的用法还有 m-w, n-u, q-p, i-!, s-z 升高或降低度数在 ^-v 的基础上逐步递增或递减

      >g>c^^^ # 等价于 cdef
      
      和弦

      使用 : 可以将多个音符组成一个和弦, 第一个音的时值将会是和弦的时值

      >g>c:e:g
      

      ^ 和 v 等 也是可用的

      >g>c:m:m # 等价于 c:e:g
      

      但是 使用 ^ 和 v 等 时要注意, # 和 $(b) 将不起作用

      >g>c:m:#m  #号 将不起作用
      

      可以使用 " 和 ' 代替 # 和 $(b) 问就是起名废

      >g>c:m:m'
      

      ↟ 和 ↡ 可以创建向上或向下琶音 符号越来越奇怪了啊喂

      >g>c:e:g↟
      
      倚音

      ; 连接两个音符组成一个短前倚音, 倚音时值为第二个音符的时值

      >g>c;e
      

      若要构建后倚音只需要在第二个音符后加上 t

      >g>c;et
      
      滑音/刮奏(Glissando)

      使用 =, 可以连接多个音符, 时值为所有组成音符的时值. 默认只刮白键

      >g>c=b
      

      若要白键和黑键一起刮, 在后面加上 t

      >g>c=bt
      
      宏

      mider code 中宏的本质是对某段序列或其中的字母或数字的重复或简单修改替换.

      碍于技术原因, 目前宏均不可嵌套使用

      宏的定义始于 ( 终于 ), () 内便是宏的作用域, 以下是支持的宏:

      定义一个音符序列: (def symbol=note sequence)

      >g>aaa(def na=cde)aaa
      >g>aaaaaa # 实际输入的序列
      

      定义一个音符序列, 并在此处展开: (def symbol:note sequence)

      >g>aaa(def na=cde)aaa
      >g>aaacdeaaa # 实际输入的序列
      

      展开 symbol 对应音符序列: (=symbol)

      >g>(def a=cde)a(=a)
      >g>acde # 实际输入的序列
      

      读取 path 代表的资源并展开, 如果是文件默认目录是插件的数据文件夹: (include path)

      >g>(include ./seq.midercode)
      

      将音符序列重复 times 次: (repeat time: note sequence)

      >g>c(repeat 3: oa)
      >g>coaoaoa # 实际输入的序列
      

      如果定义了 symbol 则展开: (ifdef symbol: note sequence)

      如果未定义 symbol 则展开: (if!def symbol: note sequence)

      >g>(def s=abc) (ifdef s: cfg) (if!def s: bbc) 
      >g>cfg #实际输入的序列
      

      定义宏(类似函数, 但实际表现得更蠢一些): (macro name param1[,params]: note sequence @[param1])

      展开宏: (!name arg1[,arg2])

      >g>(m p1: a@[p1]dc@[p1]) (!m b)
      >g>abdcb #实际输入的序列
      

      调整 note sequence 的力度, 仅适用于长音名序列: (velocity linear from~to: note sequence)

      >g>(velocity linear 50~80: cde)
      >g>c%50 d%60 e%70
      

      环境指令: >!config>

      供 MidiProduce 内部调用
      获取帮助

      >!help>
      

      设置 formatMode

      >!formatMode=mode>
      

      清理缓存

      >!clear-cache>
      

      todo list

      • 解析音符为语音
      • 渲染乐谱
      • 识别乐谱并转化为音符

      示例

      1. 小星星
      >g>1155665  4433221  5544332  5544332
      等同于
      >g>ccggaag+ffeeddc+ggffeed+ggffeed
      等同于
      >g>c~g~^~v+f~v~v~v+(repeat 2:g~v~v~v+) (酌情使用
      
      2. KFC 可达鸭
      >g;bE>g^m+C-wmD+D^m+G-wmE+D^w+C-wmD+DvagaC
      
      3. 碎月 
      >85b>F+^$BC6GFG C$E F D$ED$b C+ g$b C$E F$E F+ F$E F$B G++ G$B C6C6$B C6 G+ G$E FGF$E C+ C$b C+C$EF$EFG $E
      等同于
      >85b;Cmin>F+^BC6GFG CE F DEDb C+ gb CE FE F+ FE FB G++ GB C6C6B C6 G+ GE FGFE C+ Cb C+CEFEFG E
      
      4. 生日快乐
      >88b>d.d- e+v g+ #f++ d.d- e+v a+ v+ d.d- D+b+g+ #f+ e+ C.C- b+ g+^ v+
      
      5. 茉莉花
      >110b>e+em^m~wv+g^v++e+em^m~wv+g^v++g+~~em^+av~++e+d^m+evv+c^v++evvmv+.eg+amg++d+egd^cwv++ ^-c+d+.ec^vwv++
      
      6. bad apple!
      >100b>e#fgab+ ED b+ e+ b a-- B-- A- g#f e#fga b+ ag #fe#fg #f--G--#F-e #d#f e#fgab+ ED b+e+ ba--B--A- g#f e#fgab+ ag
      
      7. Jingle Bells
      >100b>E~~+E~~+EmC^^++F~~+Fv~+Ev~^ D+G+E~~+E~~+EmC^^++F~~+Fv~~m~vDv++
      
      8. 两只老虎 卡农
      >g;3>(def tiger:1231 1231 3450 3450 5-6-5-4-31 5-6-5-4-31 15!10 15!10)
      >g;4>00(=tiger)
      >g;5>0000(=tiger)
      >g;6>000000(=tiger)
      >g;7>00000000(=tiger)
      

      更多示例见 awesome-melody

      若想分享自己编写的旋律欢迎提 pr 到这个文件夹, 建议使用英文名称, 后续可能会考虑打包进发布版本供 include 使用

      转换乐谱

      此功能需要首先安装 Muse Score

      下载 Muse Score : 可以根据官方 下载页面 也可以参考 snapcraft

      附官方 linux 安装指北

      安装完成后将 Muse Score 的运行目录 (包括bin/) 添加到环境变量

      或者也可以修改配置中mscoreConvertMidi2MSCZCommand 等的值为安装目录

      如您的安装的可执行程序启动命令(可执行程序的名字)不是 MuseScore3, 您需要手动将 config.yml 中的 MuseScore3 替换成正确的 MuseScore 启动命令

      最后在轨道中添加 ;pdf 或 ;img 即可得到渲染好的乐谱

      44f9b717-4c28-453e-b99c-2fc8567828c8-image.png

      若想修改 Muse Score 命令格式和参数, 请参考 官方使用手册

      注意

      • 唱名序列中 \s{2} 和 \s\|\s 会被自动替换成 0 也就是休止符, 可以在配置中修改这部分行为
      • 若为使用 internal 模式则生成的语音音色会随着系统底层实现的不同而不同
      • 如果最后输出的格式是 silk 那么好友和群聊都有效, 如果是 mp3 则仅群聊有效, 好友会出现感叹号
      • mp3 格式在 pc 端听不了, mac 据说可以 , 哪位富婆可以给咱买一台测试一下(
      • 命令还未加入权限, 可以在 #3 进行讨论
      • 好友环境下生成 silk 格式会比 mp3 音质低得多 , 听个响属于是

      构建

      由于使用了 RainChan 的 silk4j 所以 clone 到本地后要修改 build.gradle.kts 中的 username 和 password 为自己的才能成功构建

      服务器环境下生成语音

      在服务器环境插件可能会由于缺少硬件或驱动支持无法生成语音, 可以尝试安装 timidity 和 ffmpeg 解决

      具体安装可以参考 这篇

      这里提供一个 sf2 的 音色库

      安装完成以后确保 timidity 和 ffmpeg 位于环境变量中, 或者也可以修改 ffmpegConvertCommand 和 timidityConvertCommand

      最后修改 formatMode 即可使用 timidity 和 ffmpeg 生成语音

      修改音色

      目前 internal 无法修改音色

      可以通过安装 timidity 或 Muse Score 来实现

      release 中的多个发行包

      带 bundled-silkf4 的是打包了 silk4j 的包

      若确定不需要使用转换 silk 的功能可以直接下载不带后缀版本的包

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 知识计算搜索引擎 Wolfram|Alpha 接口

      @ArbETaperingsky
      格式是XXXXXX-XXXXXXXXXX
      在这里申请
      png

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: MP3文件转成语音文件有什么好方法?

      如果不在乎pc端的兼容性和语音大小,可以直接发mp3; 这种语音在手机上是可以播放的, 不过时长会显示错误; 要全平台都可用, 还是考虑转silk吧

      发布在 开发交流
      whiterasbk
      whiterasbk
    • RE: 知识计算搜索引擎 Wolfram|Alpha 接口

      @wangzihan-2006
      这是由于缺少了org.json这个库导致的错误
      下载这个wa4mwoj文件替换原来的插件即可

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 知识计算搜索引擎 Wolfram|Alpha 接口

      @zyckk4 页面能显示出来就应该不是科学上网的问题,切换到My Apps下查看有没有get an appid按钮

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 知识计算搜索引擎 Wolfram|Alpha 接口

      @zyckk4 请问查询内容是什么呢

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 知识计算搜索引擎 Wolfram|Alpha 接口

      @ArbETaperingsky 我用你的appid通过本地测试了,你检查一下config.yml文件的内容, 是不是触发词配置错误了,如果可以的话将包含whiter.bot.wolframalpha字样的log日志附上

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @Cooper 有考虑

      发布在 插件发布
      whiterasbk
      whiterasbk
    • 基于 graphql 的 宝可梦查询插件

      QueryPokemon

      宝可梦查询插件




      GitHub

      项目地址
      插件下载
      release地址

      效果

      安装方法

      1. 将插件放入 plugins 文件夹
      2. 运行一次或在 data 文件夹创建 bot.good.QueryPokemon 文件夹
      3. 将 release 中的 query-script.zip 解压并放入 bot.good.QueryPokemon 中
      4. 在管理员前提下, 发送 #enable 和 #enable all this
      5. 若 jdk 版本大于 11 则需在 plugin-shared-libraries/libraries.txt 追加以下内容
      org.openjdk.nashorn:nashorn-core:15.4
      
      1. query 命令需要使用 chatcommand 插件作为前置

      使用方法

      支持命令

      • #图鉴 名称/id [第几个形态]
      • #道具 名称/id
      • #招式 名称/id
      • #特性 名称/id

      自定义

      data/bot.good.QueryPokemon/ 目录下的 *.query 文件是模板文件, 可修改格式

      发布在 插件发布
      whiterasbk
      whiterasbk

    whiterasbk 发布的最新帖子

    • RE: 基于 graphql 的 宝可梦查询插件

      @HexDD @Teqine 只能在源码里加

      alpha0.0.2

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 基于 graphql 的 宝可梦查询插件

      @Reaning
      插件没有定义 ktor 依赖
      https://github.com/mamoe/mirai/issues/2297

      Him188 created this issue in mamoe/mirai

      closed mirai-console 应允许插件使用 ktor,以向下兼容 #2297

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @klxy 在群内输入 >!help>
      可以输出此项目的readme.md 链接,
      更多形式的帮助/提示 功能计划中

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @白嫖怪林先生 建议使用多轨

      >g>3+. 3-2-
      >f>3-6-7-1-↑3↑+
      
      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @白嫖怪林先生

      >g>{ona}b:c:d{offa+.}
      
      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @白嫖怪林先生

      >g>{ona}bcd{offa}
      
      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @Moyuyanli 计算机

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 在线作曲(唱歌)插件

      @白嫖怪林先生 设置bpm为100同时设置音域为5

      >100b;5> notes
      
      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 基于 graphql 的 宝可梦查询插件

      @Teqine 可能是jsdelivr 的 cdn 不能使用, 试试通过本地图片的方式获取宝可梦图片

      发布在 插件发布
      whiterasbk
      whiterasbk
    • RE: 基于 graphql 的 宝可梦查询插件

      @第六神觉 是的

      发布在 插件发布
      whiterasbk
      whiterasbk