Создание высокоточного приложения для транскрипции, работающего в три клика, звучит сложно, но это не так. Давайте познакомим Whisper с AutoHotkey.
Whisper от OpenAI — одно из самых мощных решений для преобразования вашего голоса в текст. Однако использование Whisper также может раздражать, поскольку вам нужно вводить команды для преобразования аудиофайла в текст. Но зачем это делать, если у нас есть AutoHotkey?
С помощью AutoHotkey мы можем легко создать базовый графический интерфейс для приложений командной строки, таких как Whisper. Итак, давайте сделаем это и посмотрим, как вы можете создать свое собственное приложение для транскрипции, объединив сверхспособности AutoHotkey по созданию графического интерфейса с Whisper от OpenAI в качестве «мозга» за кнопками.
Закладка основ для Whisper и AutoHotkey
Вы можете создавать крутые скрипты с помощью AutoHotkey, но это еще не все, на что он способен. В этом проекте мы будем использовать AutoHotkey для создания графического интерфейса для Whisper. Это позволит нам использовать инструмент искусственного интеллекта для распознавания голоса OpenAI, нажимая кнопки и настраивая его функциональность с помощью меню вместо ввода команд.
Однако это означает, что вам нужно будет установить AutoHotkey и Whisper, чтобы следовать дальше.
Для первой части уравнения можно скачать AutoHotkey с официального сайта, затем запустите его установщик и следуйте представленным шагам.
Обратите внимание, что мы будем использовать старую версию языка сценариев «v1», а не новую версию v2. Это важно, потому что две версии используют несколько разный синтаксис. То, что мы здесь увидим, может не работать при использовании новой версии v2.
Вторая часть более сложная, но вы можете узнать, как это сделать, прочитав нашу статью о как превратить ваш голос в текст с помощью OpenAI Whisper для Windows.
С обоими установленными наш план действий выглядит следующим образом:
- Создайте графический интерфейс с элементами для переменных и значений Whisper.
- Создавайте функции для получения значений из интерфейса, выбора файлов и папок и объединения всего этого в удобную команду Whisper.
- Запустите команду Whisper, чтобы получить результаты.
Конечно, вы всегда можете использовать встроенную в Windows поддержку голосового набора, как мы видели в нашей статье о как запустить голосовой набор в Windows 11. Тем не менее, как вы увидите при его использовании, Whisper намного точнее (но и медленнее).
В более личном плане я должен объяснить, что я не программист, и этот проект является «ремиксом» решения, сделанного для личного использования.
Как создать новый скрипт AutoHotkey
Первым шагом является создание нового пустого файла сценария. Храните его в отдельной папке на тот случай, если вы решите изменить или дополнить его, создав дополнительные файлы.
- Запустите ваш любимый файловый менеджер (или нажмите Ключ Windows + Е для запуска проводника Windows) и создайте папку для своего приложения транскрипции в любом месте.
- Щелкните правой кнопкой мыши на пустом месте окна и выберите Новый > Скрипт автогорячих клавиш для создания пустого файла сценария.
- Shift + Щелкните правой кнопкой мыши файл, чтобы получить доступ к полному контекстному меню, и выберите, чтобы открыть его с помощью вашего любимого кода или текстового редактора. собственный Блокнот Сделаю.
- Несмотря на то, что это «пустой скрипт», ваш файл AHK уже будет предварительно заполнен некоторыми «вещами». Это полезные переменные и флаги AutoHotkey, которые определяют, как он должен работать на вашем рабочем столе. Игнорируйте их, оставьте как есть и в будущем печатайте под ними.
Знакомство с флагами Whisper
Поскольку мы создаем графический интерфейс для приложения командной строки, удобно иметь ссылку на его основные переменные и флаги, которые мы будем использовать в нашем проекте. Вы можете проверить их, прочитав документацию Whisper, посетив его официальная страница Githubи запустите его в своем терминале.
Мы перечислим те, которые мы будем использовать в этом проекте для удобства. Мы предлагаем вам добавить их в свой сценарий в виде комментариев (отдельными строками, каждая из которых начинается с символа «;», за которым следует пробел).
; Флаги шепота:; --initial_prompt PROMPT_TEXT; --output_format тхт; -o ВЫХОДНАЯ_ПАПКА; --model MODEL_TO_USE; --task ПЕРЕЧИСЛИТЬ/ПЕРЕВОДИТЬ; --language EN/EL
Создание графического интерфейса с помощью AutoHotkey
Мы предлагаем вам разделить ваш сценарий на разделы, используя комментарии, как это сделали мы, чтобы сохранить его организованность. Мы начнем с определения некоторых переменных, перейдем к фактическому графическому интерфейсу и закончим определением его функций.
Мы начнем с раздела, где мы определим переменные, которые мы, возможно, захотим изменить в будущем, но не так часто, чтобы мы хотели выставлять их через графический интерфейс, чрезмерно усложняя его. Вы можете ввести «Имя_переменной = содержимое или значение переменной» с одной парой переменных и значений в строке.
Для этого проекта мы определили Выходной формат переменная, которую мы установили в "текст«ценность и WhisperExecutable указание переменной Имя исполняемого файла Whisper. Таким образом, если мы хотим использовать то же решение в будущем для создания файлов субтитров SRT вместо документов TXT или обновления Шепотом/переключившись на другое приложение, мы можем настроить значения этих переменных в одном месте, а не во всем. сценарий.
OutputFormat = txtWhisperExecutable = шепот
Настройка параметров пользователя
При использовании Whisper в командной строке три его флага позволяют определить:
- если ты делаешь перевод или транскрипция
- Аудио файл язык
- Язык модель вы хотите использовать (доступны различные размеры, каждый из которых влияет на производительность и качество результатов).
Самый простой способ предложить ту же функциональность через графический интерфейс — использовать проверенные раскрывающиеся списки. Синтаксис добавления раскрывающегося списка в графический интерфейс AutoHotkey следующий:
Графический интерфейс, Добавить, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|
Исходя из этого, добавим в наш скрипт три выпадающих списка для выбора языка Whisper (между английский/en и греческий/el), модель (крошечная, базовая, маленькая, средняя, большая) и тип задачи (расшифровка или переводить).
Графический интерфейс, Добавить, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Графический интерфейс, Добавить, DropDownList, x175 y5 w165 h100 vSelectedModel, крошечный|базовый|маленький||средний|большой|
Графический интерфейс, Добавить, DropDownList, x345 y5 w165 h100 vTaskType, расшифровать||перевести|
Чтобы установить параметр в качестве выбора по умолчанию, используйте символ двойной вертикальной черты ("|") после него. Вы можете видеть, что в нашем примере мы установили наш язык на en, SelectedModel в маленький, и TaskType для расшифровывать.
Как направлять шепот
Поскольку Whisper основан на искусственном интеллекте, невозможно полностью контролировать, как Whisper транскрибирует звук. Он свободен выбирать то, что считает оптимальным.
Однако, как и другие решения для искусственного интеллекта, Whisper может принимать запросы пользователя. Создавая подсказку, вы можете «направлять», как она расшифровывает ваш звук.
Решение, которое мы делаем, не смогло правильно расшифровать что-то? Вы можете попробовать «объяснить» Whisper, «что такое голосовой файл», включая синтаксис слов, акронимов и фраз в вашей подсказке, как вы хотите, чтобы они отображались в транскрипции. Для этого мы добавим поле AutoHotkey Text Edit.
Синтаксис не слишком отличается от того, что мы использовали для добавления раскрывающихся списков выше:
Графический интерфейс, добавить, изменить, x5 w505 h400 vPromptText, %PromptText%
«%PromptText%» в конце «указывает» AHK отображать содержимое переменной PromptText (если ей уже присвоено значение) в текстовом поле. Он ничего не покажет в сценарии, который мы делаем, но считайте его заполнителем, когда вы в конечном итоге настроите сценарий в будущем, а также для сохранения и загрузки подсказок!
Предпочитаете ли вы присвоить предопределенное значение Текст подсказки переменная? Добавьте что-то вроде следующего в Переменные раздел сценария. Не забудьте заменить «Ваше имя» на ваше настоящее имя.
PromptText = Расшифровка заметок вашего имени
Настройка кнопок действий
Для выбора файлов, папок и запуска Whisper после того, как мы все настроим, лучше использовать кнопки. Вы можете добавить кнопки в интерфейс, созданный AHK, используя следующее:
Графический интерфейс, Добавить, Кнопка, xPosition yPosition wWidth hHeight gFunction_To_Perform, Текст кнопки
Обратите внимание, что в отличие от переменных в элементах GUI, которые начинаются с буквы «v», имена функций начинаются с «g», что означает «Перейти (к этому месту сценария)».
Единственная кнопка интерфейса AHK также может считаться «кнопкой по умолчанию», которая будет активирована, если вы не нажмете нигде в графическом интерфейсе и не нажмете Входить. Это определяется добавлением "по умолчанию" в разделе координат и функций, как вы заметили в нашей кнопке "ОК":
Графический интерфейс, Добавить, Кнопка, x5 w505 h50 gSelectFile, Нагрузка FileGui, Добавлять, Кнопка, x5 w505 h50 gSelectFolder, ВыбиратьВыход Папка
графический интерфейс, добавить, кнопка, По умолчанию x5 w505 h50 gButtonSubmit, OK
С учетом вышеизложенного мы определяем три кнопки:
- Один с надписью "Загрузить файл", который при нажатии запустит Выберите файл функция.
- Один с надписью "Выберите выходную папку", который будет запускать Выберите папку функция.
- Один с надписью "ХОРОШО", выбранный по умолчанию, "вызов" КнопкаОтправить функция.
Как показать свой графический интерфейс
Наш графический интерфейс готов, но не появится на нашем экране, потому что мы не «сказали» AutoHotkey показать его или что должна делать каждая кнопка.
Для этого добавьте следующие две строки ниже тех, которые определяют ваш графический интерфейс:
Графический интерфейс, ПоказатьВозврат
Первая строка «говорит» AHK показать окно графического интерфейса, а вторая отмечает конец раздела.
Функции и возможности нашего приложения
Хотя мы завершили раздел графического интерфейса, если вы попытаетесь запустить скрипт, произойдет сбой. Это потому, что мы ссылаемся на несуществующие функции. Итак, наш следующий шаг — создать эти функции.
Нам нужны три функции:
- Выберите входной файл.
- Выберите выходную папку, в которой будет храниться расшифрованный файл.
- Создайте команду, которая «соберет» все переменные в пригодную для использования команду Whisper, похожую на ту, которую мы набираем сами в терминале, а затем запустим ее.
Выбор входного файла
Первая функция, которую мы уже назвали "Выберите файл" когда мы добавили его кнопку в графический интерфейс, это:
Выберите файл:FileSelectFile, SelectedFileReturn
ФайлВыбратьФайл — это функция AutoHotkey, которая отображает типичный запросчик файлов, позволяя пользователю выбрать файл. Выбранный файл — это переменная в нашем скрипте, которая будет «удерживать» путь к файлу, выбранному пользователем.
Однако, как вы увидите на наших снимках экрана, мы также добавили следующую строку прямо над окончанием функции «return»:
MsgBox, %SelectedFile%
Это заставит AHK показать Окно сообщения с выбранным файлом после того, как мы его выберем, что полезно при устранении неполадок вашего скрипта. Если в этом окне сообщения отображается путь и имя выбранного файла, это не кнопка выбора файла или функция, требующая исправления.
Выбор выходной папки
Функция выбора папки почти идентична, меняется только имя команды и переменная, чтобы показать, что мы имеем дело с папками, а не с файлами:
SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Возвращаться
Последняя функция
Последняя функция будет самой сложной. Сопоставленная с кнопкой OK, она «соберет» все значения переменных из графического интерфейса, превратит их в пригодную для использования команду, а затем запустит ее.
Начнем с указания начала и конца функции:
КнопкаОтправить:Возвращаться
Чтобы «захватить» все значения графического интерфейса, добавьте следующее под КнопкаОтправить линия:
Gui Отправить, не скрывая
Следующая строка создает новую переменную с именем "WhisperFlags". Затем он добавляет к нему все переменные графического интерфейса в качестве флагов для команды Whisper.
WhisperFlags = --initial_prompt "%Подсказка%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%""%SelectedFile%"
Затем мы «скажем» AHK использовать терминал по умолчанию (CMD.exe) для запуска исполняемого файла Whisper (который мы определили с помощью WhisperExecutable переменная) с переменными графического интерфейса (которые теперь "собраны" в едином WhisperFlags переменная).
RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%
Для еще более легкого устранения неполадок мы также добавили msgbox, как и раньше, но также добавили следующую строку:
Буфер обмена = %WhisperExecutable% %WhisperFlags%
Это скопирует в буфер обмена полная команда, выданная CMD. Таким образом, если что-то пошло не так, вместо того, чтобы видеть команду только в одном из окон сообщений AHK, она также будет доступна в вашем буфере обмена.
Откройте терминал, вставьте команду из буфера обмена и проверьте всплывающие ошибки, чтобы выявить потенциальные проблемы.
Например, во время работы над сценарием я изначально забыл заключить подсказку в кавычки. Таким образом, команда не удалась, так как Whisper пытался разобрать подсказку как флаги.
Тестирование и финальные доработки
Вот и все — мы только что создали приложение для транскрипции, используя возможности создания графического интерфейса AutoHotkey и готовое к использованию решение для транскрипции AI.
Попробуйте запустить свой скрипт (дважды щелкните его файл), и вы должны увидеть свой графический интерфейс на своем экране.
- Измените настройки Whisper, используя раскрывающиеся списки вверху.
- Введите краткое описание вашей транскрипции (и некоторые термины) в Быстрый поле.
- Нажмите на Загрузить файл и выберите аудиофайл, который вы хотите транскрибировать.
- Нажмите на Выберите выходную папку кнопку и выберите, где должен храниться созданный текстовый файл.
- Нажмите на ХОРОШО чтобы использовать Whisper в соответствии с настройками вашего графического интерфейса для выбранного аудиофайла и сохранить его транскрипцию в виде текстового файла в выбранной вами папке.
Если все сработало, вернитесь к своему сценарию и либо удалите, либо закомментируйте (добавив «;» в начале) все функции устранения неполадок (окна сообщений и строки копирования в буфер обмена).
Расширение Whisper с помощью AutoHotkey
Правильно установив значения по умолчанию вашего графического интерфейса и, возможно, добавив общую подсказку, вы можете превратить Whisper в решение для расшифровки в три клика: не нужно платить за коммерческие решения, сторонние услуги, возиться со сложными интерфейсами или ввод в терминале.