Программное обеспечение для распознавания голоса для разработчиков

Ну, наконец, документы сказали, что мне нужно немного расслабиться на запястье в течение нескольких месяцев. Поскольку я являюсь разработчиком.NET, это может на некоторое время покончить с моей жизнедеятельностью, чего я не хочу делать. Тем не менее, есть ли хорошие варианты громкой связи для разработчиков? Кто-нибудь имел успех, используя какое-либо программное обеспечение для распознавания речи?

ПОСТСКРИПТ: Я снова поднял руку до такой степени, что двуручное программирование не является проблемой. Естественно, что Dragon работал достаточно хорошо, но работал медленнее, не так, как клавиатура, на которой я программировал быстрее, чем думал.

16 ответов

Решение

Это там, и это работает...

Существует довольно много программ по распознаванию речи, из которых, как мне кажется, Dragon NaturallySpeaking является одной из наиболее широко используемых. Я использовал это сам, и был впечатлен его качеством. Пару лет назад я думаю, что к настоящему времени ситуация улучшилась еще больше.

... но это не легко...

Хотя это работает на удивление хорошо, я не скажу, что это простое решение. Обучение программе занимает время, и даже в этом случае она будет совершать ошибки. Он кропотливо медленный по сравнению с набором текста, поэтому мне приходилось повторять про себя: "Не хватай клавиатуру, не хватай клавиатуру..." (после чего я все равно схватил бы клавиатуру). Я сам немного бормотал, что тоже не улучшало ситуацию;-). Особенно первые недели могут быть неприятными. У вас могут возникнуть проблемы с голосом, если вы слишком сильно напрягаете голос.

... особенно для программистов!

В общем, это, безусловно, работоспособное решение для людей, пишущих нормальный текст / прозу. Как программист, вы находитесь в совершенно другой сфере, для которой нет реальных решений. К настоящему времени все могло измениться, но я бы удивился, если бы они изменились.

В чем проблема? Большая часть программного обеспечения SR предназначена для распознавания нормального языка. Программисты пишут очень загадочные вещи, и трудно, если не невозможно, найти программное обеспечение, которое выполняет преобразование между обычным языком и кодом. Например, как бы вы продиктовали:

if (somevar == 'a')
{
   print('You pressed a!');
}

Использование команд в вашей средней программе SR, это огромная боль: "если пробел слева скобка знак равенства знак апостроф заклинание апостроф...". И я даже не говорю о навигации вашего кода. Вы когда-нибудь замечали, сколько вы используете клавиатуру во время программирования, и насколько это использование отличается от того, как "обычный" пользователь использует клавиатуру?

Как сделать лучшее из этого

До сих пор я работал только с Dragon NaturallySpeaking (DNS), поэтому могу говорить только за этот продукт. Есть несколько интересных дополнений и сайтов, предназначенных для таких людей, как программисты:

  • Vocola - неофициальный плагин, который позволяет вам легко добавлять свои собственные команды в DNS. Я нашел это необходимым, в основном. Вы также сможете найти наборы команд, написанные другими программистами, например, для навигации по коду. Он основан на программном пакете, написанном на Python, поэтому существуют также более продвинутые и модные пакеты. Также проверьте страницу Ресурсов Vocola. (Предупреждение: когда я его использовал, были некоторые проблемы с установкой Vocola; за информацией обращайтесь к группе новостей ниже!)
  • http://speechcomputing.com/ - это форум / группа новостей с множеством интересных обсуждений. Хорошее место для начала.

Заключительные замечания

Похоже, что лучшее решение этой проблемы, на самом деле:

  • Найдите способы обойти реальное кодирование.
  • Попробуйте восстановить. Я с некоторой неохотой рекомендую эту книгу, но она, кажется, работает на удивление хорошо для людей с RSI/ запястным туннелем и другими проблемами хронической боли: JE Sarno, рецепт Mindbody. Я работаю с этим прямо сейчас, и я думаю, что это определенно стоит прочитать.

Я диктую VB.net и TSQL, используя Dragon NaturallySpeaking 10 Professional. VB.net по своей природе ближе к "разговорному" языку, но я не вижу причин, по которым он не мог бы работать на C# или других. Я начинаю с полностью пустого словарного запаса и строю его с нуля в соответствии со своими потребностями (именно поэтому я использую профессиональную версию).

Вот основные шаги (предполагается, что вы уже создали и обучили пользователя):

  1. Создайте новый словарь на основе "Базовое общее - Пустой диктант".
  2. Не заставляйте его сканировать ваши документы или электронную почту.
  3. Добавьте списки ключевых слов с произношением, специфичным для вашего языка программирования (Dim, ByVal\by-val и т. Д.).
  4. Создайте.txt документ, который содержит весь ваш код без комментариев.
  5. Соберите слова из этого документа и добавьте их с произношением.
  6. Используйте документ для обучения языковой модели словаря.

Я напишу что-нибудь более подробно, когда у меня будет шанс, если кому-то будет интересно.

Редактировать:

Вот как нужно диктовать код SQL. Созданный здесь список слов может быть включен в другие словари, если вы разработчик базы данных.

Другая идея состоит в том, чтобы найти другого хорошего разработчика для сопряжения программы. Это сработало очень хорошо для меня. Я успокаиваюсь, не замедляясь, не получая код лучшего качества или, по крайней мере, не пересматривая его.

Я знаю, что я немного не в теме, и ничего не знаю о программном обеспечении распознавания голоса; Тем не менее, вы можете найти полезным изучить возможность изменения клавиатуры на раскладку Dvorak, что, как я слышал, намного лучше на запястьях.

http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard

Что касается запястья, я научился использовать мышь обеими руками около 10 лет назад.

Это на удивление легко и существенно снимает напряжение. В настоящее время я использую ноутбук, и нажатие кнопки сенсорной панели напрягает мой большой палец.

Быть осторожен. Эти проблемы могут длиться гораздо дольше, чем можно было бы подумать.


PS Вы можете добавить тег "эргономика" или что-то еще - можно увидеть заголовок о разработке для распознавания голоса.

Я попробовал Дракон пару лет назад, и это был кошмар смешанных слов и фраз - не рекомендуется. Я понимаю, что это было лучшее, что происходило в тот момент, поэтому я не оптимистичен.

Как соучастник, рекомендации будут:

  1. Найти работу, которая требует как можно меньше ОТ
  2. Попробуйте различные клавиатуры. По моему опыту, работа на ноутбуке полный рабочий день работала лучше всего.
  3. Запустите программу тяжелой атлетики.

Золотой стандарт для голосового программирования - VoiceCode. Если я правильно помню, они поддерживают C++ и Python.

Как упоминалось выше, Dragon Naturally Speaking - лучшее программное обеспечение для распознавания речи, однако Microsoft Speech Recognition не сильно отстает и поставляется в комплекте с Vista.

Vocola недавно была портирована на MSR и имеет функцию интеграции.Net.

Несколько советов

  1. Обучение диктовать занимает некоторое время. Только то, что вы можете говорить, не означает, что вы знаете, как использовать программное обеспечение для распознавания речи
  2. Освоить комбинацию SR и клавиатуры / мыши намного проще, чем полноценную работу без помощи рук.
  3. Используйте CodeRush или эквивалентный для ввода меньше.

Я начал использовать левую руку для мыши, это не только немного помогло мне, но и позволило мне более свободно использовать правую руку, если вы пишете много вещей, в то время как вы пишете код, это вам очень помогает... вы можете прокручивать и записать одновременно...

Когда у меня начались проблемы, я положил под запястье мешок с водой, мне очень понравилось! сумка, которая у меня была, была идеальной, она была длинной, и я положил ее перед клавиатурой, чтобы я мог положить туда свои запястья... пока однажды я не наступил на нее...

Дракон, естественно говорящий, предпочитаемый и Вокола. AutoHock для автоматизации как можно больше. Не так просто программировать. Я старался; почти невозможно. Проверьте исцеляющую боль в спине Джона Сарно. Это сделало меня лучше. Я вернулся к программированию весь день!

Еще один немного не по теме здесь, я обнаружил, что разделение кейборда на две части и другие специальные клавиатуры помогает, только проверять кинезис. Я собрал информацию о таком оборудовании в diigo:

Как насчет прямых ссылок:

  • http://www.fentek-ind.com/ergo.htm - разные вещи
  • http://www.kinesis-ergo.com/contoured.htm - Контурные клавиатуры Kinesis Advantage (программируемые!)
  • http://www.kinesis-ergo.com/foot.htm Некоторые педальные переключатели могут быть подключены к клавиатуре (например, для переключения между окнами)
  • http://www.kinesis-ergo.com/freestyle.htm - До сих пор я обнаружил, что даже использование двух обычных клавиатур лучше, чем одной, поэтому я думаю, что разделенный фристайл может также работать
  • http://www.typematrix.com/ - еще одно решение
  • http://www.maltron.com/ - иногда, когда одна рука страдает больше, чем другая, печатать одной рукой
  • http://www.keybowl.com/ - это тоже выглядит интересно
  • Я считаю, что есть много других интересных решений

Еще кое-что! Помните о перерывах для упражнений. Регулярные упражнения (например, небольшие упражнения - каждые полчаса, которые отличаются друг от друга) действительно улучшают ситуацию!

Скотт Хансельман совсем немного использует распознавание голоса.

Я использовал Dragon Dictate в 1996 году по той же причине, что и вы. Это было медленно, но лучше, чем не работать. Мне было легче писать код, заполняя код 4x8, а затем заставляя кого-то другого печатать его. Затем я использовал DD для отладки.

И пока вы занимаетесь этим, вы можете посмотреть книги Деборы Квилтер о RSI. Они очень информативны.

Я не могу найти ссылку на один (я смотрел), но есть клавиатуры только с 5 клавишами, позволяющими печатать одной рукой, я предполагаю, что у вас только одно плохое запястье.

Если я найду ссылку, я постараюсь отправить вам сообщение.

Другие вопросы по тегам