Skip to content

Instantly share code, notes, and snippets.

View willwade's full-sized avatar
🌏
Working on dasher and a lot of Ace hardware projects

will wade willwade

🌏
Working on dasher and a lot of Ace hardware projects
View GitHub Profile
import requests
# Azure subscription key and service region
subscription_key = 'YourAzureSubscriptionKey'
service_region = 'YourServiceRegion'
# Set up the TTS endpoint
tts_endpoint = f'https://{service_region}.tts.speech.microsoft.com/cognitiveservices/v1'
# Set up the headers for the HTTP request
@willwade
willwade / autocorrect.py
Last active February 2, 2024 07:57
AutoCorrect using OpenAI
from pynput import keyboard, mouse
from pynput.keyboard import Key, Controller as KeyboardController
import requests
import clipman
clipman.init()
keyboard_controller = KeyboardController()
text_buffer = []
def correct_text(text):
@willwade
willwade / KeyCodes.csv
Created April 7, 2013 13:25
Character code translation table for Mac/PC/Linux From: http://web.archive.org/web/20100501161453/http://www.classicteck.com/rbarticles/mackeyboard.php NB: Some of these are wrong. Follow the spreadsheet for updates as and when I find them at https://github.com/willwade/MacroServerMac/blob/master/KeyCodes.csv
Key Mac Windows Linux Notes
rbKeyUp 126 26 103
rbKeyDown 125 28 108
rbKeyLeft 123 25 105
rbKeyRight 124 27 106
rbKeyBackspace 117 8 14
rbKeyEnter 76 * 28
rbKeyHome 115 36 102
rbKeyEnd 119 35 107
rbKeyPageDown 121 34 109
@willwade
willwade / reftab.swift
Last active November 3, 2023 06:50
RefTab API for Swift
import CryptoKit
import Foundation
struct EmptyResponse: Decodable {}
class ReftabClient {
let publicKey: String
let secretKey: String
let baseURL = "https://www.reftab.com/api"
@willwade
willwade / ppm-autocorrection.swift
Last active October 26, 2023 10:59
PPM in swift courtesy of GPT. Here The generateCandidates(word:) method generates candidate words by swapping adjacent characters. This is a very simplistic way to generate candidates; in a real-world application, you might use more sophisticated techniques like Damerau-Levenshtein distance. The autocorrect(word:context:topN:) method takes a mis…
/** So really you'd want to update that training text continually too - but you ideally need a way for people correcting this training text. Something that was easy enough with dasher although undcoumented. You literally edit the text file.
Also note this for autocorrection - but not sure how we would implement this
**/
extension PPM {
// Generate candidate words by swapping adjacent characters
func generateCandidates(word: String) -> [String] {
var candidates: [String] = []
var chars = Array(word)
for i in 0..<(chars.count - 1) {
@willwade
willwade / remap.py
Last active September 18, 2023 10:50
this takes the directory of xkb keyboard maps found in linux at /usr/share/X11/xkb/symbols - and converts them to a relaykeys format e.g. https://github.com/AceCentre/RelayKeys/blob/master/cli_keymaps/de_keymap.json
import os
import re
import json
import unicodedata
def xkb_to_unicode(key_code):
# Add your custom mapping here
custom_mapping = {
"adiaeresis": "ä",
"odiaeresis": "ö",
@willwade
willwade / commands.md
Last active August 19, 2023 03:18
Apple iOS Voice Control commands list. These are the default ones listed in the settings. If you are looking for the Catalina commands Ron Leblanc has compiled a great list (https://www.dropbox.com/s/stacghczr68o8az/Voice%20Control%20Commands.xlsx?dl=0)
@willwade
willwade / requirements.txt
Last active July 5, 2023 15:47
MIgrating to https://github.com/AceCentre/TranslateAndTTS Copy pasteboard, translate the pasteboard to a predefined language, then speak it. Note settings in cfg file - Will allow you to replace pasteboard if you wish. NB: pyenv 3.10 - pip install -r requirements.txt build using pyinstaller. use --onefile --noconsole
pyperclip
pyttsx4
configparser
translate
TTS
pyaudio
gTTS
gspeak
pygame
from pynput.mouse import Controller
from pynput.keyboard import Listener, Key
import time
# Create an instance of the mouse controller
mouse = Controller()
# Set the initial position of the cursor
x, y = mouse.position
property delayInterval : 15 -- seconds
on run
activate
tell application "System Events" to set UIAccessStatus to UI elements enabled
end run
on idle
try
tell application "System Events"
tell process "NotificationCenter"