マガジン

録音した自分の声を効果音にする:加工で声だと分からなくする

遊びをつくる

執筆にClaudeを使用しています。

つなぎ目のない銅色のリボンとテープリールで、自然なBGMループを表した写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

ジャンプの効果音がほしくて、マイクに向かって「ぴょん」と言い、その録音を少し加工してゲームに入れる場面を考えてみます。自分で聞くと、どうしても「ぴょん」と言っている自分の声に聞こえます。一方、遊ぶ人にとっては、ただのジャンプ音に聞こえるかもしれません。この差はどこから来るのでしょうか。 この記事は、加工の腕前を競うものではありません。「声だと分からない」という曖昧な目標を測れる形に直し、身近な録音から効果音を作る手順を、自分で確かめられる実験として組み立てます。結果は書きません。読者が手を動かして初めて答えが出ます。 必要なのは、スマートフォンのボイスメモなどの録音手段と、ブラウザで動く小さな加工ツールだけです。ツールのコードは記事の中ほどにあります。

この記事の目次
  1. 「声だと分からない」を測れる問いに直す
  2. 準備するもの
  3. 手順:録る、1つだけ変える、並べる
  4. 記録の取り方と聞き手テスト
  5. 結果の読み方と起こりやすい誤り
  6. ゲームに入れるときの注意
  7. 次の行動

「声だと分からない」を測れる問いに直す

最初に、何をもって「分からない」とするかを決めます。ここを曖昧にすると、加工を重ねるうちに自分の耳が慣れてしまい、判断が揺らぎます。

自分で聞いて判断するのは避けてください。元の録音を知っている耳は、どれだけ加工しても声の面影を拾ってしまいます。逆に、加工を聞き続けて慣れると、本当は声らしさが残っていても気づけなくなります。そこで問いを次の2つに分けます。

  • 問い1:何も知らない聞き手は、この音を「声」と答えるか。
  • 問い2:ゲームの場面に置いたとき、聞き手は意図した動作の音として受け取るか。

問い1は音そのものの検査で、問い2は文脈込みの検査です。声と分からなくても、ジャンプの音に聞こえなければ効果音として役に立ちません。両方を別々に確かめます。

あわせて、合否の基準を実験の前に決めておきます。たとえば「聞き手の過半数が、声と答えなければ合格」のような文です。結果を見てから基準を動かすと、何でも合格になってしまいます。

準備するもの

  • 録音手段:スマートフォンのボイスメモ、パソコンの録音ソフトなど。形式は、ブラウザが読み込める一般的な音声ファイルであれば問題ありません。
  • 加工ツール:下のHTMLをファイルに保存してブラウザで開きます。外部ライブラリは使いません。
  • 聞き手:できれば3人以上。録音者本人は含めません。
  • 記録表:紙でも表計算でも構いません。
  • ヘッドホンかスピーカー:聞き手全員に同じ機器と同じ音量を使ってもらいます。

録音する言葉は、効果音にしたい動きから逆算して選びます。たとえば次のような対応が考えられます。

  • ジャンプ、録る元の音の例:「ぴょん」「ぽん」
  • 風や煙、録る元の音の例:「すー」「ふー」
  • 打撃・着地、録る元の音の例:「ぱっ」「どん」
  • 魔法・回復、録る元の音の例:「ふわー」「ああー」

子音の「ぱ」「ぷ」「し」は、短くて加工後にノイズやクリックのような音になりやすく、声らしさも残りにくいと考えられます。一方、長い母音は声の特徴が出やすい音です。両方を1本ずつ録って比べると、題材として適しています。

また、他の人の声を使う場合は、本人に使い道と公開範囲を伝えて同意を得ておきます。声の扱いに関する法的な点は断定できないため、公開前に専門家や公式情報で確認してください。

手順:録る、1つだけ変える、並べる

1. 録音する

静かな部屋で、同じ言葉を3回ずつ録ります。録音したファイルには、あとで追えるように番号をつけます。

2. 加工ツールを用意する

次のHTMLを保存し、ブラウザで開きます。ファイルを選ぶと、速度・高域カット・歪み・逆再生を変えて鳴らせます。

html
<!doctype html>
<meta charset="utf-8">
<input type="file" id="file" accept="audio/*">
<button id="play">再生</button><br>
<label>速度 <input type="range" id="rate" min="0.25" max="4" step="0.05" value="1"></label><br>
<label>高域カット(Hz) <input type="range" id="cut" min="200" max="8000" step="100" value="8000"></label><br>
<label>歪み <input type="range" id="drive" min="0" max="20" value="0"></label><br>
<label><input type="checkbox" id="rev"> 逆再生</label>
<script>
const ctx = new AudioContext();
let buf = null;
const $ = (id) => document.getElementById(id);
$('file').onchange = async (e) => {
  const data = await e.target.files[0].arrayBuffer();
  buf = await ctx.decodeAudioData(data);
};
function curve(k) {
  const c = new Float32Array(1024);
  for (let i = 0; i < c.length; i++) {
    const x = i / 511.5 - 1;
    c[i] = k === 0 ? x : Math.tanh(k * x);
  }
  return c;
}
function reversed(b) {
  const out = ctx.createBuffer(b.numberOfChannels, b.length, b.sampleRate);
  for (let ch = 0; ch < b.numberOfChannels; ch++) {
    out.getChannelData(ch).set(b.getChannelData(ch).slice().reverse());
  }
  return out;
}
$('play').onclick = async () => {
  if (!buf) return;
  await ctx.resume();
  const src = ctx.createBufferSource();
  src.buffer = $('rev').checked ? reversed(buf) : buf;
  src.playbackRate.value = +$('rate').value;
  const shaper = ctx.createWaveShaper();
  shaper.curve = curve(+$('drive').value);
  const lp = ctx.createBiquadFilter();
  lp.type = 'lowpass';
  lp.frequency.value = +$('cut').value;
  const gain = ctx.createGain();
  gain.gain.value = 0.5;
  src.connect(shaper).connect(lp).connect(gain).connect(ctx.destination);
  src.start();
};
</script>

このツールでは、速度を変えると音の高さと長さが同時に変わります。速度を上げると高く短くなり、下げると低く長くなります。また、歪みを強くすると音が大きく聞こえやすいので、聞き比べるときは音量の差に注意してください。

3. 変える項目は1回に1つだけにする

声らしさを手がかりごとに分けて考えます。声を声と感じさせる要素として、考えられるのは次のようなものです。

  • 音の高さの動き(抑揚)
  • 音節のまとまりとリズム
  • 母音らしい響きの形
  • 息のような雑音

速度は高さとリズムの両方に、高域カットは響きと息の成分に、歪みは音色全体に、逆再生は音の出だしと終わりの形に、それぞれ強く影響すると予想できます。ただし、どの手がかりがどれだけ効くかは声や言葉によって変わるため、この対応表は仮説として扱ってください。

4. 条件を段階的に作る

同じ録音から、次の順に候補を作ります。

  1. 無加工(対照)
  2. 速度だけ変える(たとえば0.5倍と2倍)
  3. 高域カットだけ
  4. 歪みだけ
  5. 逆再生だけ
  6. 単独で効きそうだった2つの組み合わせ

単独条件を先に見ておくと、組み合わせたときに何が効いたのかが追えます。最初から全部盛りにすると、どれが効いたか分からなくなります。

記録の取り方と聞き手テスト

記録表の項目

候補ごとに1行ずつ、次を記録します。

  • 音ID(聞き手には見せない番号)
  • 元の言葉と録音番号
  • 速度、高域カットの値、歪みの値、逆再生の有無
  • 長さ(秒)
  • 聞き手ごとの回答(自由記述、声か否か)

設定値は、ツールの画面を見ながらその場で書き留めておきます。あとで思い出そうとしても、再現できなくなることが多いためです。

聞き手テストの手順

  1. 候補をランダムな順に並べます。対照の無加工も、他の音に混ぜます。
  2. 聞き手には、元が人の声であることも、加工の内容も伝えません。
  3. 1つの音につき再生は1回から2回までとし、回数は全員そろえます。
  4. 先に自由記述で「何の音に聞こえましたか」を尋ねます。
  5. 次に3択で「声に聞こえたか(声/声ではない/分からない)」を尋ねます。

自由記述を先にするのは、「声ですか」と最初に聞くと、聞き手が声を探しながら聞いてしまうためです。自由記述に「人が何か言っている」と書かれたら、3択で「声ではない」を選ばれても、声と受け取られている可能性が高いと読めます。

文脈テスト(問い2)

声と答える人が少なかった候補から、実際のゲーム画面に当てはめます。動作に合わせて鳴らす様子を見せ、「何をしたときの音に聞こえますか」と尋ねます。画面を見せずに音だけ聞かせた場合との差も、同じ表に記録しておくと役立ちます。

結果の読み方と起こりやすい誤り

読み方の目安

結果は、事前に決めた基準と照らして読みます。

  • 無加工で多くの人が声と答え、ある条件で声の回答が大きく減った場合:その条件で変えた手がかりが、声らしさの大きな部分を担っていた可能性があります。
  • 単独ではほとんど減らず、組み合わせで減った場合:複数の手がかりが重なって声と感じさせていたと考えられます。
  • 声の回答は減ったが、自由記述が「人がうなっている」のような別の人の気配だった場合:声と分からなくなったのではなく、別の声に聞こえているだけです。基準を満たしたとはいえません。
  • 声ではないと答えられても、場面に合わないと言われる場合:問い1は通っても、問い2は通っていません。録る言葉の選び直しに戻ります。

聞き手の人数が少ないうちは、割合の細かな差を結論にしないでください。差がはっきり出た条件だけを残して、聞き手を入れ替えてもう一度確かめるほうが確実です。

誤りやすい点

  • 自分の耳で判断する:元を知っているため、声が残っているかどうかを判断できません。必ず別の人に聞いてもらいます。
  • 一度に複数の設定を変える:何が効いたのか分からなくなります。
  • 音量がそろっていない:大きい音は印象が強くなり、回答に影響します。歪みの条件は特に注意が必要です。
  • 聞き手が元の言葉を知っている:「ぴょん」と録ったと知らせると、そう聞こえてしまいます。
  • 録音のノイズ:部屋の空調や机の音は、加工で目立つことがあります。録り直しで解決することも多いです。
  • ブラウザの自動再生の制限:音が出ない場合は、ページ上のボタンを押してから再生しているか確認します。
  • 同じ聞き手に何度も聞かせる:慣れによって回答が変わります。

ゲームに入れるときの注意

投稿するときは、加工後の音声を作品フォルダに入れ、直下のindex.htmlから相対パスで読み込みます。アップロードは20MiB以内、ZIP展開後は合計100MiB・1,000ファイル以内、1ファイル30MiB以内という確認済みの上限があります。効果音は短いので収まるはずですが、ファイル数が増えたら合計サイズも確認してください。

また、アソバースの公式作品「こだまの森」には、音なしでも遊べる仕様があります。音を主役にした作品でも、音に頼らない遊び方が用意されているということです。声を元にした効果音は印象が強い分、音が聞こえない環境でも進行が伝わるよう、画面側の合図も併用しておくと安心です。

作った効果音が実際の作品内で期待どおりに鳴るかは、公開前の表示の確認で、作品を開いて確かめてください。

次の行動

まず「ぴょん」のような短い言葉と、「ふわー」のような長い母音を1本ずつ録り、加工ツールで条件を1つずつ作ってみてください。基準を先に書き出してから、3人に目隠しで聞いてもらい、記録表に回答を残します。声と感じさせた手がかりが見えてきたら、その手がかりを消す方向で次の候補を作ります。