feat(transcribe): Azure Speech server-side key, remove translate option, add beam/VAD hints

- api/transcribe.php falls back to DBN_AZURE_SPEECH_KEY/REGION env vars so BYOK not required
- JS hides Azure key input when DBN_AZURE_SPEECH_CONFIGURED is true
- Remove Translate to English task option from Advanced settings
- Add explanatory hint text for Beam size and VAD filter in all 4 languages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 23:23:33 +02:00
parent ff031d7a5b
commit e3d8daf6ca
3 changed files with 19 additions and 8 deletions
+12 -2
View File
@@ -56,8 +56,10 @@ const TRANSCRIBE_I18N = {
beamSize: 'Beam size',
beamFastest: '(fastest)',
beamBest: '(best)',
beamSizeHint: 'Controls search breadth — higher values improve accuracy but take longer. 5 is recommended for legal recordings.',
vadFilter: 'VAD filter',
vadFilterLabel: 'Remove silence',
vadFilterHint: 'Voice Activity Detection — skips silent passages before transcribing. Speeds up processing and prevents the model hallucinating on silence.',
run: 'Run',
running: 'Transcribing…',
runningOther: 'Running…',
@@ -120,8 +122,10 @@ const TRANSCRIBE_I18N = {
beamSize: 'Beam size',
beamFastest: '(raskest)',
beamBest: '(best)',
beamSizeHint: 'Styrer søkebredde — høyere verdier gir bedre nøyaktighet men tar lengre tid. 5 anbefales for juridiske opptak.',
vadFilter: 'VAD-filter',
vadFilterLabel: 'Fjern stillhet',
vadFilterHint: 'Taleaktivitetsdeteksjon — hopper over stille partier før transkripsjon. Raskere behandling og forhindrer hallusinasjon på stillhet.',
run: 'Kjør',
running: 'Transkriberer…',
runningOther: 'Kjører…',
@@ -184,8 +188,10 @@ const TRANSCRIBE_I18N = {
beamSize: 'Розмір пучка',
beamFastest: '(найшвидший)',
beamBest: '(найкращий)',
beamSizeHint: 'Ширина пошуку — більше значення підвищує точність, але займає більше часу. 5 рекомендовано для юридичних записів.',
vadFilter: 'VAD-фільтр',
vadFilterLabel: 'Видалити тишу',
vadFilterHint: 'Виявлення мовної активності — пропускає тихі ділянки перед транскрипцією. Прискорює обробку та запобігає галюцинаціям на тиші.',
run: 'Запустити',
running: 'Транскрибування…',
runningOther: 'Виконання…',
@@ -248,8 +254,10 @@ const TRANSCRIBE_I18N = {
beamSize: 'Rozmiar wiązki',
beamFastest: '(najszybszy)',
beamBest: '(najlepszy)',
beamSizeHint: 'Kontroluje szerokość wyszukiwania — wyższe wartości poprawiają dokładność, ale wydłużają czas. 5 zalecane dla nagrań prawnych.',
vadFilter: 'Filtr VAD',
vadFilterLabel: 'Usuń ciszę',
vadFilterHint: 'Wykrywanie aktywności głosowej — pomija ciche fragmenty przed transkrypcją. Przyspiesza przetwarzanie i zapobiega halucynacjom na ciszy.',
run: 'Uruchom',
running: 'Transkrybowanie…',
runningOther: 'Uruchamianie…',
@@ -901,7 +909,7 @@ async function runTranscribe() {
return;
}
}
if (engine === 'azure') {
if (engine === 'azure' && !window.DBN_AZURE_SPEECH_CONFIGURED) {
const key = document.getElementById('azureKeyInput')?.value?.trim();
if (!key) {
els.status.textContent = currentUiT('missingAzureKey');
@@ -1208,7 +1216,9 @@ function setupTranscribeControls() {
radio.addEventListener('change', () => {
const engine = currentTranscribeEngine();
document.getElementById('openaiKeyControl')?.classList.toggle('is-hidden', engine !== 'openai');
document.getElementById('azureKeyControl')?.classList.toggle('is-hidden', engine !== 'azure');
// Hide azure key row if server has a pre-configured key
const azureNeedsKey = engine === 'azure' && !window.DBN_AZURE_SPEECH_CONFIGURED;
document.getElementById('azureKeyControl')?.classList.toggle('is-hidden', !azureNeedsKey);
document.getElementById('modelControl')?.classList.toggle('is-hidden', engine === 'openai' || engine === 'azure');
});
});