کدگذاری دیکته صوتی با استفاده از صدای Talon • جاش دبلیو کومئو

اوایل امسال به سندرم تونل کوبیتال مبتلا شدم، یک آسیب فشاری مکرر در هر دو آرنجم. در نتیجه، من به سختی می توانم از ماوس یا صفحه کلید استفاده کنم. بعد از چند دقیقه درد سوزشی در بازوهایم ایجاد می شود. حتی اگر بخواهم استفاده از رایانه خود را به انفجارهای 60 ثانیه ای محدود کنم، ناخواسته اوضاع را بدتر می کنم.
همانطور که می توانید تصور کنید، این یک معامله بسیار بزرگ بود. بهعنوان یک توسعهدهنده نرمافزار، تمام کار من بر این بوده است که بتوانم از صفحه کلید استفاده کنم!
پس از تلاشهای ناموفق فراوان برای حل مشکل با فیزیوتراپی، ارگونومی، بریسها، رژیم غذایی و مکملها، داروهای تجویزی، مکملها، مشاورههای جراحی و یک سری چیزهای دیگر، راهحلی پیدا کردم که به من امکان میدهد بدون استفاده از دستهایم اصلاً کارایی داشته باشم. اکنون تقریباً منحصراً با میکروفون و ردیاب چشم کار می کنم.
در این مقاله، من به شما نشان خواهم داد که این گردش کار چگونه به نظر می رسد و چگونه آن را مطابق با نیازهای خود بهینه کرده ام!
برای اینکه به شما یک ایده سریع از شکل ظاهری آن بدهید، در اینجا یک ویدیوی کوتاه از من در حال نوشتن یک جزء React است:
ما متوجه خواهیم شد که این همه چگونه کار می کند، نگران نباشید اگر هنوز هم چندان منطقی نیست! من بیشتر می خواستم این را در جلو نشان دهم تا نشان دهم چگونه قابل اجرا این فرآیند می تواند باشد.
نرم افزار دیکته مدت زیادی است که وجود داشته است، اما معمولاً فقط برای رونویسی گفتار، اغلب در صنایع قانونی و پزشکی استفاده می شود. کد نوشتن چیز دیگری است زیرا دستورات و قراردادهای زیادی و کلمات غیر دیکشنری وجود دارد.
خوشبختانه نرم افزار تخصصی وجود دارد! من در حال حاضر از Talon استفاده می کنم صدا(در برگه جدید باز می شود)، ابزاری است که به طور خاص برای کمک به توسعه دهندگان نرم افزار طراحی شده است تا به صورت هندزفری کار کنند.
Talon یک نسخه عمومی رایگان دارد، اما چیزهای هیجان انگیز در نسخه بتای خصوصی پولی رخ می دهد. شما می توانید با حمایت از سازنده به دسترسی داشته باشید پاترئون(در برگه جدید باز می شود).
بیایید به نحوه عملکرد این نرم افزار بپردازیم.
پیوند به این عنوانالفبا
اولین چیزی که به عنوان یک کاربر جدید Talon یاد می گیرید این است که چگونه حروف جداگانه را دیکته کنید.
شما معمولا حرف به حرف دیکته نمی کنید، اما گاهی اوقات مفید است، مانند مشخص کردن واحدهای CSS (px، rem، و غیره).
وقتی صحبت از فونتیک به میان می آید، انگلیسی زبان خسته کننده ای است. بسیاری از حروف ما یکسان هستند. دلیلی وجود دارد که اپراتورهای تلفن چیزهایی مانند “M for Mary”، “T for Thomas” را می گویند.
سازمان ملل این مشکل را با آوایی ناتو حل کرد الفبا(در برگه جدید باز می شود)– می دانی، چیز ویسکی-تانگو-فاکستروت. اما این کلمات معمولاً چند هجا هستند و هیچ کس برای آن جاز وقت ندارد. بنابراین Talon شامل نگاشت آوایی خود از (بیشتر) کلمات تک هجا می شود:
-
a– هوا -
b– یک خفاش -
c– کلاهک -
d– یک طبل
وقتی در میکروفون می گویم “طبل”، حرف d طوری نوشته شده که انگار این کلید را روی صفحه کلید فشار داده ام.
شما می توانید حروف را با پیشوند “کشتی” بزرگ کنید. یک “طام کشتی” نواخته خواهد شد. D به جای d.
اعداد به طور معمول از 0 تا 9 گفته می شوند. اگر می خواستم استنباط کنم 1024، من می گویم “یک صفر دو چهار”.
پیوند به این عنوانکلیدهای داغ و دستورات
Talon دارای نگاشت بصری برای اکثر شخصیت های خاص است. command capبه عنوان مثال، برگزار خواهد شد command در حین فشار دادن C کلید کپی کردن در کلیپ بورد control command space کشوی Emoji را در macOS باز می کند زیرا این نقشه سطح سیستم عامل است.
برخی از کلیدها با عبارت های کوتاهتر/شیرین تر نگاشت شده اند. به جای “backspace” می گویم “آشغال”. “حذف” به “دل” تبدیل می شود. اگر از هیچ یک از نگاشت ها راضی نیستید، اتفاقاً همه چیز در Talon قابل ویرایش است.
کلیدهای جهت دار با کلمه “go” پیشوند هستند. اگر بخواهم مکان نما را به سمت چپ ببرم، می گویم go left.
این واقعا آزاردهنده خواهد بود اگر برای یک اضافه عالی نبود: اعداد ترتیبی.
در زبان انگلیسی، عدد ترتیبی عددی است که برای توصیف یک ردیف استفاده می شود، مانند “پنجم”، “نهم” یا “سه صدم”. در Talon از آنها برای تکرار دستورات استفاده می شود. اگر می خواستم بروم 9 فاصله چپ، می گفتم go left ninth.
تعبیرش کمی عجیب است. مطمئناً “برو سمت چپ نه” شهودی تر خواهد بود، اینطور نیست؟ اما nine قبلاً اشغال شده است. عدد تحت اللفظی را خروجی می دهد 9.
این برای همه دستورات کار می کند. اگه خواستم شماره رو بنویسم 1000، من می گویم one zero thirdبرای تکرار 0 شخصیت 3 بار
پیوند به این عنوانفرمت کننده ها
روش سنتی نوشتن جاوا اسکریپت از CamelCase برای متغیرها استفاده می کند. در واقع در مورد نام متغیرها قراردادهای زیادی وجود دارد! Talon یک راه حل برای این دارد: دستگاه های قالب بندی
فرمتکننده دستوری است که جملات را به متن تبدیل میکند. مثلاً وقتی می گویم «شتر سلام دنیا»، نرم افزار خروجی می دهد helloWorld. برعکس، «مار سلام دنیا» تولید می کند hello_world.
اگر میخواهید متنی را بدون تغییر شکل خروجی بگیرید، دستور این است say. “say hello world” نمایش داده خواهد شد. hello world.
قالب ها را می توان تشکیل داد. به عنوان مثال، من از طرفداران UPPER_SNAKE برای ثابت های جاوا اسکریپت هستم:
const DARK_COLORS = {
primary: 'hsl(230deg, 100%, 50%)',
// ...and so on
};
برای خروجی DARK_COLORS، می توانم ترکیب کنم snake و allcaps دستگاه های قالب بندی خروجی “allcaps مار رنگ تیره”. DARK_COLORS.
پیوند به این عنوانحالت فرمان
در حالی که Talon یک “حالت دیکته” دارد، حالت پیش فرض مبتنی بر دستور است. دستورات را می توان به عنوان توابع در نظر گرفت. همه چیزهایی که تا به حال دیده ایم مبتنی بر دستور است.
مثلاً وقتی می گویم focus chrome، مثل تماس گرفتن است focus عملکرد و پاس chrome به عنوان یک استدلال focus دستوری است که برنامه مشخص شده را متمرکز می کند، بنابراین این معادل استفاده از Spotlight برای انتخاب کروم است.
focus آیا این یک جعبه سیاه بومی نیست که در Talon ساخته شده است. بخشی از مجموعه دستورات جامعه است. من به منبعی که در پایتون نوشته شده است دسترسی پیدا کرده و ویرایش می کنم:
class Actions:
def switcher_focus(name: str):
"""Focus a new application by name"""
for app in ui.apps():
if name in app.name and not app.background:
app.focus()
break
قدرت واقعی Talon توانایی است دستورات خود را ایجاد کنید. این مجموعه ای از API ها را برای تعامل با سیستم عامل و کاراکترهای خروجی ارائه می دهد. من ده ها ابزار مفید برای توسعه جلویی ایجاد کرده ام، و انتظار دارم با ادامه استفاده از آن، بسیاری دیگر را اضافه کنم.
می توانید با استفاده از دستورات YAML مانند دستورات ساده “say X to produce Y” را اضافه کنید:
react: insert("import React from 'react';")
وقتی می گویم “واکنش کن”، نرم افزار خروجی می دهد import React from 'react';.
برای دستورات پیچیده تر، می توانید توابع پایتون را بنویسید. به عنوان مثال، وقتی می گویم “دکمه سبک، دکمه مد” چه اتفاقی می افتد:
const FancyButton = styled.button`
| Cursor placed here
`;
کلمه دوم button، به مجموعه شناخته شده ای از عناصر HTML نگاشت می شود. کلمات زیر، fancy button، UpperCamelCased هستند و برای نام کامپوننت استفاده می شوند. مقداری فضای خالی اضافه می کند و مکان نما را به مکان مناسب منتقل می کند.
در اینجا کد منبع Python برای دستور آمده است:
@ctx.capture(rule='styled ')
def create_styled_component(m):
component_name = actions.user.formatted_text(
m.text,
'PUBLIC_CAMEL_CASE'
)
return f'const {component_name} = styled.{m.html_elements}``'
و این هم نقشه Talon:
:
insert(create_styled_component)
key('left enter enter up tab')
برنامه نویسی دستورات Talon از حوصله این مقاله خارج است. اگر علاقه مند هستید، Talon غیر رسمی را بررسی کنید اسناد(در برگه جدید باز می شود). همچنین می توانید با مطالعه نحوه اجرای دستورات موجود چیزهای زیادی بیاموزید.
شما همچنین می توانید من را بررسی کنید چنگال(در برگه جدید باز می شود) از دستورات، که شامل تمام موارد React است که من اضافه کردهام – اما آگاه باشید که آشفته، ناقص و مستند ضعیف است.
پیوند به این عنوانهوموفون
مهم نیست که چقدر تشخیص گفتار خوب باشد، همیشه ابهاماتی وجود خواهد داشت که حل آنها دشوار خواهد بود.
به عنوان مثال، اگر بگویم “سایت من را بررسی کنید”، منظورم این است؟ site یا sight? یا احتمالا cite??
برای رفع این ابهامات، Talon شامل یک phones دستور:
جایگزین ویدیو: ویرایشگر کد صفحه خالی. من برای نوشتن این متن می گویم “بگو سایت من را بررسی کن” اما به صورت “نگاهم را بررسی کن”. من آخرین کلمه را انتخاب می کنم، “مشاهده”و کلمه “تلفن” را بگویید. یک منو با یک لیست شماره دار شامل 3 املای ممکن ظاهر می شود: نقل قول، مشاهده و سایت. گزینه سوم گزینه ای است که من می خواهم، بنابراین می گویم “3 را انتخاب کنید”.
و برنامه جایگزین کلمه می شود.
من در مورد این ترفند از کنفرانس شگفت انگیز امیلی شی، Perl Out، یاد گرفتم به شدت(در برگه جدید باز می شود).
علمیتخیلیترین بخش راهاندازی من، سیستم ردیابی چشم من است.
من از tobii استفاده می کنم 5(در برگه جدید باز می شود). این یک نوار با سنسور مادون قرمز است و حرکات چشم شما را ردیابی می کند. ضربه زدن به جلوی مانیتور:
جالب اینجاست که به عنوان جایگزین ماوس به بازار عرضه نشده است. این برای کاربران ویندوز برای برخی از بازی های مسابقه ای طراحی شده است. اما Talon – همان نرم افزاری که من برای دیکته استفاده می کنم – شامل درایورهای MacOS سفارشی است که به آن اجازه می دهد به عنوان جایگزین ماوس عمل کند.
کلیک کردن یک فرآیند دو مرحله ای است. ابتدا به جایی که می خواهید کلیک کنید نگاه می کنید و با دهان خود صدایی در می آورید. این خیلی بزرگنمایی میکند و به شما این امکان را میدهد که با کلیک کردن خود واقعاً دقیق باشید. پنجره دوم یک کلیک چپ انجام می دهد:
ویدیوی جایگزین: من با استفاده از یک ردیاب چشم و تعداد زیادی صداهای کوچک در حال گشت و گذار در این وب سایت هستم.
دستورات دوبار کلیک، کلیک راست و کشیدن و رها کردن وجود دارد. کمی عادت می کند، اما به طرز شگفت انگیزی خوب کار می کند. دقت به اندازه کافی برای انجام برخی از کارهای بسیار دقیق خوب است.
Tobii 5 با قیمت 229 دلار به فروش می رسد. شما همچنین می توانید سعی کنید یک tobii 4C پیدا کنید که قرار است تجربه Talon نرم تری را ارائه دهد، اما آنها واقعا کمیاب هستند.
تاکنون فقط نوک کوه یخ آموختههایم را به اشتراک گذاشتهام، و چیزی که یاد گرفتهام فقط نوک یک کوه یخ بزرگتر است – Talon یک ابزار واقعا قدرتمند است، و من هنوز در حال کشف آن هستم. گرفت سال برای اینکه با کیبورد مهارت پیدا کنم، بنابراین من هنوز در سفر دیکته خود خیلی زود هستم.
در واقع، من می گویم که کل این صنعت کلبه کاملاً جدید است. Talon یک فناوری فوقالعاده است و قبلاً تأثیر مثبت زیادی در زندگی من داشته است، اما فکر میکنم پتانسیل و فرصت زیادی در پیش است.
Talon هر روز به پیشرفت خود ادامه می دهد – از یک الگوریتم یادگیری ماشین اختصاصی برای مدیریت تشخیص گفتار استفاده می کند و من قبلاً پیشرفت قابل توجهی در آن دیده ام. محصولات دیگر مانند سرناد(در برگه جدید باز می شود) آنها همچنین بسیار جذاب به نظر می رسند.
در همین حال، شرکت هایی مانند Neuralink(در برگه جدید باز می شود) در حال کار بر روی ایجاد یک “ارتباط مستقیم” بین مغز ما و فناوری روزمره هستند. به نظر می رسد علمی تخیلی است، اما به زودی ممکن است بتوانم رمز وجودم را “فکر کنم” ✨😮✨
می توانم بگویم که احتمالاً با 50 درصد سرعت عادی خود می دومسرعت تایپ من احتمالاً 25٪ است اما سرعت فکر من بدون تغییر است!. اکنون، این بدان معنا نیست که من 50 درصد از نتایج را تولید می کنم. این فقط به این معنی است که باید کمی بی رحمانه تر اولویت بندی کنم.
من شنیده ام که یادگیری Vim می تواند این کار را بسیار کارآمدتر کند. بسته به مدت زمان مصدومیت من، ممکن است یک سوئیچ در نظر بگیرم.
بزرگترین مشکلی که تا به حال پیدا کرده ام فشار در صدا است. من عادت ندارم 8 ساعت در روز صحبت کنم! من حدس میزنم که باید تحمل کنم و امیدوارم با گذشت زمان بهتر عمل کنم.
چند هفته اول سخت بود. علاوه بر اینکه تالون کند و خسته کننده است، زمانی که دستورات خود را می نویسید بهترین عملکرد را دارد. در تلاش برای تنظیم آن به خودم صدمه می زنم. توانایی پیکربندی Talon با صدا یک نقطه عطف واقعی بود و از آن زمان همه چیز بسیار روان تر شده است.
راستش را بخواهید، این خیلی راحت بود که متوجه شدم برای انجام کارم به دستانم نیازی ندارم. من اخیرا شنیدم که کنت سی دادز و جوئل هوکس با سر تخم مرغ صحبت می کردند پادکست(در برگه جدید باز می شود) در مورد اینکه چگونه کنت از آسیب رساندن دستانش به خود جلوگیری می کند زیرا به عنوان یک توسعه دهنده و مربی نرم افزار برای او درآمد کسب می کنندبعد از حدود 6 دقیقه. من قبلا همین حس رو داشتم ولی الان میبینم که با کمی اراده و تکنولوژی عالی هیچ چیز جلوی من رو نمیگیره💖
چیز دیگری وجود دارد که می خواهم در مورد آن صحبت کنم، و کمی سرگرم کننده است.
نکته اینجاست: شما به احتمال زیاد به سندرم تونل کوبیتال مبتلا نمی شوید. حتی اگر این کار را انجام دهید، احتمالاً پس از چند هفته خود به خود از بین می رود. بسیاری از موارد خود به خود برطرف می شوند و اکثر آنها به خوبی به درمان محافظه کارانه پاسخ می دهند. من یک مورد لبه هستم.
با این حال، در مقطعی از زندگی، احتمالاً نوعی ناتوانی، چه موقت و چه دائم، را تجربه خواهید کرد. تقریباً همه ما این کار را خواهیم کردبهترین سناریو این است که ما آنقدر پیر شویم که از دست دادن بینایی و کاهش مهارت های حرکتی را تجربه کنیم..
خیلی آسان است که در دام فکر کردن در مورد دسترسی به عنوان چیزی که تأثیر می گذارد گرفتار شوید افراد دیگر، یک گروه انتزاعی فرضی. من میدانستم که دسترسی برای سالها مهم بوده است، اما به نظرم کاملاً نامشخص بود. من هرگز ندیده ام که کسی برای استفاده از چیزی که من ساخته ام تلاش کند، زیرا از آزمایش آن بدون ماوس یا صفحه کلید غافل شده ام. الان فوری تر به نظر می رسد.
من هنوز فوقالعاده ممتاز هستم و نمیخواهم شرایطم را با دیگران مقایسه کنم. اما این تجربه دریچه ای به من داد تا تلاش کنم روی اینترنت کار کنم که با مکانیزم های ورودی جایگزین طراحی نشده است. قبل از اینکه با ردیاب چشم آزاد شوم، همه چیز اینگونه بود دشوار است. و بعضی چیزها برای من خیلی سخت تر از اونها بود.
اینترنت به یک زیرساخت حیاتی تبدیل شده است. این بخشی ضروری از زندگی در جامعه مدرن است و باید در دسترس باشد! بهعنوان توسعهدهندگان فرانتاند، وظیفه ما محافظت از آن است و اطمینان حاصل میکنیم که با در نظر گرفتن اصول دسترسی، ساخت میکنیم.
اگر می خواهید در مورد دسترسی بیشتر بدانید، توصیه می کنم آن را بررسی کنید a11y.قهوه(در برگه جدید باز می شود).
من از این تجربه چیز دیگری یاد گرفتم: باید چیزهایی را که برایم مهم هستند اولویت بندی کنم!
یکی از اولین برنامه های وب که ساختم یک پلتفرم آموزشی بود. این حدود یک دهه پیش بود و با PHP، MySQL و jQuery ساخته شد.
وقتی خان را کشف کردم از این محصول صرف نظر کردم آکادمی(در برگه جدید باز می شود)، که اساساً همان کاری بود که من انجام می دادم، اما بسیار بهتر بود. بعداً به عنوان مهندس نرمافزار در آکادمی خان مشغول به کار شدم و برخی از کاملترین فعالیتهای حرفهام را تکمیل کردم.
مدتهاست تصور می کردم که در مقطعی کار خودم را در آموزش شروع کنم. با وجود اینکه سال ها انگیزه انجام این کار را داشتم، آن را به تعویق می انداختم. این تجربه چیز ارزشمندی به من آموخت: زمان بی نهایتی در پیش رو ندارم. اگر کاری هست که بخواهم انجام دهم، باید همین الان انجامش دهم، چون ممکن است بعدا نتوانم آن را انجام دهم.
چند هفته پیش، شغلم را به عنوان مهندس نرم افزار ارشد در Gatsby Inc ترک کردم تا این رویا را دنبال کنم. اولین پروژه من یک دوره آنلاین تعاملی است که مهارت های CSS را برای توسعه دهندگان پیشرفته JS آموزش می دهد. من دیده ام بنابراین ناامیدی زیادی در مورد CSS وجود دارد، و هدف این است که به شما اعتماد به نفس کامل بدهد، توانایی اعمال هر طرح بندی و ایجاد انواع تجربه های عالی و سطح بعدی را داشته باشید.
می توانید در CSS برای جاوا اسکریپت در مورد این موضوع بیشتر بیاموزید توسعه دهندگان(در برگه جدید باز می شود) سایت
مایلم از دو دوست و همکاران سابق که ایده دیکته را به من پیشنهاد کردند تشکر کنم: آمبرلی(در برگه جدید باز می شود) و مدالین(در برگه جدید باز می شود). مطمئن نیستم که این ایده هرگز به ذهنم خطور کرده باشد!
من همچنین از دو کنفرانس با این موضوع الهام گرفتم:
آخرین به روز رسانی از
7 فوریه 2025


