Toggles voice dictation in ChatGPT using Alt+S (works even after browser restarts)
当前为
// ==UserScript==
// @name GPT Dictation Toggle (Alt+S) - Stable Edition
// @namespace http://tampermonkey.net/
// @version 4.0
// @description Toggles voice dictation in ChatGPT using Alt+S (works even after browser restarts)
// @author Kamil
// @match https://chatgpt.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
function simulateClick(el) {
const evt = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
});
el.dispatchEvent(evt);
console.log("Kliknięto:", el);
}
function findDictateButton() {
const buttons = document.querySelectorAll('button');
for (const button of buttons) {
const aria = button.getAttribute('aria-label');
if (!aria || !aria.toLowerCase().includes('dictate')) continue;
const svg = button.querySelector('svg');
if (!svg) continue;
const paths = svg.querySelectorAll('path');
if (paths.length === 2 &&
paths[0].getAttribute('d')?.startsWith('M11.165 4.41699') &&
paths[1].getAttribute('d')?.startsWith('M14.8058 9.11426')) {
return button;
}
}
return null;
}
function findSubmitDictationButton() {
return document.querySelector('button[aria-label="Submit dictation"]');
}
document.addEventListener('keydown', function (e) {
if (e.altKey && e.key.toLowerCase() === 's') {
e.preventDefault();
const stopBtn = findSubmitDictationButton();
const startBtn = findDictateButton();
if (stopBtn) {
simulateClick(stopBtn);
} else if (startBtn) {
simulateClick(startBtn);
} else {
console.warn("Nie znaleziono mikrofonu ani przycisku zatwierdzenia dyktowania.");
}
}
});
})();