Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubyで音声「データ」を作る

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 Rubyで音声「データ」を作る

Avatar for Shogo Kawahara

Shogo Kawahara

April 30, 2025
Tweet

More Decks by Shogo Kawahara

Other Decks in Programming

Transcript

  1. こんな内容が面白かったと思った • Ruby LSP が Conference 中リリースされてすげえと思った ◦ YARD で

    Docs 書いてたけど、Ruby LSP に移行して結構時が立ったので、そろそろ inline rbs に よる型情報の補完とかをやり始めようと思った (何気に対応している ) ◦ Ruby LSP を介して、MCP に繋げていくところとか夢があるとは思った • ZJIT (ジージット) は夢があるよね • もちろん最後のトークはプログラマーとして考えさせられた ◦ AIが型を捕捉するようになる理論 ◦ たのしいプログラミングとは何か
  2. こんな内容が面白かったと思った • Ruby LSP が Conference 中リリースされてすげえと思った ◦ YARD で

    Docs 書いてたけど、Ruby LSP に移行して結構時が立ったので、そろそろ inline rbs に よる型情報の補完とかをやり始めようと思った (何気に対応している ) ◦ Ruby LSP を介して、MCP に繋げていくところとか夢があるとは思った • ZJIT (ジージット) は夢があるよね • もちろん最後のトークはプログラマーとして考えさせられた ◦ AIが型を捕捉するようになる理論 ◦ たのしいプログラミングとは何か • 音声
  3. データから音声に変換するやり方はいろいろあるらしい • 文字列「こんにちは」 -> バイナリ「111000…」 ◦ これは結局のところ、文字符号方式である ◦ UTF-8 にすれば、日本語も行けそうではある

    • バイナリ「111000…」 -> 音声「アナログの波」 ◦ いろいろ探るとこれも単純に 1つ。というわけではなくいろいろ方式がある ◦ 「変調方式」というらしい ◦ https://www.ritsumei.ac.jp/se/re/izumilab/lecture/06comm/index.htm ◦ FSK (Frequency Shift Keying) ◦ ASK (Amplitude Shift Keying) ◦ PSK (Phase Shift Keying) ▪ Pre-Shared Key ではない ◦ QAM (Quadrature Amplitude Modulation)
  4. データから音声に変換するやり方はいろいろあるらしい • 文字列「こんにちは」 -> バイナリ「111000…」 ◦ これは結局のところ、文字符号方式である ◦ UTF-8 にすれば、日本語も行けそうではある

    • バイナリ「111000…」 -> 音声「アナログの波」 ◦ いろいろ探るとこれも単純に 1つ。というわけではなくいろいろ方式がある ◦ 「変調方式」というらしい ◦ https://www.ritsumei.ac.jp/se/re/izumilab/lecture/06comm/index.htm ◦ FSK (Frequency Shift Keying) => データにあわせ周波数を変える , 初期の「モデム」もこれ ◦ ASK (Amplitude Shift Keying) => 振幅の有無で制御する , ノイズに弱い ◦ PSK (Phase Shift Keying) => 位相をかえる (波をずらす) ▪ Pre-Shared Key ではない ◦ QAM (Quadrature Amplitude Modulation) => 位相もかえるし、振幅もかえる
  5. 楽しいかも、でやってみたけどこれは実用的なのでは? • 特に電子工作の分野では(本当に)実用性がありそう ◦ PCからデバイスに対して phone plug を通じてデータを送信する ◦ デバイスにマイクがあれば、スピーカを通じて一斉に何らかの動きをさせることはできる

    ▪ ただ、ノイズ除去とか、チェックパリティとか、ネットワークでいうところの物理層とかデータリン ク層がやるような実装はある程度考えなきゃいけない ◦ つまり、Bluetooth や WiFi のモジュールなしで通信ができる ! ◦ (配信機器のLiveShellはPCと機器を音声プラグで繋げて設定情報流せました ) • ステガノグラフィー (情報を他の情報に隠蔽する) ◦ 人間が聞こえない高周波にデータを載せて、可聴範囲には通常の音楽データを入れるといったテク ニックがありそう ◦ 実装的にはローパスフィルターでデータ部分だけ取り出すイメージ ◦ ただし、カセットテープやデッキがそこまで高周波に対応していない可能性もある • TRICK のお供にもどうぞ ◦ これを使えば音がコードとして機能できるようになる ◦ 聞くとテクノな音楽だが、デコードすると実行可能 ! みたいな技もできる。だれかやって。