DAYU200は自閉症の早期スクリーニング音声特徴フィルタリングおよび認識システムを運用しています

DAYU200は自閉症の早期スクリーニング音声特徴フィルタリングおよび認識システムを運用しています

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​

プロジェクトの背景

「自閉症教育・リハビリテーション産業発展状況報告書」によると、世界中で54人に1人の子どもが自閉症スペクトラム障害を患っています。現在、中国における自閉症スペクトラム障害の患者数は1,300万人を超えており、この数は毎年20万人近くのペースで増加しています。

私たちの研究を通じて、わが国では自閉症スペクトラム障害の統一された診断基準が欠如していることがわかりました。主要な病院や医療機関の主流の診断計画は、依然として体重計などのツールに依存しており、誤診率が高くなっています。しかし、現在、診断のための科学的かつ正確な検査機器が不足しており、自閉症と診断される患者の平均年齢は4~5歳で、最適な早期スクリーニングおよび診断時期である18~24か月よりはるかに遅れており、子どもたちがリハビリ治療の最適な期間を逃す原因となっています。

上記の問題点を踏まえ、当チームは子どもの話し声を生データとして、ディープラーニングでトレーニングした高精度モデルを用いて、自閉症スペクトラム障害児と健常児の音響特徴の違いを比較・分析しました。音声分析技術を用いて分析用の音響特徴パラメータを抽出し、Runhe Dayu DAYU200を基に、音響の観点から検査対象児の早期スクリーニングを医師に指導しました。自閉症患者の実際のスクリーニング・診断年齢は1~2歳まで早めることができるため、自閉症スペクトラム障害児を非常に早期に診断することができ、介入治療をできるだけ早く実施して、先天性発達障害が患者と家族全体に与える影響を最小限に抑えることができます。

チームについて

スターウォッチチームは、2021年6月に鄭州軽工業大学のメコルスタジオに設立されました。自閉症スペクトラム障害の診断技術の研究開発に重点を置いた、キャンパス内のイノベーションおよび起業家精神のチームです。メコルスタジオの講師と生徒も、極めて限られた条件の中で価値を最大限に高めなければなりません。スタジオは、高齢化、高齢者のリハビリテーション、特別なグループのケアに向けて長い道のりを歩んでいます。まずは紹介状を持って病院に出向き、協力を依頼し、少しずつ患者さんを訪問していきました。現在、Mercol Studio は 60 を超える医療プロジェクトの共同イノベーションと開発に携わっており、そのうち 40 以上は特別な集団をケアするためのプロジェクトです。脳卒中、自閉症、パーキンソン病などの分野で2,000人以上の患者からデータサンプルを収集し、300件以上の利用可能な医療事例を蓄積しています。

Huawei Cloudの紹介ビデオ。

BrainPole とのインタビュー - 荒野を照らすのは、若い開発者の目の中のたいまつです。

デザインのアイデア

このプロジェクトでは、ニューラルネットワークとオーディオ分析技術を使用して、自閉症スペクトラム障害を持つ子供たちの音響特徴パラメータを抽出して分析し、最も代表的な音響特徴と、分類と認識のパフォーマンスが最も優れたモデルを選別し、音響の観点から自閉症スペクトラム障害を持つ子供たちの早期診断を医師が行うのを支援し、分類用の機械学習モデルを設計します。モデルが構築され、最終的なネットワークは 93.8% の精度を達成しました。医師は、DAYU200端末、ウェブ端末、デスクトップexeプログラム端末、携帯電話端末Hongmeng APPで結果を確認できます。自閉症スペクトラム障害の予測精度は70%を超えており、自閉症スペクトラム障害の可能性がある子供は、最適な介入期間を逃さないように介入トレーニングを受けることをお勧めします。

開発・設計技術フレームワーク図は以下のとおりです。

主に以下のステップに分かれます。

1. 音声データの収集

私たちのプロジェクトのオーディオ データ取得モジュールは、主にスピーカー、3 つのマイク アレ​​イ デジタル信号プロセッサ、および Esp32-Korvo オーディオ開発ボードの 3 つの部分で構成されています。オーディオ データは、エコー キャンセル アルゴリズム、音声強調アルゴリズム、ノイズ低減アルゴリズム、オーディオ自動ゲイン アルゴリズムを通じて収集され、被験者のオーディオ データの品質が保証されます。その後、オーディオデータは Bluetooth または WLAN 経由でクラウド サーバーに送信され、さらに処理されます。内部レイアウトでは、開発基板、スピーカー、充電池のサイズを正確に計測し、内部部品の位置を合理的に計画・設計し、内部スペースを確保するための精密なモデリングを行いました。

製品の効果画像は以下の通りです。

2. オーディオデータの前処理

データ収集モジュールで取得した音声データをHuaweiクラウドサーバーにアップロードし、独自開発のノイズ低減アルゴリズムを使用して収集した音声に対して二次ノイズ低減処理を行い、ガウスノイズ、ホワイトノイズなどのノイズを除去します。次に、OpenSmileを使用して音響特徴を抽出します。処理されたデータは、Librosaライブラリを使用してMFCC画像を描画するために使用されます。

まず、音声を画像に変換する前に、Berouti スペクトル減算法を使用して、自閉症患者の音声サンプルに含まれる加法性ノイズ (背景ノイズ) のスペクトル情報を取得し、それを周波数空間から減算します。同時に、抽出の困難さを回避するために、プリエンファシス技術を使用して元のオーディオにプリエンファシス フィルターを追加して高周波部分を強調し、フレーム分割とウィンドウ処理を使用して、分析対象の信号変化が突然消えるのを防ぎます。次に、連続したアナログ信号をデジタル信号に変換し、フレーム分割およびウィンドウ処理後の各フレーム信号を高速フーリエ変換して、各フレームのスペクトルを取得します。そして、音声信号のパワースペクトルは、音声信号のスペクトルの絶対値の二乗を取ることによって得られます。次に、三角形のバンドパス フィルターを使用してスペクトルを滑らかにし、高調波の影響を排除して、元の音声の共鳴ピークを強調します。したがって、音声のトーンやピッチはメル周波数ケプストラム係数に反映されません。言い換えれば、メル周波数ケプストラム係数によって特徴付けられる音響特徴フィルタリング認識および診断システムは、入力音声の異なるピッチの影響を受けません。さらに、計算量も削減できます。

最後に、離散コサイン変換 (DCT) によって MFCC 係数が得られます。

オーディオから画像への変換の具体的なプロセスは次のとおりです。

音響特徴から抽出され描画された MFCC 画像は次のとおりです。

3. 画像データ解析

ディープラーニングモデルの予測プログラムでは、被験者の自閉症スペクトル障害が予測されています畳み込み層は、それぞれ完全に接続された層に入る前に、ベクターに平らになり、その後、ベクターレイヤーの層を抑制します最終的な1次元ベクトル出力はバイナリ分類に使用され、自閉症スペクトラム障害の子供の確率と正常な子供の確率が出力されます。ディープニューラルネットワークに基づくアルゴリズムは、コンピュータの強力な学習能力を利用して自閉症患者と健常者の音響特性を学習し、自閉症患者の音声データの効果的な認識を実現します。

開発環境

  • OpenHarmony 用 DevEco Studio 3.0.0.900
  • OpenHarmony バージョン: 3.1_リリース
  • 開発ボード: DAYU200

開発プロセス

ページ開発

Huxing 健康システムのアイコン

config.json ファイル内のソフトウェア アイコンとソフトウェア名を変更します。

 「能力」 : [
{
「スキル」 : [
{
「エンティティ」 : [
「エンティティ.システム.ホーム」
]、
「アクション」 : [
「アクション.システム.ホーム」
]
}
]、
「方向」「未指定」
「表示」 : true
"srcPath" : "メインアビリティ" ,
「名前」 : 「.MainAbility」
"src言語" : "js"
「アイコン」 : 「$media:icon1」
"説明" : "$string:MainAbility_desc" ,
"formsEnabled" : false
"ラベル" : "$string:MainAbility_label" ,
「タイプ」 : 「ページ」
「起動タイプ」 : 「標準」
}
]

スタートページ

スタート ページはシステムを読み込むために使用され、ユーザーはこのページをクリックしてメイン ページにジャンプできます。

Hml ソースコード:

 < div id = "ラッパー" >
< div id = "div1" onclick = "divclick" >
< テキストid = "text1" > {{title}} </ テキスト>
< 画像id = "image1" src = "common/images/background.png" > </ 画像>
</div>
</div>

CSS ソースコード:

 #ラッパー{
flex-direction : ;
: 100% ;
}
#div1 {
: 100% ;
高さ: 100% ;
位置: 相対的;
ディスプレイ: フレックス;
可視性: 可視;
不透明度1 ;
flex-direction : ;
align-items : flex-start ;
}
#テキスト 1 {
高さ: 600px ;
: 60px ;
位置: 相対的;
可視性: 可視;
フォントサイズ: 60px ;
/* 行の高さ: -1px;*/
テキスト配置: 中央;
左パディング: 0 ;
左マージン45% ;
上マージン: 200px ;
: #7468BE ;
文字間隔: 10px ;
}
#画像1 {
: 100% ;
高さ: 300px ;
: 80px ;
パディング下部: 0 ;
}

js ソースコード:

 '@system.router' からルーターをインポートします。
エクスポートデフォルト{
データ: {
タイトル:「星を守る子供たち」
},
divクリック(){
ルータ.push({
uri:'pages/sign_in/sign_in', //ジャンプ先のページを指定します
})
}
}

ログインページ

アカウント名と MIMA をサーバーにアップロードすると、サーバーは MD5 暗号化とソルト アルゴリズムを使用して、アカウント名と MIMA が正しいかどうかを確認します。

Hml ソースコード:

 < div id = "ラッパー" >
< div id = "div1" >
< text id = "text1" >ログイン</ text >
< input id = "input1" プレースホルダー= "{{title1}}" onchange = "accountChange" = "XXXXX" > </ input >
< input id = "input2" type = "password" placeholder = "{{pass}}" onchange = "passwordChange" value = "XXXXX" > </ input >
< テキストid = "text3" > {{メッセージ}} </ テキスト>
< ボタンid = "button1" = "{{enter}}" onclick = "btnclick" > </ ボタン>
</div>
</div>

CSS ソースコード:

 #ラッパー{
flex-direction : ;
: 100% ;
}
#div1 {
: 100% ;
高さ: 100% ;
flex-direction : ;
}
#テキスト 1 {
高さ: 100px ;
: 150px ;
フォントサイズ: 58px ;
テキスト配置: 中央;
フォントの太さ: 600 ;
フォントスタイル: 通常;
: 250px ;
位置: 絶対;
左マージン: 80px ;
}
#入力1 {
: 70.69827263766581% ;
高さ: 80px ;
背景色: #f5f5f5 ;
フォントサイズ: 26px ;
位置: 絶対;
: 400px ;
左マージン: 80px ;
}
#入力2 {
: 70.69827263766581% ;
高さ: 80px ;
背景色: #f5f5f5 ;
フォントサイズ: 26px ;
位置: 絶対;
: 500px ;
左マージン: 80px ;
}
#テキスト3 {
高さ: 45.43705332600329px ;
: 100% ;
フォントサイズ: 28px ;
: #C8C8C8 ;
フォントの太さ: 太字;
フォントサイズステップ: 0 ;
位置: 絶対;
: 620px ;
左マージン15% ;
}
#ボタン1 {
: 50% ;
高さ: 80px ;
境界線の半径: 50px ;
フォントサイズ: 38px ;
フォントの太さ: 通常;
背景色: #7468BE ;
左マージン: 150px ;
: 700px ;
ディスプレイ: フレックス;
位置: 絶対;
}

js ソースコード:

 '@system.prompt' からprompt をインポートします
'@system.fetch' からfetch をインポートします
'@system.router' からルーターをインポートします
エクスポートデフォルト{
データ: {
title1 : 「ユーザー名を入力してください」
pass : 「MIMAを入力してください」
メッセージ: 「未登録の携帯電話番号は確認後に自動的に作成されます」
入力「ログイン」
アカウント「XXXX」
パスワード: 「XXXX」
結果""
},
アカウント変更( e ) {
この. アカウント= e .
},
パスワード変更( e ) {
this . パスワード= e .
},
ボタンクリック(){
ルータ. プッシュ({
uri : 'pages/page/page' , //ジャンプ先のページを指定する
})
コンソール.info ( この. アカウント)
console.info ( JSON.stringify ({ "username" : this.Account , "password" : this.Password } ) ) ;
フェッチ. フェッチ({
url : `https://XXXXXX:80/login?username=` + this . アカウント+ `&password=` + this . パスワード
メソッド: 'POST'
レスポンスタイプ: "json"
成功: ( 応答) => {
console . info ( "取得成功" );
console.info ( JSON.stringify ( レスポンス. データ) ) ;
this.result = JSON.parse ( response.data ) ;
console.info ( JSON.stringify ( this.result.data ) ) ;
if ( this . result . data == "True" ) {
console . info ( "ログイン成功" );
ルータ. プッシュ({
uri : 'pages/index2/index2' , //ジャンプ先のページを指定する
});
} それ以外{
console . info ( "ログインに失敗しました" );
prompt.showToast ( {
メッセージ: 「MIMAエラー」
期間: 3000
});
}
}
});
}
}

メインページ

現在は音声認識機能のみが開発されており、ユーザーは音声認識ボタンをクリックすることでこの機能モジュールに入ることができます。

Hml ソースコード:

 <!--<要素名='comp' src='../../components/tabbar/tabbar.hml'></要素>-->
< 要素= 'comp' src = '../../components/tabbar/tabbar.hml' > </ 要素>
< div id = "ラッパー" >
< 画像id = "image1" src = "common/images/21.png" > </ 画像>
< 入力ID = "input1" プレースホルダー= "{{title}}" > </ 入力>
< 画像id = "image2" src = "common/images/22.png" > </ 画像>
< スワイパークラス= "コンテナ" インデックス= "{{index}}" 自動再生= "true" >
< div クラス= "スワイパーアイテムプライマリアイテム" >
< 画像src = "common/images/23.png" > </ 画像>
</div>
< div クラス= "スワイパー項目警告項目" >
< 画像src = "common/images/sw4.png" > </ 画像>
</div>
< div クラス= "スワイパーアイテム成功アイテム" >
< 画像src = "common/images/sw3.png" > </ 画像>
</div>
</ スワイパー>
< text id = "text1" >機能選択</ text >
< div id = "div1" onclick = "divclick" >
< 画像id = "image5" src = "common/images/26.png" > </ 画像>
< text id = "text2" >音声認識</ text >
< text id = "text3" >クリックして音声認識に入ります</ text >
< 画像id = "image30" src = "common/images/h4.png" > </ 画像>
</div>
< 画像id = "image7" src = "common/images/h2.png" > </ 画像>
< div id = "div2" >
< 画像id = "image8" src = "common/images/27_h.png" > </ 画像>
< text id = "text4" >眼球運動認識</ text >
< text id = "text5" >この機能は現在開発中です</ text >
< 画像id = "image32" src = "common/images/h5.png" > </ 画像>
</div>
< 画像id = "image10" src = "common/images/h2.png" > </ 画像>
< div id = "div3" >
< 画像id = "image11" src = "common/images/28_h.png" > </ 画像>
< text id = "text6" >物理的動作検出</ text >
< text id = "text7" >この機能は開発中です</ text >
< 画像id = "image31" src = "common/images/h6.png" > </ 画像>
</div>
< 画像id = "image13" src = "common/images/h2.png" > </ 画像>
< コンポーネントインデックス= "0" > </ コンポーネント>
</div>

CSS ソースコード:

 #ラッパー{
flex-direction : ;
: 100% ;
高さ: 100% ;
位置: 絶対;
}
#画像1 {
: 40px ;
高さ: 40px ;
左マージン: 10px ;
上マージン: 10px ;
パディング: 5px ;
}
#入力1 {
: 66.65016628828752% ;
高さ: 36.51376146788991px ;
上マージン: -35px ;
左マージン: 60px ;
}
#画像2 {
: 40px ;
高さ: 35px ;
上マージン: -35px ;
オブジェクトフィット: 塗りつぶし;
左マージン: 305px ;
パディング: -3px ;
}
#画像3 {
: 360ピクセル;
高さ: 180.91743119266056px ;
上マージン: 10px ;
}
#テキスト 1 {
高さ: 30px ;
: 100px ;
フォントサイズ: 22px ;
上マージン: 14px ;
左マージン: 15px ;
フォントの太さ: 600 ;
}
#div1 {
: 100% ;
高さ: 100px ;
上マージン: 8px ;
}
#画像5 {
: 35.59633027522935px ;
高さ: 38.89908256880733px ;
上マージン: 40px ;
左マージン: 30px ;
オブジェクトフィット: 塗りつぶし;
}
#テキスト2 {
高さ: 30px ;
: 100px ;
フォントサイズ: 20px ;
上マージン: 25px ;
左マージン: 20px ;
: #7468BE ;
フォントの太さ: 太字;
}
#テキスト3 {
高さ: 30px ;
: 128.07339449541286px ;
フォントサイズ: 15px ;
上マージン: 60px ;
左マージン: -100px ;
: #999999 ;
}
#画像30 {
: 100px ;
高さ: 100px ;
オブジェクトフィット: 塗りつぶし;
左マージン: 19px ;
上マージン: 6px ;
パディング: 1px ;
境界線の半径: 50px ;
}
#画像7 {
: 360ピクセル;
高さ: 30px ;
オブジェクトフィット: 塗りつぶし;
}
#div2 {
: 100% ;
高さ: 100px ;
}
#画像8 ​​{
: 60.36697247706422px ;
高さ: 63.669724770642205px ;
上マージン: 20px ;
オブジェクトフィット: 塗りつぶし;
左マージン: 19px ;
パディング: 8px ;
}
#テキスト4 {
高さ: 30px ;
: 100px ;
フォントサイズ: 20px ;
: #7468BE ;
フォントの太さ: 太字;
上マージン: 25px ;
左マージン: 4px ;
}
#テキスト5 {
高さ: 30px ;
: 100px ;
フォントサイズ: 15px ;
: #999999 ;
上マージン: 60px ;
左マージン: -100px ;
}
#画像31 {
: 100px ;
高さ: 100px ;
上マージン: 6px ;
左マージン: 48px ;
オブジェクトフィット: 塗りつぶし;
境界線の半径: 50px ;
}
#画像10 {
: 360ピクセル;
高さ: 30px ;
オブジェクトフィット: 塗りつぶし;
}
#div3 {
: 100% ;
高さ: 100px ;
}
#画像11 {
: 62.01834862385321px ;
高さ: 57.06422018348623px ;
オブジェクトフィット: 塗りつぶし;
左マージン: 19px ;
パディング: 6px ;
上マージン: 16px ;
}
#テキスト6 {
高さ: 30px ;
: 123.11926605504587px ;
フォントサイズ: 20px ;
: #7468BE ;
フォントの太さ: 太字;
上マージン: 16px ;
}
#テキスト7 {
高さ: 30px ;
: 100px ;
フォントサイズ: 15px ;
: #999999 ;
左マージン: -125px ;
上マージン: 50px ;
}
#画像32 {
: 100px ;
高さ: 100px ;
オブジェクトフィット: 塗りつぶし;
左マージン: 53px ;
上マージン: 0 ;
境界線の半径: 50px ;
}
#画像13 {
: 360ピクセル;
高さ: 30px ;
オブジェクトフィット: 塗りつぶし;
/* パディングトップ: 90%;*/
/* パディング上部: 500px;*/
}
.コンテナ1 {
flex-direction : ;
コンテンツの中央揃え ;
アイテムの位置合わせ: 中央;
}
。容器{
: 0px ;
: 0px ;
: 454px ;
高さ: 200px ;
パディングトップ3% ;
}
.スワイパーアイテム{
: 454px ;
高さ: 200px ;
コンテンツの中央揃え ;
アイテムの位置合わせ: 中央;
}

患者ページを選択

対応する患者を選択して、患者の情報インターフェイスに入ります。

ソースコードが多すぎて記事が長くなりすぎるため、以降のページにはソースコードは載せません。

患者ステータスページ

サーバーから最新の予測確率を取得し、Canva を使用して曲線チャートを描画します。

デバイス接続ページ

Bluetoothを使用してデバイスを接続し、マイクを呼び出して録音します。

記録ページ

10 ~ 15 秒の音声を録音し、ボタンをクリックして音声をサーバーにアップロードし、分析します。

結果分析ページ

使用されるサーバーが比較的非効率であるため、分析には長い時間がかかります。

分析結果ページ

サーバーから予測確率を取得後、結果分析ページに表示されます。

Flask バックエンドコード

バックエンド コードは長いので、ログイン インターフェイスのソース コードのみを次に示します。

 json をインポート
pymysql をインポートする
インポートOS
Flask からFlask をインポートしリクエストを Blueprint に格納します。
インポートシステム
acoustic_featureaf としてインポートする
輸入トーチ
base64 をインポート
# jsonデータを受信し、データを検証し、jsonデータを返します
@ app .route ( '/login'methods = [ 'POST''GET' ] )
デフ検証():
戻り値= {
'戻りコード' : '200' ,
'return_msg' : '成功'
'データ' : { なし}
}
print ( リクエスト.
name = request.values.get ( 'ユーザー名' )
pwd = リクエスト. .get ( 'パスワード' )
試す
db_password = select ( "アカウント = '%s' のユーザーからパスワードを選択" % name )
except 例外をe として:
return_dict [ '戻りコード' ] = '500'
return_dict [ 'data' ] = 'データベースエラー'
json . dumps ( return_dict ) を返します
input_password_md5_code = md5_verify ( パスワード, 'XXXX' )
印刷( 入力パスワード md5 コード)
印刷( db_password )
input_password_md5_code == db_password の場合:
return_dict [ 'データ' ] = 'True'
それ以外
return_dict [ 'データ' ] = 'False'
印刷( return_dict )
json . dumps を返します( return_dictensure_ascii = False )
# md5 暗号化とソルト検証
def md5_verify ( パスワードソルト):
ハッシュライブラリをインポートする
md5 = ハッシュライブラリ.md5 ( )
md5 . update ( パスワード. encode ( 'utf-8' ))
md5 . update ( salt . encode ( 'utf-8' ))
md5.hexdigest ( ) を返す

操作効果

デモビデオ

記事の添付ファイルをダウンロードするには、以下のリンクをクリックしてください。

https://ost..com/resource/2138.

https://ost..com/resource/2142.

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​.

<<:  自動運転車は歩行者に意図を伝えることができるか?

>>:  米国は戦闘における人工知能の活用を推進し続けている

ブログ    
ブログ    

推薦する

Facebookの新しいAIモデルは、英語以外の言語から英語以外の言語に直接翻訳できる

海外メディアの報道によると、機械翻訳技術は誕生以来長い道のりを歩んできた。 Google のような翻...

リカレントニューラルネットワークの父:未来のロボットはアリを見るように人間を見るだろう

4月19日、ガーディアン紙は、ロボットの将来について語ったインタビューで、再帰型ニューラルネットワー...

中国航空工業集団の「ドラゴンネスト」の初飛行は、電力検査のインテリジェント時代の幕開けを告げる

最近、北京市南六環路の北京延尊物流園区付近の安坊線70号塔の下で、中飛Avi Dragon Nest...

人工知能チュートリアル(IV):確率論入門

このシリーズの前回の記事では、行列と線形代数についてさらに詳しく説明し、JupyterLab を使用...

人工知能学習: 人工ニューラル ネットワークとは何ですか?

[51CTO.com クイック翻訳] 多くの人工知能コンピュータシステムの中核技術は、人間の脳の生...

ControlNetの作者が新作を発表:数百万のデータを使ったトレーニング、レイヤー設計の先駆けとなるAI画像生成

画像を生成するための大規模なモデルがコンピュータービジョンやグラフィックスの基礎となっている一方で、...

教師あり学習の一般的なアルゴリズムは何ですか?どのように適用されますか?

教師あり学習とは何ですか?教師あり学習は機械学習のサブセットであり、機械学習モデルの入力データにラベ...

調査によると、米国の公共部門のIT意思決定者の70%にとってAIは「ミッションクリティカル」

テキサス州に拠点を置くラックスペース テクノロジーズが実施した調査によると、公共部門の IT 意思決...

5分でトップ10の機械学習アルゴリズムを学ぶ

[[317656]]機械学習は業界にとって革新的で重要な分野です。機械学習プログラムに選択するアルゴ...

知らないうちに個人のプライバシーを人工知能に「提供」しないでください

[[260334]] BBCによると、IBMは最近、顔認識アルゴリズムの訓練のため、ユーザーの同意を...

チャットボットについては長い間話されてきましたが、良いチャットボットとはどのように定義されるのでしょうか?

なぜ良いチャットボットがないのでしょうか? これは私がかなり頻繁に、おそらく平均して週に 2 回は聞...

オンラインクレジットは消費者保護において「難しい問題」でしょうか? AIアプリケーションは消費者の権利を保護する

何億人ものインターネットユーザーの一人として、クレジット取引を処理するためにオフラインの営業所に行く...

工業情報化部:電話ネットワークアクセスの物理チャネルに肖像マッチング技術を導入

今年12月1日より、物理チャネルでは顔認識技術対策を全面的に導入し、電話ネットワークへのアクセスプロ...