v0.3: PTT hotkey capture, mouse support, model params

- Replace PTT key dropdown with live key-capture textbox
- Use low-level keyboard hook for capture (distinguishes Left/Right Ctrl)
- Support mouse buttons as PTT (Left/Right/Middle/X1/X2 via WH_MOUSE_LL)
- Filter mouse clicks from capture, allow Left/Right Ctrl
- Add Noise/Speed/NoiseW sliders with live labels, reinit on MouseUp
- Stream audio via BufferedWaveProvider (no temp WAV files)
- Add text input field with Speak button
- Fix sentence terminator, UTF-8 marshaling, voice catalogue JSON
This commit is contained in:
2026-08-10 12:07:34 +00:00
parent f7ea07b78e
commit 9b0dc11ee6
3 changed files with 201 additions and 38 deletions
+8 -7
View File
@@ -6,7 +6,7 @@ partial class MainForm
private System.ComponentModel.IContainer? components = null;
private Label lblPttKey = null!;
private ComboBox cmbPttKey = null!;
private TextBox txtPttKey = null!;
private Label lblVoice = null!;
private ComboBox cmbVoice = null!;
private Button btnTestVoice = null!;
@@ -45,7 +45,7 @@ partial class MainForm
components = new System.ComponentModel.Container();
lblPttKey = new Label();
cmbPttKey = new ComboBox();
txtPttKey = new TextBox();
lblVoice = new Label();
cmbVoice = new ComboBox();
btnTestVoice = new Button();
@@ -80,10 +80,11 @@ partial class MainForm
lblPttKey.Size = new Size(60, 23);
lblPttKey.TextAlign = ContentAlignment.MiddleLeft;
// cmbPttKey
cmbPttKey.Location = new Point(75, 12);
cmbPttKey.Size = new Size(80, 23);
cmbPttKey.DropDownStyle = ComboBoxStyle.DropDownList;
// txtPttKey
txtPttKey.Location = new Point(75, 12);
txtPttKey.Size = new Size(80, 23);
txtPttKey.ReadOnly = true;
txtPttKey.TextAlign = HorizontalAlignment.Center;
// lblVoice
lblVoice.Text = "Voice:";
@@ -249,7 +250,7 @@ partial class MainForm
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(824, 509);
Controls.Add(lblPttKey);
Controls.Add(cmbPttKey);
Controls.Add(txtPttKey);
Controls.Add(lblVoice);
Controls.Add(cmbVoice);
Controls.Add(btnTestVoice);