fix(audio): expose sample rate setting in Convert Audio (#561)

The Convert Audio tool promised configurable bitrate, sample rate, and channel count, but only format and bitrate were exposed. Adds an optional sampleRate setting (8000 to 96000 Hz, omitted = preserve source) wired through the Zod schema, the FFmpeg -ar flag, the standalone settings panel, and the pipeline builder controls.

Impossible combinations fail loudly instead of degrading silently: MP3 + 96000 Hz is rejected (libmp3lame caps at 48 kHz), and MP3 bitrates above the encoder ceiling at low rates (64 kbps at 8 kHz, 160 kbps at 16/22.05 kHz) are rejected rather than clamped. The UI offers only legal combinations and sanitizes stored pipeline settings on load.

Docs updated in English plus all 20 localized pages with refreshed i18n_source_hash stamps; two new UI strings added to all 21 locales.

Fixes #558
This commit is contained in:
SnapOtter
2026-07-18 10:14:50 +08:00
committed by GitHub
parent 6ecc598fc4
commit d4eaa655b2
47 changed files with 541 additions and 133 deletions
+8 -5
View File
@@ -1,13 +1,13 @@
---
description: "Konversi audio antara format MP3, WAV, OGG, FLAC, dan M4A."
i18n_source_hash: fd02c059e6a9
i18n_source_hash: 27fd2f49f472
i18n_provenance: human
i18n_output_hash: 06454316167e
---
# Convert Audio {#convert-audio}
Konversi file audio antara format umum termasuk MP3, WAV, OGG, FLAC, dan M4A, dengan bitrate output yang dapat dikonfigurasi.
Konversi file audio antara format umum termasuk MP3, WAV, OGG, FLAC, dan M4A, dengan bitrate output dan laju sampel yang dapat dikonfigurasi.
## API Endpoint {#api-endpoint}
@@ -21,6 +21,7 @@ Menerima data formulir multipart dengan file audio dan bidang JSON `settings`.
|-----------|------|----------|---------|-------------|
| format | string | Tidak | `"mp3"` | Format output: `mp3`, `wav`, `ogg`, `flac`, `m4a` |
| bitrateKbps | integer | Tidak | `192` | Bitrate output dalam kbps (32 hingga 320) |
| sampleRate | integer | Tidak | laju sumber | Laju sampel output dalam Hz: `8000`, `16000`, `22050`, `32000`, `44100`, `48000`, atau `96000`. Kosongkan untuk mempertahankan laju sumber |
## Contoh Permintaan {#example-request}
@@ -28,7 +29,7 @@ Menerima data formulir multipart dengan file audio dan bidang JSON `settings`.
curl -X POST http://localhost:1349/api/v1/tools/audio/convert-audio \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@audio.mp3" \
-F 'settings={"format": "flac", "bitrateKbps": 256}'
-F 'settings={"format": "mp3", "bitrateKbps": 192, "sampleRate": 44100}'
```
## Contoh Respons {#example-response}
@@ -36,9 +37,9 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/convert-audio \
```json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/audio.flac",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/audio.mp3",
"originalSize": 4500000,
"processedSize": 8200000
"processedSize": 2800000
}
```
@@ -46,4 +47,6 @@ curl -X POST http://localhost:1349/api/v1/tools/audio/convert-audio \
- Format input yang didukung meliputi MP3, WAV, OGG, FLAC, AAC, M4A, WMA, AIFF, dan OPUS.
- Bitrate hanya berlaku untuk format lossy (MP3, OGG, M4A). Format lossless seperti WAV dan FLAC mengabaikan pengaturan ini.
- Output MP3 mendukung laju sampel hingga 48000 Hz. Opsi 96000 Hz hanya berlaku untuk WAV, OGG, FLAC, dan M4A.
- Bitrate MP3 dibatasi oleh laju sampel: maksimal 64 kbps pada 8000 Hz dan 160 kbps pada 16000 atau 22050 Hz. Permintaan di atas batas tersebut ditolak, bukan diturunkan secara diam-diam.
- Nama file output mempertahankan nama asli dengan ekstensi baru.