Перевести речь в текст на iOS, используя Speech Framework
Сегодня мы будем переводить речь в текст. Сначалa убедитесь, что у вас установлена последняя версия iOS и Xcode. Для Speech Framework нужна минимум iOS 10. Я создал проект с поддержкой SwiftUI, для этого нужна iOS 13. Но это не обязательно, можете использовать Storyboard.
Если вы не знаете, что такое SwiftUI, и хотите быстрый обзор, вам сюда.
Создайте новый проект: File → New → Project, выберите Single View App и User Interface SwiftUI. Проект будет выглядеть примерно так:
Выбираем файл ContentView.swift и меняем struct ContentView... на:
ContentView — это то, что видно на экране. SpeechRec — место, где мы будем переводить речь в текст. Распознанный текст поместим в recognizedText, а ContentView будет отображать его на экране.
Разрешение
Для начала нам нужно спросить разрешение у пользователя. Выберите файл Info.plist и добавьте туда два ключа:
- NSSpeechRecognitionUsageDescription.
- NSMicrophoneUsageDescription.
Импортируем Speech и спрашиваем разрешение:
Перевести речь в текст
Чтобы перевести речь в текст, нам надо использовать SFSpeechRecognizer с локализацией ru-Ru для распознавания русской речи. Потом нужно указать источник, в нашем случае это поток от микрофона.
Последняя версия нашего класса:
После того как спросили разрешение, сразу же начинается процесс распознавания. Я постарался написать кратко и поэтому пропустил некоторые необходимые проверки.
Теперь запустите код и скажите что-нибудь на русском. Ваша речь будет отображаться на экране.
Что дальше
- Документация.
- WWDC-видео о Speech Framework.
- GitHub-проект.