Hatena::Groupugomemo

bricklifeの日記

2009-03-07

ppmファイルの音声データについて

11:01 | ppmファイルの音声データについて - bricklifeの日記 を含むブックマーク はてなブックマーク - ppmファイルの音声データについて - bricklifeの日記

no title」のリリース後あまり手をつけていない解析遊びですが、二大問題の1つである音声データについてわかっていることをまとめておきます。

# ちなみにもう一つの問題はファイル末尾にあるチェックサムです。ここはいろいろと大変だと思います、いろいろと。

各データの格納位置

音声データの前にppmファイル全体の構造から。各データはppmファイル上に以下の順番で格納されているようです。

先頭アドレスパート概要
0000hヘッダーパート作者、メモID、更新日など
00A0hサムネイル画像パート64×48サイズの画像
06A0hページ画像パート256×192サイズの画像がページ分
06A0h+ページ画像パートサイズ音声パートSEシーケンス情報、再生・録音スピード、BGM、SE×3
ファイル末尾-0090hチェックサム

ヘッダーパート、サムネイル画像パートの詳細は「 うごくメモ帳のメモデータ *.ppm - mirai-iro's diary」にばっちりまとまっていますので、そちらをご覧ください。上記の表の「ページ画像パートサイズ」がそのページの「実データサイズ」にあたります。

音声パートの構造

音声パートには前述のようにSEのシーケンス情報、再生および録音スピード、BGMデータ、SEデータ×3(と各データのサイズ)が格納されているのですが、一番最初にあるSEシーケンスデータが可変長になっています。SEシーケンスデータは1ページごとに1バイト増え、4バイト単位で領域が確保されます。このサイズをSEQとすると、音声パートの各データは以下の位置に格納されているようです。

先頭アドレスデータサイズデータ名備考
+0000hSEQSEシーケンスデータ4バイト単位、SE未使用時は存在しない
+SEQ4BGMデータサイズ
+SEQ+0004h4SE1データサイズ
+SEQ+0008h4SE2データサイズ
+SEQ+000Ch4SE3データサイズ
+SEQ+0010h1再生スピード8から引いた数
+SEQ+0011h1録音スピード8から引いた数
+SEQ+0020h全音声データサイズの合計音声データBGM、SE1、SE2、SE3の順に格納

音声データの特徴

いまだデコードできずにいますが、各音声データは以下の特徴を持つようです。

  • BGM、SEとも同じフォーマット
  • 32kbpsの固定ビットレートな音声フォーマット
    • SEデータサイズが最大で2000hバイト(十進数で8192バイト)であり、録音秒数に対する増分が一定であることから推測
    • 解析ツールの再生秒数はデータサイズから逆算しています
  • BGMは録音時の音声が格納されている
    • データサイズや録音秒数制限から推測

解析手法案

  1. 440Hzのトーン波形などのわかりやすい音声を録音したメモをシアターにアップ
  2. うごメモはてなからそのメモのflvダウンロード
  3. flvから音声データを抜き出し
  4. ppmファイルからその音声を生成する方法を考える

たぶんMP3AACで使われている修正離散コサイン変換などの手法で信号変換しているんだと思っていますが、いろいろめんどくさくて手をつけていません。画像なら画面とデータの変化が目でわかりますが、音声(しかもマイクを通した録音音声)は変化がわかりづらいので大変です。データをざっとみている限りでは、元の波形が値に生きている感じがしますが…。

僕にはこれ以上できないと思うので、どなたかデジタル音声に詳しい人がいましたら、ぜひデコードにチャレンジしてみてください。

puratinasanpuratinasan2009/08/27 16:45↑の事についてです 詳しくわかりましたでは
1.「動画ダウンローder」と調べる、またはアドレスを
「http://der.douga-dl.com」と入力してください。
2.うごメモはてなで、音声を抽出したいメモのアドレスを
1のアドレスバーに入れます
3.「スタート」ボタンを押します
4.「flv」ボタンを押します
5.ダウンロードします (注)遅い時もあります
6.今度は、ブラウザのアドレスバーに
「http://mobilehackerz.jp/contents/3GPconv」と入力します
7.そして、「携帯動画変換君」をダウンロードします
(詳しい事は,そのホームページにて)
8.そして、ダウンロードした場所にある
<setup.exe>を実行します
9.いろいろ出ます
そのなかから「flv」とかいてあるのを
ダブルクリックします
(注)動作が不安定になるので不要なアプリケーションを
閉じておいた方がいいと思います
10.上の□の中に変換する「flv」ファイルを
ドラッグします
これで説明は終わりです
長々とすみませんでした
質問等はうごメモの検索で
「ster-kerbi」と検索して下さい

そこのどっかの作品のコメント欄にでも
どうぞ
ありがとう御座いました

atsu0504atsu05042012/01/26 14:52マイク入力だと劣化が激しいので、
DSマイク端子⇔イヤホンジャックを自作して直接PCのイヤホン端子から出力したらどうでしょうか?

atsu0504atsu05042012/01/26 16:49サンプルレートは不明ですか?

bricklifebricklife2012/01/26 17:17音声に関しては32kbpsの固定ビットレートということしかわかっていません。
データはPPMの上に書いてある場所に格納されているので、よかったら見てみて下さい。

LillahLillah2013/02/27 09:23Your answer lifts the intelligence of the dbaete.

erbmrdogeerbmrdoge2013/02/28 00:482jMQB7 <a href="http://bxmxntjcwbio.com/">bxmxntjcwbio</a>

tnymxazjxsmtnymxazjxsm2013/03/01 17:25iUbY3H , [url=http://qqqzvvdhtrwt.com/]qqqzvvdhtrwt[/url], [link=http://dxsjnevvjphx.com/]dxsjnevvjphx[/link], http://ymibhkhodkjy.com/

lpviftxxklpviftxxk2013/03/03 15:40ahxMeZ <a href="http://hxoceojsqcil.com/">hxoceojsqcil</a>

vzlpclbdeyyvzlpclbdeyy2013/03/05 00:49nFXagX , [url=http://nxnnbzhljwqu.com/]nxnnbzhljwqu[/url], [link=http://uufebbxsndpr.com/]uufebbxsndpr[/link], http://qhwpewwdueau.com/

トラックバック - http://ugomemo.g.hatena.ne.jp/bricklife/20090307