Audio sample rate converter
Relabel a sampling rate in the unit your session, datasheet or homework expects: 44100 Hz is 44.1 kHz, and the five units for audio and data converters switch without decade slips. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 44,100
- From
- Hz
- To
- kHz
- Result
- 44.1 kHz
- Converted
- 44.1
- Value hz
- 44,100
- Factor
- 0.001
An audio sample rate converter turns one sampling-frequency magnitude into another unit without spreadsheet formulas or mental decade tables. Producers comparing CD forty-four point one kilohertz to studio forty-eight kilohertz labels, embedded engineers documenting ADC clocks in megahertz, DSP students converting homework values between Hz and samples per second, and pipeline authors normalizing metadata tags all need the same deterministic path.
Which sample-rate units are supported and how conversion works
This capability converts among five units that dominate digital audio, telephony, and data-converter documentation. Hertz (Hz) is the SI coherent unit and the internal hub: every conversion multiplies the input by how many hertz equal one source unit, then divides by how many hertz equal one target unit. Kilohertz use the exact decade factor of one thousand.
Megahertz use one million. Samples per second (sps) is dimensionally identical to hertz for discrete sampling—one sample each second is one hertz of sampling frequency—so the factor is exactly one, while kilosamples per second (ksps) shares the thousand-fold factor with kilohertz. Same-unit requests succeed and return the input magnitude with a short message that no change of unit was required.
Practical tips, limits, and when to use this landing
Round-trip checks are straightforward: convert A to B and B back to A and confirm you recover the original within the published twelve-decimal rounding. When teaching sampling theory, pair classic examples such as eight thousand hertz telephony to eight kilohertz, sixteen kilohertz wideband voice to sixteen thousand samples per second, forty-four point one kilohertz compact-disc audio to forty-four thousand one hundred hertz, and one hundred ninety-two kilohertz high-resolution masters to zero point one nine two megahertz. Stay inside the absolute range so intermediate hertz values cannot overflow.
This landing targets people searching for an audio sample rate converter, Hz to kHz, samples per second to kilohertz, or digital audio sampling frequency online; it is not a resampler that rewrites PCM buffers, not a bit-rate or bitrate calculator in kilobits per second, not a pitch shifter, and not a general SI frequency tool for radio wavelengths. Keep metadata pipelines honest: write the same fs into headers after converting units so players and DAWs never see a mismatched label that claims kilohertz when the number is still in hertz.
What you can do with it
Studio and DAW metadata labels
Producers convert forty-four thousand one hundred Hz project settings to forty-four point one kHz labels for session notes, export dialogs, and client-facing tech sheets.
ADC and embedded clock documentation
Firmware authors convert megahertz master clocks and kilosamples-per-second datasheet ratings into hertz for register maps and compliance checklists.
FAQ
Is samples per second the same as hertz?
For discrete sampling frequency, one sample per second equals one hertz. This tool keeps both labels (sps and Hz) with identical factors so either vocabulary works.
Is the audio sample rate converter free?
The browser tool is free and runs locally.
Does this resample my audio file?
No. It only converts the numeric sample-rate unit (for example Hz to kHz). Use an audio conversion or DSP resampler if you need to rewrite PCM samples.
Does it work out bitrate in kilobits per second?
No. It converts sampling frequency only. A bitrate in kilobits per second is a different quantity with its own calculation, and the tool does not shift pitch or touch your audio either.
How many kHz are in 1 MHz?
There are 1000 kHz in 1 MHz, which is one million hertz. That helps when a datasheet gives a converter clock in megahertz and your notes or register map expect kilohertz or plain hertz.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/conv/sample-rate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":44100,"from":"Hz","to":"kHz"}'const res = await fetch("https://api.kit.forhosting.com/conv/sample-rate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 44100,
"from": "Hz",
"to": "kHz"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/sample-rate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 44100,
"from": "Hz",
"to": "kHz"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/sample-rate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":44100,"from":"Hz","to":"kHz"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":44100,"from":"Hz","to":"kHz"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/sample-rate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 44100,
"from": "Hz",
"to": "kHz"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.sample_rate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which sample-rate units are supported and how conversion works
Common aliases are accepted case-insensitively: hertz and cycles per second for Hz; kilohertz for kHz; megahertz for MHz; samples/s, samples per second, and sample/sec for sps; and kilosamples/s or kilosamples per second for ksps. If the name is not on that list the solver rejects the request with invalid_input naming the bad field and listing supported units, so clients never guess whether a typo produced a wrong number. Negative values are allowed for directed or differential contexts in analysis scripts; absolute magnitude must stay within the published one-trillion limit so intermediate products remain finite in IEEE double precision on the Worker and in the browser.
How to call the API and read the response
Value must be a finite number or a strict numeric string within absolute limits of one trillion. Prefer bare numbers for value when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without thousand separators or unit suffixes embedded in the same field. Send a JSON body with three required fields: value (aliases rate, amount, n, and fs), from (aliases from_unit, unit_from, and source), and to (aliases to_unit, unit_to, and target). From and to must resolve to supported unit names after alias normalization. On success the response echoes the rounded input value, canonical from and to labels, result and converted set to the same rounded target magnitude, value_hz as the SI intermediate, unit as the target label, factor as the from-to multiplier, formula as the short equation string, message as an English summary, steps as ordered substitution lines, and supported_units as the five canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside absolute limits, or an unknown unit name—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price. Wire this into media dashboards, mobile clients, or batch jobs that already hold a sample-rate reading and only need a second unit for display, regulatory comparison, or schema normalization without shipping conversion tables in every app binary.
Practical tips, limits, and when to use this landing
Normalize display labels on your side if you need locale-specific spellings—this API always returns the short canonical tokens Hz, kHz, MHz, sps, and ksps so automated tests stay stable. Prefer this capability when both endpoints are among the five supported sample-rate units and you need deterministic factors and step strings; if you need to convert file formats such as WAV to MP3, use the ffmpeg-backed audio conversion capability instead. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names.
Integration use cases
DSP homework and unit tests
Students and CI suites convert sample rates between Hz, kHz, and samples per second and assert deterministic steps against hand calculations.
Technical questions
Which sample-rate units can I convert?
Hertz (Hz), kilohertz (kHz), megahertz (MHz), samples per second (sps), and kilosamples per second (ksps), including common aliases such as hertz, samples/s, and kilosamples per second.
What happens if I send an unknown unit name?
The API returns invalid_input, names the bad field, and lists the supported units. The failed task is not charged.