Программное обеспечение для распознавания голоса для разработчиков
Ну, наконец, документы сказали, что мне нужно немного расслабиться на запястье в течение нескольких месяцев. Поскольку я являюсь разработчиком.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# или других. Я начинаю с полностью пустого словарного запаса и строю его с нуля в соответствии со своими потребностями (именно поэтому я использую профессиональную версию).
Вот основные шаги (предполагается, что вы уже создали и обучили пользователя):
- Создайте новый словарь на основе "Базовое общее - Пустой диктант".
- Не заставляйте его сканировать ваши документы или электронную почту.
- Добавьте списки ключевых слов с произношением, специфичным для вашего языка программирования (Dim, ByVal\by-val и т. Д.).
- Создайте.txt документ, который содержит весь ваш код без комментариев.
- Соберите слова из этого документа и добавьте их с произношением.
- Используйте документ для обучения языковой модели словаря.
Я напишу что-нибудь более подробно, когда у меня будет шанс, если кому-то будет интересно.
Редактировать:
Вот как нужно диктовать код SQL. Созданный здесь список слов может быть включен в другие словари, если вы разработчик базы данных.
Другая идея состоит в том, чтобы найти другого хорошего разработчика для сопряжения программы. Это сработало очень хорошо для меня. Я успокаиваюсь, не замедляясь, не получая код лучшего качества или, по крайней мере, не пересматривая его.
Для всех пользователей Linux, я хотел бы поделиться некоторыми ссылками.
Давайте начнем с Саймона - открытого программного обеспечения для распознавания речи:
- Саймон слушает - некоммерческая организация для исследований и ученичества
- Саймон: распознавание речи с открытым исходным кодом - связанный блог
- Инструментарий распознавания речи HTK - внутренний движок
- Открытый словарь Большой словарь CSR Engine Юлиус
- Не на шлэшдот про симонов
и некоторые другие:
- http://live.gnome.org/GnomeVoiceControl
- https://wiki.ubuntu.com/SpeechRecognition
- http://en.wikipedia.org/wiki/Speech_recognition_in_Linux
- VoiceCode
а также
Я знаю, что я немного не в теме, и ничего не знаю о программном обеспечении распознавания голоса; Тем не менее, вы можете найти полезным изучить возможность изменения клавиатуры на раскладку Dvorak, что, как я слышал, намного лучше на запястьях.
Что касается запястья, я научился использовать мышь обеими руками около 10 лет назад.
Это на удивление легко и существенно снимает напряжение. В настоящее время я использую ноутбук, и нажатие кнопки сенсорной панели напрягает мой большой палец.
Быть осторожен. Эти проблемы могут длиться гораздо дольше, чем можно было бы подумать.
PS Вы можете добавить тег "эргономика" или что-то еще - можно увидеть заголовок о разработке для распознавания голоса.
Я попробовал Дракон пару лет назад, и это был кошмар смешанных слов и фраз - не рекомендуется. Я понимаю, что это было лучшее, что происходило в тот момент, поэтому я не оптимистичен.
Как соучастник, рекомендации будут:
- Найти работу, которая требует как можно меньше ОТ
- Попробуйте различные клавиатуры. По моему опыту, работа на ноутбуке полный рабочий день работала лучше всего.
- Запустите программу тяжелой атлетики.
Золотой стандарт для голосового программирования - VoiceCode. Если я правильно помню, они поддерживают C++ и Python.
Как упоминалось выше, Dragon Naturally Speaking - лучшее программное обеспечение для распознавания речи, однако Microsoft Speech Recognition не сильно отстает и поставляется в комплекте с Vista.
Vocola недавно была портирована на MSR и имеет функцию интеграции.Net.
Несколько советов
- Обучение диктовать занимает некоторое время. Только то, что вы можете говорить, не означает, что вы знаете, как использовать программное обеспечение для распознавания речи
- Освоить комбинацию SR и клавиатуры / мыши намного проще, чем полноценную работу без помощи рук.
- Используйте CodeRush или эквивалентный для ввода меньше.
Я начал использовать левую руку для мыши, это не только немного помогло мне, но и позволило мне более свободно использовать правую руку, если вы пишете много вещей, в то время как вы пишете код, это вам очень помогает... вы можете прокручивать и записать одновременно...
Когда у меня начались проблемы, я положил под запястье мешок с водой, мне очень понравилось! сумка, которая у меня была, была идеальной, она была длинной, и я положил ее перед клавиатурой, чтобы я мог положить туда свои запястья... пока однажды я не наступил на нее...
Дракон, естественно говорящий, предпочитаемый и Вокола. AutoHock для автоматизации как можно больше. Не так просто программировать. Я старался; почти невозможно. Проверьте исцеляющую боль в спине Джона Сарно. Это сделало меня лучше. Я вернулся к программированию весь день!
Еще один немного не по теме здесь, я обнаружил, что разделение кейборда на две части и другие специальные клавиатуры помогает, только проверять кинезис. Я собрал информацию о таком оборудовании в diigo:
- http://www.diigo.com/user/wierzowiecki/keyboard%20ergonomics
- http://www.diigo.com/user/wierzowiecki/keyboard%20rsi.
Как насчет прямых ссылок:
- 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/ - это тоже выглядит интересно
- Я считаю, что есть много других интересных решений
Еще кое-что! Помните о перерывах для упражнений. Регулярные упражнения (например, небольшие упражнения - каждые полчаса, которые отличаются друг от друга) действительно улучшают ситуацию!
- http://www.workrave.org/ - это напомнит вам о перерывах;)
Скотт Хансельман совсем немного использует распознавание голоса.
Я использовал Dragon Dictate в 1996 году по той же причине, что и вы. Это было медленно, но лучше, чем не работать. Мне было легче писать код, заполняя код 4x8, а затем заставляя кого-то другого печатать его. Затем я использовал DD для отладки.
И пока вы занимаетесь этим, вы можете посмотреть книги Деборы Квилтер о RSI. Они очень информативны.
Я не могу найти ссылку на один (я смотрел), но есть клавиатуры только с 5 клавишами, позволяющими печатать одной рукой, я предполагаю, что у вас только одно плохое запястье.
Если я найду ссылку, я постараюсь отправить вам сообщение.