🎹
Pyxel を利用して MML を mp3 にして返すコンテナの実装をしてみた
2025/11/06 Pyxel 2.5.9 時点の内容です
承前
少し前にこんな記事を書きました
しかし slackbot 自体に変換部分を実装してしまったためいろいろな問題が発生
(※例外をキャッチできない)
問題解決に向けて
変換部分を docker コンテナに分離して
-
bottleで API もどきを作成 - slackbot から変換をリクエスト
のように変更してみました
その結果……
MML は某 S 氏に書いてもらいました!!
$ jo mml="MML#0 T90 L4 o4 v100 @2 >g<a+>f2ffd+2
MML#1 T90 L4 o4 v100 @1 rg>d4.<f8a+a+g2
MML#2 T90 L4 o4 v100 @1 >r8d+d+a+4.&a+8g<a+2&a+8>" | \
curl -s --json @- localhost:15678/mml | \
jq -r .data | \
base64 -d | \
ffprobe -hide_banner -
Input #0, mp3, from 'fd:':
Metadata:
encoder : Lavf61.7.100
Duration: 00:00:05.41, start: 0.050113, bitrate: N/A
Stream #0:0: Audio: mp3, 22050 Hz, mono, fltp, 32 kb/s
-
joで json を作成 -
curlでその json を使ってリクエスト- base64 エンコードされた mp3が返ってくる
-
jqでレスポンスから生データを取り出し -
base64でデコード -
ffprobeで素性を確認
エラーが発生しても例外処理で握りつぶせるようになったため、(今のところ)問題がなくなりました
成果物
まだまだ実験段階です
最後に
MML やっぱり楽しい!!
Enjoy!!
Discussion