Rubyの文字列をMemoryView対応させるライブラリー
#やりたい #Ruby
$stdinから読み取った文字列をMemoryViewとして読めるようにできるといいのではないか。
モチベーションとしては、whispercpp gemでそれをやりたい:
https://github.com/ggml-org/whisper.cpp/issues/3521#issuecomment-3524985723
ここでは一度読み取った文字列をString#unpackを使って入力用の(Rubyの)配列にしているけど、whispercppはMemoryViewからオーディオデータを読み取ることもできるので、StringをMemoryView対応させられれば、ゼロコピーで処理できる。
勿論GStreamerのMemoryView対応を進められればそれがいいんだけど、対応フォーマットが多過ぎて調べたり検証するのに疲れ中……。
……と思ったけど、MemoryViewにするということはCから触るわけで、Cから触るならStringから文字列データを取り出せるから、それでいいのか。whispercppの方をASCII-8BITをオーディオデータと見做すように拡張すればいいわけだ。