デシベルと線形振幅を変換
この変換ツールは、振幅のゲインや比率を、対数表記のdBと通常の線形倍率の間で相互変換します。方向を選び、有限の数値を入力すると、両方の表現が得られます。同じ基準とインピーダンスを持つ電圧、音圧、デジタル音声の振幅比に適した、常用対数を20倍する標準関係式を使用します。
無料で実行
デシベルと線形振幅の意味
デシベル値は比率を対数尺度で表し、線形振幅は同じ比率を通常の倍率で表します。振幅では0 dBが1に対応し、増幅も減衰もない状態です。正のdBは1より大きい倍率、負のdBは0から1の間の倍率になります。使用する式は、線形振幅 = 10の「dBを20で割った値」乗です。20という係数は、電圧、音圧、サンプル振幅などの振幅比を扱うために使います。電力比では係数10を使うため、別の計算です。たとえば約6.0206 dBで振幅は2倍になり、約-6.0206 dBで半分になります。結果は無次元の比率です。別途基準値を指定しない限り、絶対電圧、音圧レベル、デジタルのフルスケール値を示すものではありません。
正しい変換方向の選び方
既知の値がデシベルで、振幅倍率が必要な場合はdb_to_linearを選びます。サンプルへのゲイン適用、アンプ仕様の解釈、減衰設定の倍率化に利用できます。正の振幅比を対数表記にしたい場合はlinear_to_dbを選びます。この方向では、dB = 20 × log10(線形振幅)を使います。線形振幅は0より大きくなければなりません。0の対数は有限ではなく、負の実数の対数は実数範囲で定義されないためです。そのため、0または負の値には、無限大やNaNではなく入力エラーを返します。どちらの方向でも有限の数値が必要です。比率1は0 dB、1より大きければ正、0から1の間なら負のdBになります。元の量が電力比ではなく振幅比であることをご確認ください。
音声処理で結果を正確に使う方法
結果はJavaScriptの常用対数とべき乗で直接計算され、ネットワーク、乱数、時刻には依存しません。中間処理では十分な精度を保ち、表示や出力形式で必要になった段階でのみ丸めてください。複数のゲイン段を重ねると小さな丸め差が蓄積することがありますが、通常は聴感上問題になりません。線形倍率はデジタル音声サンプルに適用できますが、それだけでクリッピングを防げるわけではありません。振幅を上げるとピークが許容範囲を超える場合があります。また、dBの結果は入力した比率を表すもので、独立して測定された音の大きさの変化ではありません。知覚は周波数、時間、試聴条件、聴覚に左右されます。自動処理では同じ決定的な計算を1回$0.002のAPIで利用でき、ブラウザー版は素早い確認に適しています。
活用例
サンプルへゲインを適用
dBのゲインまたは減衰を、デジタル信号処理で必要な線形倍率へ変換します。
振幅比をdBで表現
正の電圧比、圧力比、サンプル振幅比を、簡潔な対数表記へ変換します。
音響設計の計算を確認
ユニティーゲイン、振幅2倍、振幅半分などの基準点とゲイン段の計算を検証します。
よくある質問
dBを線形振幅へ変換する式は何ですか?
線形振幅 = 10^(dB/20)を使用します。
線形振幅をdBへ変換する式は何ですか?
dB = 20 × log10(線形振幅)を使用し、線形振幅は0より大きい必要があります。
線形振幅の0が拒否されるのはなぜですか?
0の対数は負の無限大で有限のdB値ではないため、入力エラーを返します。
電力比も変換できますか?
いいえ、振幅比専用です。電力比では20 × log10ではなく10 × log10を使用します。
6 dB上げると振幅は正確に2倍ですか?
厳密には違います。正確な2倍は約6.020599913 dBで、6 dBの倍率は約1.9953です。
API変換の料金はいくらですか?
APIは1回$0.002です。ブラウザー内の対話計算ではサーバー処理を使いません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/audio/decibel-to-linear \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":6,"mode":"db_to_linear"}'const res = await fetch("https://api.kit.forhosting.com/audio/decibel-to-linear", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 6,
"mode": "db_to_linear"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/decibel-to-linear",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 6,
"mode": "db_to_linear"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/decibel-to-linear", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":6,"mode":"db_to_linear"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":6,"mode":"db_to_linear"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/decibel-to-linear", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": 6,
"mode": "db_to_linear"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.decibel_to_linear",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 200 |
max_minutes | 180 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |