В предыдущих постах мы уже разбирали распознавание лиц и распознавание текста. Сегодня расскажу про распознавание звука.
Распознавание речи — это один из самых востребованных инструментов в мобильных приложениях:
✔️голосовой ввод текста
✔️создание заметок голосом
✔️управление приложением и голосовыми командами
✔️перевод речи с одного языка на другой
✔️доступность для пользователей с ограниченными возможностями
Что нам понадобится
Для примера будем использовать пакет для преобразования речи в текст в реальном времени — speech_to_text
Добавим в pubspec.yaml:
dependencies:
speech_to_text: ^6.6.0
Настройка и инициализация
1️⃣ Импортируем пакеты:
import 'package:speech_to_text/speech_recognition_result.dart';
import 'package:speech_to_text/speech_to_text.dart';
2️⃣ Создаем переменные:
late SpeechToText _speechToText;
String _recognizedText = '';
3️⃣ Инициализируем в initState:
@override
void initState() {
super.initState();
_speechToText = SpeechToText();
}
4️⃣ Закрываем в dispose:
@override
void dispose() {
_speechToText.cancel();
super.dispose();
}
Логика распознавания речи
Метод для начала прослушивания:
Future<void> _startListening() async {
// Очищаем данные
setState(() {
_recognizedText = '';
});
await _speechToText.listen(
pauseFor: const Duration(seconds: 2),
listenOptions: SpeechListenOptions(
listenMode: ListenMode.dictation,
),
onResult: _onSpeechResult,
);
}Метод для остановки прослушивания:
Future<void> _stopListening() async {
await _speechToText.stop();
setState(() {});
}Метод обратного вызова для результата:
void _onSpeechResult(SpeechRecognitionResult result) {
setState(() {
_recognizedText = result.recognizedWords;
});
}Отображение результата
Полученный текст можно вывести обычным Text:
Text(_recognizedText)
Теперь у нас есть три мощных примера работы с ML Kit и дополнительными библиотеками в Flutter:
▪️распознавание лиц — аутентификация и AR-фичи
▪️распознавание текста — сканирование документов и перевод
▪️распознавание звука — голосовой ввод, заметки и управление приложением
