У цій статті ми опишемо, як було зроблено додаток “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.

Flutter
ML

More like this

Get in touch

Зв'язатися з нами

Frankfurt am Main, Germany (Sales)

60354

Eckenheimer Schulstraße, 20

+38 (098) 630-49-85

info@a5.ua

Харків, Україна

61023

вул. Трінклера, 9

+38 (050) 908-31-07

info@a5.ua

Burgas, Bulgaria (Development)

8008

бул. „Транспортна“ 15, Northern Industrial Zone

+359 877 350129

info@a5.ua