最近のアクセス:
例: GeneXusAI の概念実証

ここでは、第 28 回 GeneXus Meeting で行われた GeneXusAI の概念実証について説明します。

サンプルのダウンロード

イメージ:40856.png サンプル - GeneXusAI PoC
イメージ:40856.png サンプル - GeneXusAI PoC (GeneXus 16 Upgrade 8 まで)
: GeneXusAI_Sample.xpz ファイルをナレッジベースにインポートする前に、GeneXusAI の組み込みモジュールをインストールすることが重要です。

GeneXusAI の組み込みモジュールのインストール

1. GeneXus ツールバーから [ ナレッジマネージャ ] オプションを選択します。
2. [ 参照モジュールの管理 ] をクリックします。
3. 表示されるリストで GeneXusAI モジュールを探します。
4. [ インストール ] ボタンをクリックします。
インストールプロセスは、 [ 出力 ] セクションの [ General ] オプションで確認できます。インストールされたら、ナレッジマネージャのインポート機能を使用して GeneXusAI_Sample.xpz ファイルをインポートできます。

サンプルコンテンツ

ナレッジベースには次の内容が含まれます:
  • GXAI_SD メニュー
    メインオブジェクトであり、3 つのタブから構成されます。
  • Panels フォルダ
    • SampleAudio パネル: メニューの最初のタブで、Audio モジュールの AI タスクを追加します (SpeechToTextTextToSpeech)。
    • SampleImage パネル: メニューの 2 つ目のタブで、Image モジュールの AI タスクを追加します (DetectFacesOCR)。
    • SampleText パネル: メニューの 3 つ目のタブで、Text モジュールの AI タスクを追加します (TranslateDetectLanguageSentimentAnalysis)。
  • Utilities フォルダ
    • GetProvider プロシージャー: プロバイダー構成を名前で取得します。
    • SquareRegions プロシージャー: 長方形の領域 (OutputRegion データタイプ) を正方形に変換します (このサンプルに含まれる outputSquare データタイプに基づく)。これは、DetectFaces と OCR で検出領域を描画する際に使用されます。描画には、Grid コントロール上で SD Image Map コントロールが使われます。
    • AddDelay 関数: SpeechToText の出力語句を 1 語ずつ表示するために使用される簡単な関数です。
    • GetBlobUrl プロシージャー: 入力として Blob を受け取り、サーバー側の URL を取得するヘルパー関数です。このオブジェクトは既定では使用されません。この目的の詳細については、「注」を参照してください。

実行時

このアプリケーションは、ある GeneXusAI タスクの簡単な概念実証です。3 つのタブがあり、それぞれ使用可能なサブモジュールを表します: Audio、Image、Text。

1 つ目のタブ: Audio モジュール

イメージ:40864.png 最初のタブでは、Audio モジュールのタスクを実行できます: SpeechToText プロシージャーTextToSpeech プロシージャー
ユーザーとしてテキストを入力し、TextToSpeech ボタンをタップすると、音声が合成され、それを聞くことができます。同様に、SpeechToText ボタンを使って音声を録音し、それを文字に起こすことができます。テキストは、テキストを入力する場合と同じ編集フィールドに表示されます。TextToSpeech では、SSML タグを使用して入力テキストの書式を設定できます。テキストの一部をクリップボードにコピーしたら、右上の引用符ボタンをタップし、いくつかのタグ (prosodysay-as) を使ってテキストの書式を設定できます。聞いてみると、出力される音声の変化がわかります。
このパネルでは、GeneXusAI に加え、Audio と AudioRecorder の各外部オブジェクトのみを使用して、オーディオストリームが再生、記録されます。アプリケーションにとって魅力的なエフェクトが 2 つあります: 1) オーディオの記録/再生の進捗と、2) 1 語ずつの結果表示です。

2 つ目のタブ: Image モジュール

イメージ:40865.png この 2 つ目のタブでは、Image モジュールのタスクを 2 つ実行できます: DetectFaces プロシージャーOCR プロシージャー
ユーザーとして、最初に写真を撮るか、ギャラリーから写真を選択します。画面に表示されたら、DetectFaces または OCR のタスクを対応するボタンから実行すると、画像内の顔やテキストを認識できます。
このパネルは、Camera と PhotoLibrary の各外部オブジェクトを使用して画像をアップロードするだけでなく、SD Image Map コントロールを使用して背景画像 (この例では写真) の上に長方形を描画します。これらのコントロールの制限事項により、GeneXusAI から取得される長方形の領域 (上、左、幅、高さ) は、元の長方形に合った正方形 (上、左、サイズ) に変換されます。また、このパネルでは、顔/テキストのタグの内容で編集できます (ソーシャルメディアでの写真のタグ付けと同様)。

3 つ目のタブ: Text モジュール

イメージ:40866.png この 3 つ目のタブでは、Text モジュールのタスクを 3 つ実行できます: DetectLanguage プロシージャーTranslate プロシージャーSentimentAnalysis プロシージャー
ユーザーとしてテキストを入力し、 [ Translate ] ボタンをタップすると、翻訳する言語を表示できます。また、上向き/下向きの親指のボタンをタップすると、入力に対する感情を分析できます。結果は、うれしい顔 (スコアが 0.5 を上回る場合)、悲しい顔 (スコアが 0.5 を下回る場合)、あるいは同時に両方 (スコアがちょうど 0.5 だった場合) になります。翻訳では、DetectLanguage プロシージャーが自動的に呼び出され、テキストが入力された言語が特定されます。

  • GeneXus 16 Upgrade 0 を使用している場合は、すべてのメディアコンテンツをサーバー側に送信し、その URL を取得する必要があります。そのために、GetBlobUrl プロシージャーオブジェクトが用意されています。これを呼び出し、メディアコンテンツを再設定します。

    たとえば、次の割り当てがあるとします:
    &image = Camera.TakePhoto()
    
    この場合、GeneXusAI タスクを呼び出す前に次の行を追加する必要があります:
    &image = Camera.TakePhoto()
    /*NEW*/ &blob = &image
    /*NEW*/ &blob = GetBlobUrl(&blob)
    /*NEW*/ &image = &blob
    
    画像とオーディオの各メディア データ タイプも同様です。
    詳細については、SAC #44045 を参照してください。

参考情報




サブページ
Created: 20/12/14 21:40 by Admin Last update: 21/05/20 08:03 by Admin
カテゴリ
Powered by GXwiki 3.0