Слово, которое уходило за вами в другое окно
Вы набирали слово, уходили в другое окно, не нажав пробел, — и следующее слово приклеивалось к предыдущему. «перевод» и «В» приходили в приложение одним словом «переводВ», и оно послушно исправляло эту пару.
Почему это так долго оставалось незамеченным: приложение следило за тем, какая программа активна, и спрашивало об этом систему два раза в секунду. Два окна одной программы были для него неразличимы, быстрый Alt+Tab он не успевал заметить, а щелчок в соседнее поле того же окна не оставлял в потоке клавиш вообще никакого следа.
Теперь оно смотрит на три вещи и делает это на каждом нажатии клавиши, а не по таймеру: какое окно впереди, был ли щелчок мыши, была ли долгая пауза. Одно сделано намеренно: если переключиться в другое окно, ничего там не набрать и вернуться — недописанное слово останется на месте. Контекст обрывает набор в другом месте, а не сам факт ухода.
Пунктуация, которая пропадала
"одно превращалось в одно — открывающая кавычка исчезала. Проверка орфографии умела отрезать знаки в конце слова и не умела в начале, поэтому кавычка попадала в проверку как часть слова, возвращалась оттуда «опечаткой», и замена печатала на один символ короче. Теперь всё, что стоит перед словом — кавычки, скобки, тире, — остаётся на месте.
Словарь, который переводил
Кто-то увидел, как «нейросеть» посреди русской фразы превращается в «neural-network», и спросил, как выключить словарь совсем. Вопрос справедливый.
Таблица существует ради одного: английское слово, написанное русскими или ивритскими буквами — хелло, плиз, сенкс, — возвращается по-английски. Шестнадцать записей делали не это. Они соединяли русское слово с его переводом: кнопка → button, таблица → table, шаблон → template. Три были откровенно ложными друзьями: «дата» становилась data, хотя дата — это date; «митинг» становился meeting, хотя митинг — это rally. Все шестнадцать убраны.
И вторая половина, которая полезнее первой. Галочка, управляющая всем этим, называлась «Включить словарные коррекции транслитерации» — по такому названию догадаться было невозможно. Теперь она называется «Заменять английские слова, написанные русскими или ивритскими буквами (хелло → hello)» и живёт в Консоли, в разделе «Поведение». Снимите её — встроенная таблица замолчит целиком, а ваш собственный словарь продолжит работать.
Языки, которых вы не устанавливали
Некоторым предлагались иврит и немецкий на машинах, где есть только русский и английский. Происходит вот что: приложение спрашивает Windows, какие раскладки установлены, и не получает ответа — ни от системного вызова, ни из реестра. Пустой ответ мы читаем как «не смогли узнать», а не «раскладок нет», и включаем все языки, потому что приложение, которое не может предложить ничего, бесполезно.
Этот запасной путь остаётся. Меняется то, что он перестал происходить молча: теперь приложение говорит об этом уведомлением и открывает раздел «Языки», а в журнал пишет, какой именно из двух источников не ответил. Отметьте языки руками — и вопрос закрыт навсегда: явный список сильнее неудавшейся догадки.
Стоит добавить последствие, потому что заметили именно его: лишний язык — это лишний кандидат. Слово «утеук» — «enter», набранное в русской раскладке, — получало 0.97 уверенности за иврит и оставалось неисправленным.
Встречи: расшифровка, которая возвращалась пустой
Запись на 42 минуты возвращалась ничем. Не хуже обычного — совсем пустой, уже после того, как работа была сделана. Расшифровка отправляет пачки параллельно; лишние получали отказ, и один такой отказ обрывал весь прогон и уносил с собой одиннадцать уже готовых пачек.
Теперь три вещи. Сбойная пачка становится помеченным пропуском внутри расшифровки, а не концом прогона, — и её видно в файле, а не «здесь просто никто не говорил». Второй проход досылает ровно отказанные пачки, по одной: единственное, что с ними было не так, — они шли одновременно. И сдаёмся мы теперь только после шести неудач подряд без единого успеха между ними — это то, что отличает аварию у провайдера от занятой минуты.
И ещё, коротко
Готовая запись хранится в 16 кГц — ровно втрое меньше: встреча на 95 минут занимает 349 МБ вместо 1046 МБ. Тем, кто пишет со звуковой карты музыку, оставлена настройка.
Расшифровка идёт несколькими пачками сразу: десять минут звука — 160 секунд вместо 287.
И пересчёт частоты, который кормит распознавание, наконец получил фильтр — под голосами сидел слой песка, теперь он на 34–42 дБ тише.