yum-slop/TaSTT

Free self-hosted STT for VRChat.

git clone https://git.yummers.dev/yum-slop/TaSTT

yumExperiment with hallucination reductiona7f9b7b

master
2.4 KiB57 linesraw
1// Shared configuration schema with types and defaults
2const CONFIG_SCHEMA = {
3    // String fields
4    compute_type: { type: 'select', default: 'float16' },
5    language: { type: 'select', default: 'english' },
6    model: { type: 'select', default: 'turbo' },
7    microphone: { type: 'number', default: 0 },
8    user_prompt: { type: 'text', default: 'Use proper punctuation and grammar. Prefer spelled out numbers like one, eleven, twenty, etc. Mm.' },
9    keybind: { type: 'text', default: 'ctrl+alt+x' },
10    button_hand: { type: 'select', default: 'right' },
11    button_type: { type: 'select', default: 'b' },
12    
13    // Number fields
14    gpu_idx: { type: 'number', default: 0 },
15    max_speech_duration_s: { type: 'number', default: 10 },
16    min_speech_duration_ms: { type: 'number', default: 250 },
17    min_silence_duration_ms: { type: 'number', default: 100 },
18    reset_after_silence_s: { type: 'number', default: 15 },
19    transcription_loop_delay_ms: { type: 'number', default: 100 },
20    block_width: { type: 'number', default: 2 },
21    num_blocks: { type: 'number', default: 40 },
22    rows: { type: 'number', default: 10 },
23    cols: { type: 'number', default: 24 },
24    beam_size: { type: 'number', default: 5 },
25    best_of: { type: 'number', default: 5 },
26    volume: { type: 'number', default: 30 },
27    
28    // Boolean fields (stored as 1/0)
29    enable_debug_mode: { type: 'boolean', default: 0 },
30    enable_previews: { type: 'boolean', default: 1 },
31    save_audio: { type: 'boolean', default: 0 },
32    enable_segment_logging: { type: 'boolean', default: 1 },
33    use_cpu: { type: 'boolean', default: 0 },
34    enable_lowercase_filter: { type: 'boolean', default: 0 },
35    enable_uppercase_filter: { type: 'boolean', default: 0 },
36    enable_profanity_filter: { type: 'boolean', default: 0 },
37    remove_trailing_period: { type: 'boolean', default: 0 },
38    reset_on_toggle: { type: 'boolean', default: 0 },
39    use_builtin: { type: 'boolean', default: 1 }
40};
41
42// Helper to extract just the default values
43function getDefaultConfig() {
44    const defaults = {};
45    for (const [key, schema] of Object.entries(CONFIG_SCHEMA)) {
46        defaults[key] = schema.default;
47    }
48    return defaults;
49}
50
51// Export for both CommonJS (main process) and ES modules (renderer)
52if (typeof module !== 'undefined' && module.exports) {
53    module.exports = { CONFIG_SCHEMA, getDefaultConfig };
54} else {
55    window.CONFIG_SCHEMA = CONFIG_SCHEMA;
56    window.getDefaultConfig = getDefaultConfig;
57}