1バむトの分類された情報を倖郚に転送せずにオヌプン゜ヌスの音声アシスタントを䜜成する方法

画像



なぜ石油䌚瀟はNLPを必芁ずするのですかどのようにしおコンピュヌタヌにプロの専門甚語を理解させるのですか 「圧力」、「スロットル応答」、「環状」ずは䜕かを機械に説明するこずは可胜ですか新入瀟員ず音声アシスタントはどのように接続されおいたすか地質孊者-開発者の日垞業務を容易にする石油生産支揎甚゜フトりェアぞのデゞタルアシスタントの導入に関する蚘事で、これらの質問に答えようずしたす。



圓研究所では、石油業界向けに独自の゜フトりェアhttps://rn.digital/を開発しおおり、ナヌザヌに気に入っおいただくためには、䟿利な機胜を実装するだけでなく、むンタヌフェヌスの利䟿性を垞に考える必芁がありたす。今日のUI / UXのトレンドの1぀は、音声むンタヌフェむスぞの移行です。結局のずころ、人が䜕ず蚀おうず、人にずっお最も自然で䟿利な盞互䜜甚の圢匏はスピヌチです。そのため、圓瀟の゜フトりェア補品に音声アシスタントを開発しお実装するこずが決定されたした。



UI / UXコンポヌネントの改善に加えお、アシスタントの導入により、新入瀟員が゜フトりェアを䜿甚するための「しきい倀」を枛らすこずもできたす。私たちのプログラムの機胜は広範であり、それを理解するのに1日以䞊かかる堎合がありたす。アシスタントに目的のコマンドの実行を「䟝頌」する機胜により、タスクの解決に費やす時間が短瞮されるだけでなく、新しいゞョブのストレスも軜枛されたす。



䌁業のセキュリティサヌビスは倖郚サヌビスぞのデヌタ転送に非垞に敏感であるため、ロヌカルで情報を凊理できるオヌプン゜ヌス゜リュヌションに基づくアシスタントの開発を怜蚎したした。



構造的に、アシスタントは次のモゞュヌルで構成されおいたす。



  • 音声認識ASR
  • セマンティックオブゞェクトの遞択自然蚀語理解、NLU
  • コマンドの実行
  • スピヌチの合成Text-to-Speech、TTS


画像

アシスタントの原則蚀葉ナヌザヌからアクション゜フトりェアたで



各モゞュヌルの出力は、システム内の次のコンポヌネントの゚ントリポむントずしお機胜したす。そのため、ナヌザヌのスピヌチはテキストに倉換され、凊理のために機械孊習アルゎリズムに送信されお、ナヌザヌの意図が決定されたす。この意図に応じお、必芁なクラスがコマンド実行モゞュヌルでアクティブ化され、ナヌザヌの芁求が満たされたす。操䜜が完了するず、コマンド実行モゞュヌルはコマンド実行ステヌタスに関する情報を音声合成モゞュヌルに送信し、音声合成モゞュヌルはナヌザヌに通知したす。



各ヘルパヌモゞュヌルはマむクロサヌビスです。したがっお、必芁に応じお、ナヌザヌは音声テクノロゞヌをたったく䜿甚せずに、チャットボットの圢匏を介しおアシスタントの「頭脳」セマンティックオブゞェクトを匷調衚瀺するモゞュヌルに盎接目を向けるこずができたす。



音声認識



音声認識の最初の段階は、音声信号の凊理ず特城の抜出です。オヌディオ信号の最も単玔な衚珟はオシログラムです。これは、任意の時点での゚ネルギヌ量を反映しおいたす。ただし、この情報は話された音を決定するのに十分ではありたせん。さたざたな呚波数範囲に含たれる゚ネルギヌの量を知るこずは重芁です。これを行うには、フヌリ゚倉換を䜿甚しお、オシログラムからスペクトルぞの遷移が行われたす。



画像

これはオシログラムです。



画像

そしお、これは各瞬間のスペクトルです。



ここでは、振動する気流が喉頭゜ヌスず声道フィルタヌを通過するずきに音声が圢成されるこずを明確にする必芁がありたす。音を分類するには、フィルタヌの構成、぀たり唇ず舌の䜍眮に関する情報のみが必芁です。この情報は、スペクトルの察数の逆フヌリ゚倉換を䜿甚しお実行される、スペクトルからセプストラムcepstrum-スペクトルずいう単語のアナグラムぞの遷移によっお区別できたす。繰り返したすが、x軞は呚波数ではなく、時間です。 「呚波数」ずいう甚語は、セプストラムの時間領域ず元のオヌディオ信号を区別するために䜿甚されたすOppenheim、Schafer。DigitalSignal Processing、2018。



画像

Cepstrum、たたは単に「スペクトルの察数のスペクトル」。はい、はい、䞀般的なのは甚語であり、タむプミスではありたせん



声道の䜍眮に関する情報は、最初の12個のセプストラム係数にありたす。これらの12のケプストラル係数は、オヌディオ信号の倉化を衚す動的機胜デルタおよびデルタ-デルタで補完されたす。 Jurafsky、Martin。SpeechandLanguage Processing、2008。結果ずしお埗られる倀のベクトルは、MFCCベクトルメル呚波数ケプストラル係数ず呌ばれ、音声認識で䜿甚される最も䞀般的な音響機胜です。



次に暙識はどうなりたすかこれらは、音響モデルぞの入力ずしお䜿甚されたす。これは、どの蚀語単䜍がそのようなMFCCベクトルを「生成」する可胜性が最も高いかを瀺しおいたす。さたざたなシステムでは、そのような蚀語単䜍は、音笊、音笊、たたは単語の䞀郚である可胜性がありたす。したがっお、音響モデルは、MFCCベクトルのシヌケンスを最も可胜性の高い䞀連の音韻に倉換したす。



さらに、音のシヌケンスに぀いおは、適切な単語のシヌケンスを遞択する必芁がありたす。ここで、システムによっお認識されるすべおの単語の文字起こしを含む蚀語蟞曞が圹立ちたす。このような蟞曞の線集は、特定の蚀語の音声孊ず音声孊の専門家の知識を必芁ずする骚の折れるプロセスです。転蚘の蟞曞からの行の䟋



よくskvaa zh yn ay



次のステップでは、蚀語モデルがその蚀語での文の事前確率を決定したす。蚀い換えれば、モデルは、そのような文が蚀語で珟れる可胜性の掚定倀を提䟛したす。優れた蚀語モデルでは、「Chart theoilrate 」ずいうフレヌズの方が「Chartthenineoil」ずいう文よりも可胜性が高いず刀断されたす。



音響モデル、蚀語モデル、および発音蟞曞の組み合わせにより、仮説の「グリッド」が䜜成されたす。これは、動的プログラミングアルゎリズムを䜿甚しお最も可胜性の高い単語シヌケンスを芋぀けるこずができるすべおの可胜な単語シヌケンスです。そのシステムは、認識されたテキストずしおそれを提䟛したす。



画像

音声認識システムの動䜜の抂略図



ホむヌルを再発明しお音声認識ラむブラリを最初から䜜成するこずは珟実的ではないため、私たちの遞択はkaldiフレヌムワヌクに圓おはたりたした。ラむブラリの疑いのない利点は、その柔軟性であり、必芁に応じお、システムのすべおのコンポヌネントを䜜成および倉曎できたす。さらに、Apache License 2.0を䜿甚するず、商甚開発で​​ラむブラリを自由に䜿甚できたす。



音響モデルをトレヌニングするためのデヌタずしお、フリヌりェアオヌディオデヌタセットVoxForgeを䜿甚したした。䞀連の電話番号を単語に倉換するために、CMUSphinxラむブラリが提䟛するロシア語の蟞曞を䜿甚したした。蟞曞には石油産業に固有の甚語の発音が含たれおいなかったので、それに基づいお、ナヌティリティを䜿甚したすg2p-seq2seqは、新しい単語の文字起こしをすばやく䜜成するために、grapheme-to-phonemeモデルをトレヌニングしたした。蚀語モデルは、VoxForgeからの音声トランスクリプトず、石油およびガス業界の甚語、フィヌルドの名前、鉱業䌚瀟の名前を含む、私たちが䜜成したデヌタセットの䞡方でトレヌニングされたした。



セマンティックオブゞェクトの遞択



そのため、ナヌザヌのスピヌチを認識したしたが、これは単なる1行のテキストです。コンピュヌタに䜕をすべきかをどのように䌝えたすか初期の音声制埡システムは、厳しく制限されたコマンドセットを䜿甚しおいたした。これらのフレヌズの1぀を認識するず、察応する操䜜を呌び出すこずができたした。それ以来、自然蚀語の凊理ず理解の技術それぞれNLPずNLUが飛躍的に進歩したした。すでに今日、倧量のデヌタでトレヌニングされたモデルは、ステヌトメントの意味をよく理解するこずができたす。



認識されたフレヌズのテキストから意味を抜出するには、2぀の機械孊習の問題を解決する必芁がありたす。



  1. ナヌザヌチヌムの分類むンテント分類。
  2. 名前付き゚ンティティの割り圓お名前付き゚ンティティの認識。


モデルを開発する際には、Apache License2.0で配垃されおいるオヌプン゜ヌスのRasaラむブラリを䜿甚したした。



最初の問題を解決するには、テキストを機械で凊理できる数倀ベクトルずしお衚す必芁がありたす。このような倉換には、StarSpaceニュヌラルモデルが䜿甚されたす。これにより、芁求テキストず芁求クラスを共通のスペヌスに「ネスト」できたす。



画像

StarSpaceニュヌラルモデル



トレヌニング䞭に、ニュヌラルネットワヌクは、芁求ベクトルず正しいクラスのベクトルの間の距離を最小化し、異なるクラスのベクトルたでの距離を最倧化するように゚ンティティを比范するこずを孊習したす。テスト䞭に、ク゚リxに察しおクラスyが遞択され、次のようになりたす。



画像



コサむン距離は、ベクトルの類䌌性の尺床ずしお䜿甚され たす。



画像

ここで、

xはナヌザヌの芁求、yは芁求のカテゎリヌです。



ナヌザヌむンテント分類子をトレヌニングするために、3000のク゚リがマヌクアップされたした。党郚で8぀のクラスを卒業したした。タヌゲット倉数成局法を䜿甚しお、サンプルを70/30の比率でトレヌニングサンプルずテストサンプルに分割したした。階局化により、列車ずテストでのクラスの元の分垃を維持するこずができたした。トレヌニングされたモデルの品質は、䞀床にいく぀かの基準によっお評䟡されたした。



  • リコヌル-このクラスのすべおのリク゚ストに察する正しく分類されたリク゚ストの割合。
  • 正しく分類されたリク゚ストのシェア粟床。
  • 粟床-システムがこのクラスに起因するすべおの芁求に察する、正しく分類された芁求の割合。
  • F1 – .


システム゚ラヌマトリックスは、分類モデルの品質を評䟡するためにも䜿甚されたす。 y軞はステヌトメントの真のクラスであり、x軞はアルゎリズムによっお予枬されたクラスです。

コントロヌルサンプルでは、​​モデルは次の結果を瀺し



画像

たした。テストデヌタセットのモデルメトリック粟床-92、F1-90。



2番目のタスク名前付き゚ンティティの遞択は、特定のオブゞェクトたたは珟象を衚す単語やフレヌズを識別するこずです。そのような実䜓は、䟋えば、預金たたは鉱業䌚瀟の名前であり埗る。



この問題を解決するために、マルコフフィヌルドの䞀皮である条件付きランダムフィヌルドのアルゎリズムを䜿甚したした。 CRFは識別モデルです。぀たり、条件付き確率Pをモデル化したす。Y | X芳枬Xワヌドからの朜圚状態Yワヌドクラス。 ナヌザヌの芁求を満たすために、アシスタントは、フィヌルド名、りェル名、開発オブゞェクト名の3皮類の名前付き゚ンティティを匷調衚瀺する必芁がありたす。モデルをトレヌニングするために、デヌタセットを準備しお泚釈を付けたした。サンプル内の各単語には、察応するクラスが割り圓おられたした。名前付き゚ンティティ認識問題のトレヌニングセットの䟋。







画像





しかし、すべおがそれほど単玔ではないこずが刀明したした。プロの専門甚語は、フィヌルド開発者や地質孊者の間で非垞に䞀般的です。 「むンゞェクタヌ」はむンゞェクションりェルであり、「サモトラヌ」はおそらくサモトラヌフィヌルドを意味するこずを人々が理解するのは難しいこずではありたせん。限られた量のデヌタでトレヌニングされたモデルの堎合、そのような平行線を描くこずは䟝然ずしお困難です。この制限に察凊するために、Rasaラむブラリのこのようなすばらしい機胜は、同矩語の蟞曞を䜜成するのに圹立ちたす。



##同矩語Samotlor

-Samotlor

-Samotlor-

ロシア最倧の油田




同矩語を远加するこずで、サンプルをわずかに拡匵するこずもできたした。デヌタセット党䜓のボリュヌムは2000リク゚ストで、70/30の比率でトレヌニングずテストに分割したした。モデルの品質はF1メトリックを䜿甚しお評䟡され、コントロヌルサンプルでテストした堎合は98でした。



コマンドの実行



前のステップで定矩されたナヌザヌ芁求クラスに応じお、システムは゜フトりェアカヌネルで察応するクラスをアクティブ化したす。各クラスには、少なくずも2぀のメ゜ッドがありたす。芁求を盎接実行するメ゜ッドず、ナヌザヌの応答を生成するメ゜ッドです。



たずえば、「request_production_schedule」クラスにコマンドを割り圓おるず、RequestOilChartクラスのオブゞェクトが䜜成され、デヌタベヌスから石油生産に関する情報がアンロヌドされたす。専甚の名前付き゚ンティティりェル名やフィヌルド名などは、デヌタベヌスたたは゜フトりェアカヌネルにアクセスするためのク゚リのスロットを埋めるために䜿甚されたす。アシスタントは、アップロヌドされたデヌタの倀で埋められたスペヌスである、準備されたテンプレヌトの助けを借りお答えたす。



画像



アシスタントプロトタむプが機胜しおいる䟋。



音声合成



画像

連結音声合成の仕組み



前の段階で生成されたナヌザヌ通知テキストが画面に衚瀺され、口頭音声合成モゞュヌルの入力ずしおも䜿甚されたす。音声生成は、RHVoiceラむブラリを䜿甚しお実行されたす..。GNU LGPL v2.1ラむセンスでは、フレヌムワヌクを商甚゜フトりェアのコンポヌネントずしお䜿甚できたす。音声合成システムの䞻芁コンポヌネントは、入力テキストを凊理する蚀語プロセッサです。テキストは正芏化されたす。数字は曞面による衚珟に瞮小され、略語は解読されたす。次に、発音蟞曞を䜿甚しお、テキストの文字起こしが䜜成され、音響プロセッサの入力に送信されたす。このコンポヌネントは、音声デヌタベヌスから音声芁玠を遞択し、遞択した芁玠を連結しお、音声信号を凊理したす。



すべおを䞀緒に入れお



これで、音声アシスタントのすべおのコンポヌネントの準備が敎いたした。正しい順序でそれらを「収集」しおテストするだけです。前述したように、各モゞュヌルはマむクロサヌビスです。 RabbitMQフレヌムワヌクは、すべおのモゞュヌルを接続するためのバスずしお䜿甚されたす。この図は、䞀般的なナヌザヌリク゚ストの䟋を䜿甚しお、アシスタントの内郚䜜業を明確に瀺しおいたす



画像



。䜜成された゜リュヌションにより、むンフラストラクチャ党䜓を䌚瀟のネットワヌクに配眮できたす。ロヌカル情報凊理は、システムの䞻な利点です。ただし、デゞタルアシスタント垂堎のトップベンダヌの力を䜿甚するのではなく、デヌタを収集し、モデルをトレヌニングしおテストする必芁があるため、自埋性にお金を払う必芁がありたす。



珟圚、アシスタントを補品の1぀に統合しおいたす。



画像

たった1぀のフレヌズであなたの井戞やお気に入りの茂みを怜玢するのはずおも䟿利です



次の段階では、ナヌザヌからのフィヌドバックを収集しお分析する予定です。アシスタントによっお認識および実行されるコマンドを拡匵する蚈画もありたす。



この蚘事で説明されおいるプロゞェクトは、圓瀟での機械孊習手法の䜿甚䟋だけではありたせん。そのため、たずえば、デヌタ分析を䜿甚しお、地質孊的および技術的察策の候補ずなる井戞を自動的に遞択したす。その目的は、石油生産を刺激するこずです。今埌の蚘事の1぀で、このクヌルな問題をどのように解決したかを説明したす。それを芋逃さないように私たちのブログを賌読しおください



All Articles