У цій статті ми опишемо, як було зроблено додаток “Image to Speech”. Деякі підказки коду та посилання на документацію . Додаток читає вголос і зберігає в звукову доріжку будь-який текст на зображенні і заснований на технології Google Cloud ML. Додаток побудований з використанням фреймворку Flutter з використанням мови Dart і доступний на Google PlayMarket і Apple AppStore.
Ви можете перевірити вихідний код програми в загальнодоступному repository GitHub.
Пролог.
Перш ніж ми почнемо, трохи розберемося з історією: створюючи додаток, ми почали з розпізнавання зображень на пристрої до тексту, але пізніше ми перейшли на хмарний API через бібліотеки на пристрої для Flutter, який на той момент підтримував тільки англійську мову. Сподіваюся, с тих пір, це було покращено.
Епізод 1: Візьміть зображення і розпізнайте його в тексті.
Хіба не було б здорово мати додаток, який може розпізнавати текст з картинки або фотографії, і навіть читати цей текст і зберігати звукову доріжку окремо? Це буде дуже корисно для людей з вадами зору, для іноземців, які не знають правильної вимови, або для любителів аудіокниг.
Отже, створіть новий проект Flutter, а потім підключіть Firebase для iOS і Android, як описано в цьому document.
У цьому додатку ми будемо використовувати Google cloud OCR і Google cloud TTS, звичайно, вже є готові залежності, такі як firebase_ml_vision або mlkit, які зроблять все за вас і будуть працювати без інтернету, але їх функціональність буде урізана, вони будуть розпізнавати тільки англійську мову. Documentation щодо хмарного бачення можна знайти тут.
Тепер в Google Cloud Platform потрібно додати до проекту:
- Cloud Functions API
- Cloud Vision API
- Google Cloud APIs
Додайте залежності camera, image_picker і http, за допомогою яких ми будемо фотографувати або додавати вже зроблені фотографії з галереї і відправляти цю фотографію на сервер.
Отже, виберіть фотографію з галереї:
конвертувати фотографію в base64:
Зіставлення даних для моделювання з відповіді:
надіслати json з base64Image в google vision
Отримати текст з моделі:
Відповідь з хмари повертає нам текст і розпізнану locale.
Епізод 2: перетворення тексту в мову і збереження треку в локальний файл.
Коли ми отримали текстові дані та locale від ml-vision, ми встановили ці дані в Google Text To Speech API.
Для цього ми створюємо HTTP запит за допомогою методу text.synthesizeioEncoding:
де:
- 'input' - це Тип SynthesisInput з полем "text" - це необроблений текст, що підлягає синтезу;
- ми встановлюємо ‘voice' - це VoiceSelectionParams type
- “name” - тип голосу
- та languageCode - мова;
- ‘audioConfig’ - це опис звукових даних, що підлягають синтезу, AudioConfig.
Ми створюємо запит за допомогою методу '_postJson' :
Створення голосової моделі:
Зіставлення даних для моделювання з відповіді:
Потім ми створюємо аудіофайл в каталозі додатків називаючи його за часом створення:
І ми можемо відтворити створений файл за допомогою flutter audioplayer plugin:
Епілог.
Спасибі, що дочитали цю статтю до кінця, ми сподіваємося, що вам сподобається, і тепер ви знаєте кунг-фу.
Будь ласка, перевірте опублікований додаток:
У Google PlayMarket та Apple AppStore.