ailia SDKがFlutterのpubspecからインストール可能に

Kazuki Kyakuno
axinc
Published in
9 min readMay 14, 2024

ailia SDKがFlutterのpubspecを使用したインストールに対応しました。これにより、Flutterのアプリケーションに簡単にailia SDKを取り込み可能です。

ailia x Flutter

ailia SDKについて

ailia SDKはAIの推論エンジンで、ailia MODELSに公開されている各種のAIモデルを簡単にFlutterに取り込むことが可能です。開発したアプリケーションは、Windows、macOS、iOS、Android、Linuxで実行可能です。

Flutterについて

FlutterはGoogleの開発している、クロスプラットフォームのアプリケーション開発環境です。Windows、macOS、iOS、Android、Linuxのアプリを、Dartを使用して、統一的に開発可能です。

pubspecについて

pubspecはFlutterにおけるパッケージ管理ファイルです。pubspecにライブラリのURLを登録することで、簡単にアプリケーションにライブラリを追加可能です。

pubspecを使用したailia SDKのインストール

pubspec.yamlに下記を記載します。flutter pub getで、必要なライブラリがインストールされます。

  ailia:
git:
url: https://github.com/axinc-ai/ailia-sdk-flutter.git

ailia_audio:
git:
url: https://github.com/axinc-ai/ailia-audio-flutter.git

ailia_tokenizer:
git:
url: https://github.com/axinc-ai/ailia-tokenizer-flutter.git

ailia_speech:
git:
url: https://github.com/axinc-ai/ailia-speech-flutter.git

macOSの場合は、ライセンスファイルにアクセスするために、macos/Runner/Release.entitlementsとmacos/Runner/Debug.entitlementsのcom.apple.security.app-sandboxをfalseに設定してください。

ailia SDKを使用したサンプルプログラム

ailia SDKの使用方法のサンプルとして、ailia MODELS Flutterを提供しています。

現在、下記の4モデルに対応しています。モデルは、今後、随時、追加されていきます。

・ResNet18による物体識別
・YOLOXによる物体認識
・Whisperによる音声認識
・MultilingualE5によるテキストのEmbedding

起動すると下記のような画面になります。

モデルの選択

モデル一覧からモデルを選択し、プラスボタンを押すことで、モデルがダウンロードされ、推論が実行可能です。

Whisperの実行例

特に、Whisperは非常に短いコードで実行可能で、簡単にFlutterのアプリケーションに音声認識を実装可能です。

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:wav/wav.dart';

import 'package:flutter/services.dart';
import 'package:ailia_speech/ailia_speech.dart' as ailia_speech_dart;
import 'package:ailia_speech/ailia_speech_model.dart';

class AudioProcessingWhisper {
final AiliaSpeechModel _ailiaSpeechModel = AiliaSpeechModel();

void _intermediateCallback(String text){
}

Future<String> transcribe(Wav wav, File onnx_encoder_file, File onnx_decoder_file, int env_id) async{
_ailiaSpeechModel.create(false, false, env_id);
_ailiaSpeechModel.open(onnx_encoder_file, onnx_decoder_file, null, "auto", ailia_speech_dart.AILIA_SPEECH_MODEL_TYPE_WHISPER_MULTILINGUAL_TINY);

List<double> pcm = List<double>.empty(growable: true);

for (int i = 0; i < wav.channels[0].length; ++i) {
for (int j = 0; j < wav.channels.length; ++j){
pcm.add(wav.channels[j][i]);
}
}

//_ailiaSpeechModel.setIntermediateCallback(_intermediateCallback);
_ailiaSpeechModel.pushInputData(pcm, wav.samplesPerSecond, wav.channels.length);

_ailiaSpeechModel.finalizeInputData();

String transcribe_result = "";

List<SpeechText> texts = _ailiaSpeechModel.transcribeBatch();
for (int i = 0; i < texts.length; i++){
transcribe_result = transcribe_result + texts[i].text;
}

_ailiaSpeechModel.close();

return transcribe_result;
}

}

また、Multilingual E5を使用することで、FlutterでRAGを簡単に実装可能です。ailia SDKはailia Tokenizerを提供しているため、日本語のテキストから、簡単にEmbeddingを取得可能です。

ライセンスファイルについて

ailia SDKの評価版の利用にはライセンスファイルが必要です。ライセンスファイルは下記のコードでダウンロード可能です。ailia MODELS Flutterには下記のコードが含まれています。

import 'package:ailia/ailia_license.dart';
await AiliaLicense.checkAndDownloadLicense();

ax株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。ax株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。

--

--

Kazuki Kyakuno
axinc
Editor for

CTO — ax Inc. , Managing Director — AXELL