調べて分かる道具箱

音を逆から再生する

iPhone で音が出ないときは、本体の横にあるマナーモードのスイッチを確かめてください。iOS 17 より前では、マナーモードだとこの音は鳴りません。

音をえらぶえらんだ音は、この画面の中だけで逆になります。どこにも送りません

まだえらんでいません

または、自分の声を録る録った声も送りません。120秒たつと自動で止まります

えらんだ音も、録った声も、この画面の外へ出ていきません。 逆にする計算も、WAV を組み立てるのも、全部あなたのブラウザの中でやっています。 インターネットにつながっていなくても、いちど開いたあとなら動きます。 受け取れる大きさは約20.0MBまで、長さは120秒までです。

よくある質問

逆にした音は、どこかに送られますか?

送りません。このページには送る先そのものがありません。逆にするのは数字の列をうしろから読み直すだけ、保存するファイルを組み立てるのも足し算だけなので、外の力を借りる必要がないからです。保存ボタンから出てくるファイルも、あなたのブラウザの中で作られたものです。

MP3を逆にできますか?

このページで選べば逆にできますが、そのときも中では一度WAVの形に戻しています。MP3は小さくするために数字の列を別の形に置きかえて記録しているので、中身をうしろから読んでも音になりません。だから書き出されるファイルはWAVになります。

なぜステレオだと左右が入れかわるのですか?

ファイルの中では左と右が1つずつ交互に並んでいるからです。数字を1つずつ逆にすると、左のあった場所に右の数字が来ます。防ぐには、左と右の組をこわさずに組ごと逆にします。このページには、わざと間違えたやり方で作って聞きくらべるボタンを置いてあります。

2回ひっくり返すと、完全に元どおりになりますか?

数字の並びは必ず元どおりになります。うしろから読み直すことを2回すれば、元の順に戻るからです。ただしファイルが1バイトも同じになるとはかぎりません。書き出すたびに16ビットの整数に直しているので、ごくわずかな丸めが入ります。並びが戻ることと、ファイルが同じになることは別のことです。

逆に再生すると、かくれたメッセージが聞こえるというのは本当ですか?

このページは、聞こえるとも聞こえないとも決めつけません。確かなのは、逆にした声は言葉のような響きを残すので、たまたま言葉に似て聞こえることがある、ということです。そして先に「こう言っています」と教えられてから聞くと、そう聞こえやすくなります。友だちに何も言わずに聞かせて、先に何と聞こえたかを言ってもらうと確かめられます。

どうして大きいファイルは断られるのですか?

逆再生は、最後の数字が決まらないと最初の1つが決まらないからです。前から順に流す再生とちがって、ファイル全体をいちど覚えておく必要があります。開いた音は数字1つが4バイトになるので、長い曲だと画面が固まってしまいます。このページでは約20.0MBまで、長さは120秒までにしています。

音のファイルをえらぶか、自分の声を録ると、逆から再生した音ができます。 保存もできます。音はどこにも送りません。

WAVというファイルは、44バイトの説明書きと、数字の列だけでできています

逆再生は、むずかしそうに聞こえます。 ところが実際にやっていることは、数字の列をうしろから読み直すだけです。 そんな乱暴なことができてしまうのは、WAVという形の音のファイルが、ほとんど生の数字の列だからです。

WAVを開くと、先頭に44バイトの説明書きがあります。 「これは音です」「1秒に何回はかったか」「左と右があるか」といった、読むために必要なことだけが書いてあります。 そして45バイトめから先は、音そのものの数字が、最後までただ並んでいるだけです。

下の表は、1秒・44,100Hz・ステレオ・16ビットのWAVの、ほんとうの先頭44バイトです。 手で書いた例ではなく、このページが書き出しに使うのと同じ計算で 組み立てたものを、そのまま16進で並べています。

WAVファイルの先頭44バイトの中身
何バイトめバイト(16進)読むと何を表しているか
04バイト52 49 46 46RIFF「RIFF」の4文字。これで始まるファイルは、札と中身の組を並べた入れ物です
44バイト34 b1 02 00176436ファイル全体の大きさから8を引いた数。RIFFの4文字と、この数自身の4バイトを数えません
84バイト57 41 56 45WAVE「WAVE」の4文字。入れ物の中身が音だということ
124バイト66 6d 74 20fmt␣「fmt 」の4文字。ここから音の形の説明です。最後の1文字は空白(アキ)です
164バイト10 00 00 0016音の形の説明が何バイトあるか。数字がそのまま入っている形(PCM)では16です
202バイト01 001形式の番号。1は「数字がそのまま並んでいる」という意味です
222バイト02 002チャンネルの数。1ならモノラル、2ならステレオ(左と右)
244バイト44 ac 00 00441001秒間に数字がいくつ並んでいるか(サンプリング周波数)
284バイト10 b1 02 001764001秒ぶんが何バイトか。周波数 × チャンネル数 × 1つのバイト数
322バイト04 004全チャンネルぶんの数字1組が何バイトか。ここをまたいで切ってはいけません
342バイト10 0016数字1つが何ビットか。16なら、-32768から32767までの整数です
364バイト64 61 74 61data「data」の4文字。ここから先が、音そのものの数字の列です
404バイト10 b1 02 00176400数字の列が何バイトあるか。この次の1バイトめから、ずっと数字が続きます

この44バイトのうしろに、数字が88,200個並びます。1秒ぶんでこれです。 逆再生をする人がやるのは、この88,200個を、うしろから並べ直すことだけです。 説明書きの44バイトは、そのまま先頭に残します。

へえ、と思うのは4バイトめの数です。 ここにはファイル全体の大きさから8を引いた数が入っています。 なぜ8を引くのかというと、「RIFF」の4文字と、この数自身の4バイトを数えない決まりだからです。 自分の大きさを自分で数えると、書いたとたんに答えが変わってしまうので、先に読み終わったぶんは数えないことにしてあるわけです。

数は「下の桁が先」に書いてあります

表の中で、44 ac 00 00 と並んでいるところがあります。 これが44,100です。 ふつうに左から読むと、そうは見えません。

じつは下の桁のほうが先に書いてあるのです。これをリトルエンディアンといいます。 うしろから読むと 00 00 ac 44 ── 16進の ac44 は 10進で44,100。ぴたりと合います。

ここは間違えると、開けないファイルができます。 もし上の桁から順に書くと、 同じ4バイトが1,152,122,880という、まったく別の数として読まれます。 1秒に10億回をこえる回数はかった音、ということになってしまうので、再生する側は当然おかしくなります。 しかも書いたほうの画面には何も出ないので、できたファイルを別のもので開くまで気づけません。

ステレオを素直にひっくり返すと、左右が入れかわります

ここが、逆再生を作る人がいちばん踏む落とし穴です。 しかも耳では気づけません。

ステレオの音は、左と右で列が2本あるわけではありません。 ファイルの中では左・右・左・右…と、1つずつ交互に並んでいます。 だから数字を1つずつうしろから読むと、右・左・右・左…の順で出てきてしまいます。左のあった場所に、右の数字が入るわけです。

音はちゃんと逆になっているので、聞いてもまちがいに気づけません。 もともと逆さまの、聞き慣れない音が鳴っているからです。 イヤホンで左右を聞きくらべて、 やっと分かります。

防ぎ方は決まっています。逆にするのは、1つずつではなく、組ごとにします。 左と右を1組にして、組の順番だけを逆にし、組の中の並びはさわらない。 それだけです。 上の画面にはわざと間違えたやり方で作るボタンを置いてあるので、 聞きくらべてみてください。

MP3では、この方法が使えません

「数字をうしろから読むだけ」でうまくいくのは、WAVの中に数字がそのまま入っているからでした。 ところがMP3では、これができません。

MP3はファイルを小さくするための形です。 小さくするために、数字の列を、そのままの形では持っていません。 別の形に置きかえて記録しているので、中身をうしろから読んでも音にはならず、ただ壊れるだけです。

だから逆再生をするには、いったんWAVの形(生の数字の列)に戻してから並べ替えます。 このページも中で同じことをしています。 選ばれたファイルをブラウザに開かせて 数字の列に戻し、それを逆にして、WAVとして組み立て直して渡しています。 保存で出てくるファイルがいつもWAVなのは、そのためです。

ついでに知っておくと得なことがあります。 MP3が小さいのは、もとの数字の一部を捨てているからです。 捨てたものは戻りません。 だからMP3をWAVに戻しても、もとの音そのものには戻りません。 入れ物の形が戻るだけです。

2回ひっくり返すと、元にもどります

逆の逆は、元です。 うしろから読み直すことを2回すれば、 数字は必ず元の順に戻ります。 上の画面の「もう1回ひっくり返す」を押すと、ほんとうにそうなります。

ここで遊べます。言葉を逆さまに言って録音し、それを逆再生するのです。 うまく言えていれば、元の言葉に聞こえます。 「ありがとう」なら「うとがりあ」と言って録る、というふうに。 やってみると、思ったよりずっとむずかしいことが分かります。 口は、音を1つずつ区切って出しているわけではないからです。

ただし、ファイルが1バイトも同じに戻るとはかぎりません。 数字の並びは必ず戻りますが、 書き出すたびに16ビットの整数に直しているので、ごくわずかな丸めが入ります。並びが戻ることと、ファイルが同じになることは別のことです。 ここを一緒にすると、直したつもりで直っていない、という間違いをします。

「逆に再生すると、かくれたメッセージが聞こえる」という話

逆再生には、昔からこの手の話がついて回ります。このページは、聞こえるとも聞こえないとも決めつけません。代わりに、確かめられていることだけを書きます。

まず、逆にした声は、言葉のような響きを残します。 だからたまたま言葉に似た響きが出ることがあります。 これは、そういう音が出たというだけのことです。

もうひとつ。先に「こう言っています」と教えられてから聞くと、そう聞こえやすくなります。雲を見ていて、先に「うさぎに見えるよ」と言われると うさぎにしか見えなくなるのと同じ種類のことです。

これは自分で確かめられます。 逆にした音を、友だちに何も言わずに聞かせて、先に「何と聞こえた?」と聞いてみてください。そのあとで「こう言っているんだよ」と教えてから、もう一度聞かせます。 聞こえ方が変わるかどうかは、やってみれば分かります。

なお、わざと逆向きの声を入れてある録音は、実際にあります。 入れてあるものは、逆にすればはっきり聞こえます。「はっきり聞こえるもの」と「言われて初めて聞こえるもの」は、別の話だということです。

音は、この画面から出ていきません

えらんだファイルも、録った声も、どこにも送っていません。 「送らないことにしている」のではなく、送る仕組みが入っていません。

できるのは、やっていることが全部その場で終わる計算だからです。 逆にするのはうしろから読み直すだけ、説明書きを組み立てるのも足し算だけで、よそのコンピュータに頼むことが何もありません。 だからいちど開いたあとなら、インターネットにつながっていなくても動きます。

受け取れる大きさに上限(約20.0MB・120秒)があるのは、逆再生が「全部そろってから」でないと始められないためです。 前から順に流す再生とちがって、最後の数字が決まらないと、最初の1つが決まりません。 ファイル全体をいちど覚えておくことになるので、大きすぎると画面が止まります。

ブラウザがボタンを押されるまで音を鳴らせない決まりについては、音を波の形で見るのページに、 決まりの原文つきで書いてあります。 このページで録音や再生にボタンが要るのも、同じ理由です。

出どころ: WAVの44バイトの並び(項目の順・バイト数・数を下の桁から書くこと・中身が奇数バイトなら詰めの1バイトが入ること)はRIFF/WAVE の仕様をまとめた McGill 大学の資料(新しいタブで開きます)から取り、実物とも突き合わせています ── Python の標準ライブラリで44,100Hz・ステレオ・16ビットのWAVを書き出し、 その先頭44バイトと1バイトも違わないことを単体テストに 固定してあります。 逆再生とメッセージの話は、実際に研究をした本人である John R. Vokey の解説(Subliminal Messages)(新しいタブで開きます)から取りました(もとの研究は Vokey & Read, 1985)。そこに書かれている以上のことは、こちらでも断定していません。