Table of Contents
دستور صدا: آینده برنامه تعامل iOS
دستورات صوتی اساساً تغییر شکل می دهند که چگونه کاربران با برنامه های iOS درگیر می شوند، فراتر از رابط های ساده و ساده برای کنترل دستی، شهودی، با استفاده از API تشخیص گفتار iOS، توسعه دهندگان می توانند بهترین دستورالعمل های گفتار و متن واقعی را ادغام کنند که برنامه ها را در دسترس تر، کارآمد و پیشرفته تر می کند که آیا کنترل صدا برای یک ردیاب تناسب اندام، اجازه می دهد تا به کاربران دسترسی پیدا کند.
آشنایی با iOS Speech Recognition API
سیستم تشخیص گفتار iOS، بخشی از چارچوب [FLT1] [FLT1]، اجازه می دهد تا برنامه ها برای تبدیل صوتی زنده یا پیش ضبط شده به متن، آن را پشتیبانی بیش از 60 زبان و گویش، با موتور تشخیص تشخیص در دستگاه (برای زبان های پشتیبانی) و یا در سرورهای اپل شناسایی دستگاه های آنلاین، که اغلب پردازش شناسایی دقیق تر است.
قابلیت های کلیدی شامل:
- نتایج جزئی در زمان واقعی (استفاده از تشخیص فرمان مترقی).
- پشتیبانی از وسایل نقلیه سفارشی از طریق [FLT:] اموال.
- و در این میان، با استفاده از |AVAudioEngine]]، [[FLT: 1]]، [[FLT: 1]] و [[B|Square]]، [[FLT: 1]]، [[FLT: 1]]، [[FLT: 1]]، [[رده و [[رده:Spattering]].
مهم است که توجه داشته باشید که API برای دستورات کاربر محور طراحی شده و نه برای سناریوهای پیوسته و همیشه لیستینگ (Apple یک حداکثر یک دقیقه در یک وظیفه تشخیص واحد اعمال می کند) این محدودیت باعث می شود که تعامل عمدی و حفظ عمر باتری برای مطالعه بیشتر، مشورت با سند رسمی گفتار و [F:2.
تنظیم گفتار در تشخیص برنامه شما
ادغام تشخیص گفتار نیازمند کنترل دقیق مجوز و تنظیمات جلسه صوتی است.در زیر مراحل ضروری است که با بهترین شیوه ها گسترش یافته است.
۱- پروژه خود را آماده کنید
- [در این باره] به [FLT1] [FLT1] قابلیت در ثبت وamp پروژه خود اضافه کنید؛ قابلیت ها.
- در این میان، از جمله در |NS MicrophonesageDescription]] استفاده کنید. کلید در (به عنوان مثال، این برنامه نیاز به دسترسی میکروفون به دستورات صوتی فرایندی دارد).
- این برنامه شامل |SpeechRecognitionUsageDescription]] است کلید (به عنوان مثال، این برنامه سخنرانی شما را به سرورهای اپل برای تشخیص دستورات ارسال می کند).
توجه: هر دو کلید مورد نیاز هستند حتی اگر قصد دارید از شناسایی دستگاه استفاده کنید – اپل هنوز به رضایت کاربر نیاز دارد.
۲- درخواست مجوز
در ابتدای دوره ی آموزشی خود به نام «فَلَهُمَهُوا» (به عنوان مثال، در «مَلَهُمْهُمْهُمْهُمِهُوا بِنَهُمْهُمْهُمْهُمَهُمْهُمْهُمِهُوا مِهُمِهُمْهُمَهُمْهُوا مِهُوا مِهُوا مِهُوا مِهُوا مِهُوا مِنْهُمْهُمْهُمْهُمْهُمْهُوا مِنْهُمْهُمْهُمْهُوا مِهُمَهُوا مِنَهُمْهُمْهُمْهُوا مِنَهُمِنَهُمْهُمْهُمْهُمْهُمَهُمْهُمَهُمَهُمَهُمَ
import Speech
SFSpeechRecognizer.requestAuthorization { authStatus in
DispatchQueue.main.async {
switch authStatus {
case .authorized:
// Enable voice command UI
case .denied, .restricted:
// Explain why speech recognition is unavailable
case .notDetermined:
// This should not occur after the request
@unknown default:
break
}
}
}
۳- ایجاد یک نمونه تشخیص دهنده SFSpeechRecognizer
SFSpeechRecognizer با محلی که با مخاطبان هدف شما مطابقت دارد، از زبان دستگاه پیش فرض عبور کنید.
let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))
۴- جلسه صوتی و موتور را شکل دهید
در این میان، [[رده:رده:]] و [[رده:رده:]] و [[رده:رده:]] و [[رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:رده:
let audioEngine = AVAudioEngine()
let inputNode = audioEngine.inputNode
let recordingFormat = inputNode.outputFormat(forBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer, _) in
self.request.append(buffer)
}
audioEngine.prepare()
try? audioEngine.start()
همیشه موتور صوتی را در یک بلوک (FLT-7) در تولید برای کنترل قابلیت دسترسی به میکروفون شروع کنید.
اجرای دستور های صوتی: از سخنرانی تا عمل
هنگامی که صدا جریان دارد، شما یک کار تشخیص ایجاد می کنید و نتایج را برای دستورات تجزیه می کنید. کلید این است که به نتایج جزئی واکنش نشان دهید تا دستورات حتی قبل از اینکه کاربر صحبت کند، شناسایی شوند.
وظایف شناسایی پایه
let request = SFSpeechAudioBufferRecognitionRequest()
request.shouldReportPartialResults = true
let recognitionTask = recognizer?.recognitionTask(with: request) { result, error in
guard let result = result else {
// Handle error
return
}
let transcript = result.bestTranscription.formattedString
// Check for commands
if transcript.lowercased().contains("next") {
// Execute action
}
}
فرمان پیشرفته پارسینگ
در این میان، در این میان، به صورت ساده و ساده، به صورت زیر به کار می رود.
- استفاده از NSLinguisticTagger [FLT 1] برای استخراج کلمات کلیدی و فیلتر کردن سر و صدا.
- [[۱] [۱۰] [۱] [۱۰] [۱]] با واژه های [به عنوان مثال، "پی"، "next"، "forward").
- [در این باره] انتظار می رود که یک آستانه اعتماد بالاتر [FLT 1] باشد؛ قبل از عمل، [FLT 10] را بررسی کنید.
- [در این میان] [از این رو] به [وحرام] بر [و] [از]] سردی [از [و] [از] [و]]] [از [و]]] برآمدن [و] [از]] [و [از]] [و]] [از [و]] [از [و]] [از [و]] [از [که] [در برابر [و [از [و [از [و]] [و [از [و [از [از [و]]]] [از [و]]]]]]]]]] [از [و [و [و [از [و]]]]]]]]] [و [و [از [از [از [از [از [از [و]]]]]]]]]]]]]]]]]]]] [از [از [از [از [از [از [از [از [از [از [از [از [از [از [و [و [و [و [و [و [و [از [از [از [از [از [از [از [و [و [بر [
func processTranscript(_ transcript: String) {
let lowercased = transcript.lowercased()
let commands: [String: () -> Void] = [
"next": { self.showNextItem() },
"go back": { self.showPreviousItem() },
"stop": { self.stopPlayback() }
]
for (command, action) in commands {
if lowercased.contains(command) {
action()
break
}
}
}
پایان دادن به سکوت و سکوت
به طور پیش فرض، وظیفه تشخیص زمانی به پایان می رسد که کاربر متوقف می شود و مکثی شناسایی می شود.شما همچنین می توانید به صورت دستی با فراخوانی (FLT:12) یا [FLT13 ] برای یک تجربه فرمان مستمر (به عنوان مثال، دیکته، اقدامات چند مرحله ای)، کار شناسایی پس از هر نتیجه را دوباره شروع کنید، با این حال در ذهن اپل نگه دارید. -1 دقیقه در یک کار زنجیره ای برای انجام جلسات طولانی تر؛
ویژگی های پیشرفته: تشخیص On-Device و Vocabularies سفارشی
شروع در iOS 13، اپل تشخیص گفتار را برای زبان های انتخاب شده معرفی کرد (در حال حاضر انگلیسی، فرانسوی، آلمانی، ژاپنی، کره، ماندارین چینی، اسپانیایی و موارد دیگر) هیچ وابستگی به شبکه، کاهش تأخیر و حریم خصوصی پیشرفته - هیچ صوتی دستگاه را قادر نمی سازد به رسمیت شناختن دستگاه:
guard let recognizer = SFSpeechRecognizer() else { return }
if recognizer.supportsOnDeviceRecognition {
request.requiresOnDeviceRecognition = true
}
[در این باره]، [و] [در مورد] [و [در] [و] [و] [و] [و] [و] [و]] [و]] [و [به]]] [و] [به]]] نام [و [به] [و]] [و] [به] [و] [از طریق [F3] [و [به [و [و] [و [و [و]] [از [و [و [و [و [و]] [از [و]]] [به [و [و [و [و]]]]] [و [و [و [و [به [و]]]]]]]]]]] [به [و [و [به [و [و [و [از طریق [از طریق [و [و [و [و [و [از [از [از طریق [از طریق [از [از طریق [از [از [از [از [از [از طریق [از طریق [به [و]]]]]]]]]]]]]]]]]]] [از [از [از [و [و [و [و
یکی دیگر از تکنیک های پیشرفته استفاده از SFSpeechechRecognizerDelegate برای نظارت بر تغییرات در دسترس بودن (به عنوان مثال، مجوز کاربر، تغییرات وضعیت شبکه) است.
class YourViewController: UIViewController, SFSpeechRecognizerDelegate {
func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available: Bool) {
// Disable or enable voice command button based on availability
}
}
بهترین روش ها برای فرماندهی صدا در تولید
رابط های صوتی متفاوت از لمس رفتار می کنند، این دستورالعمل ها را دنبال کنید تا یک تجربه کاربری جلا داده شده را ارائه دهید.
1- ارائه بازخورد واضح
- نشان دادن یک فرم موج یا نشانه ضربان قلب هنگام گوش دادن.
- متن شناخته شده (حتی جزئی) را نمایش دهید تا کاربران بدانند که سیستم کار می کند.
- از طریق استفاده از بازخوردهای ضعیف (از طریق (FLT:0) استفاده کنید (FLT:1) در تشخیص فرمان.
۲- اشتباهات گریسی
خطاهای رایج شامل دسترسی میکروفون، خدمات تشخیص در دسترس نیست یا کیفیت صوتی ضعیف است که کاربر را با پیام های عملی هشدار می دهد (به عنوان مثال، لطفا بلندتر صحبت کنید یا “لینک اینترنت خود را بررسی کنید”).
۳- بهینه سازی برای محیط های مختلف و محیط زیست
با استفاده از انواع مختلف از سخنرانان تست کنید. [۱۰] [۱] [FLT] [FLT] برای تشخیص در یک رشته پس زمینه استفاده کنید.
۴- حریم خصوصی و شفافیت
به وضوح توضیح دهید که چرا شما نیاز به میکروفون و مجوز سخنرانی دارید.هرگز بدون هدف کاربر سخنرانی نکنید – طراحی سیستم باید یک ضربه صریح برای شروع دستورالعمل های صوتی داشته باشد.
۵- پیاده سازی یک شکست
همه کاربران نمی توانند یا می خواهند از صدا استفاده کنند، همیشه ورودی صفحه کلید یا لمسی جایگزین را ارائه دهند، اطمینان حاصل کنید که دستورات صوتی را می توان از طریق کنترل سوئیچ یا VoiceOver استفاده کرد.
استفاده از پرونده ها و الهامات
- برنامه های ناقدرت: [FLT 1]، "من را به خانه ببر" یا "نمایش ایستگاه های گاز نزدیک" با استفاده از نقشه SDK.
- تولید وamp؛ Note-Taking: "ایجاد یک یادداشت جدید" یا "اضافه کردن کار" یکپارچه با داده های اصلی یا CloudKit.
- کنترل کننده های هوشمند خانه: [به جای چراغ های اتاق نشیمن] با استفاده از HomeKit، چراغ های اتاق نشیمن را خاموش کنید.
- {{FLT: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- [[۱] [۱۰] آموزش: [[۱۰] پاسخ های صوتی به فلش کارت یا آزمون.
برای ایده های بیشتر، کد نمونه (FLT:0) را بررسی کنید و کد نمونه از اپل .
نتیجه گیری: کاربران خود را با Voice تقویت کنید
iOS Speech Recognition API یک ابزار بالغ و به خوبی مستند است که قدرت دستورات صوتی را به هر برنامه ای می دهد.از داخل شدن تا استفاده روزانه، ویژگی های صوتی به خوبی پیاده سازی شده، کاهش اصطکاک، بهبود دسترسی و کاربران لذت بخش.با دنبال مراحل تنظیمات، بهترین شیوه ها و تکنیک های پیشرفته ذکر شده در این مقاله، شما می توانید برنامه هایی ایجاد کنید که - و گوش می دهند - به شیوه هایی که تلاش طبیعی و احساس بی نظیر آن دارند.
شروع کوچک: ادغام یک دستور (کمک) یا "برو" در روز رسانی بعدی خود، سپس گسترش بر اساس بازخورد کاربر، به عنوان به رسمیت شناختن دستگاه بهبود و زبان های جدید اضافه شده است، پتانسیل برای تجارب iOS کنترل صدا تنها رشد خواهد کرد.