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: "在 MP3、WAV、OGG、FLAC 與 M4A 格式之間轉換音訊。"
i18n_source_hash: fd02c059e6a9
i18n_source_hash: 27fd2f49f472
i18n_provenance: human
i18n_output_hash: b364a00de332
---
# 轉換音訊 {#convert-audio}
在常見格式之間轉換音訊檔案,包含 MP3、WAV、OGG、FLAC 與 M4A,並可設定輸出位元率。
在常見格式之間轉換音訊檔案,包含 MP3、WAV、OGG、FLAC 與 M4A,並可設定輸出位元率與取樣率
## API 端點 {#api-endpoint}
@@ -21,6 +21,7 @@ i18n_output_hash: b364a00de332
|-----------|------|----------|---------|-------------|
| format | string | No | `"mp3"` | 輸出格式:`mp3``wav``ogg``flac``m4a` |
| bitrateKbps | integer | No | `192` | 輸出位元率(kbps)(32 至 320 |
| sampleRate | integer | No | 原始取樣率 | 輸出取樣率(Hz):`8000``16000``22050``32000``44100``48000``96000`。省略則保留原始取樣率 |
## 範例請求 {#example-request}
@@ -28,7 +29,7 @@ i18n_output_hash: b364a00de332
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}'
```
## 範例回應 {#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 \
- 支援的輸入格式包含 MP3、WAV、OGG、FLAC、AAC、M4A、WMA、AIFF 與 OPUS。
- 位元率只適用於有損格式(MP3、OGG、M4A)。像 WAV 與 FLAC 這類無損格式會忽略此設定。
- MP3 輸出支援最高 48000 Hz 的取樣率。96000 Hz 選項只適用於 WAV、OGG、FLAC 與 M4A。
- MP3 位元率的上限取決於取樣率:8000 Hz 時最高 64 kbps16000 或 22050 Hz 時最高 160 kbps。超過上限的請求會被拒絕,而不會被默默調低。
- 輸出檔名會保留原始名稱並換上新的副檔名。