大ちゃんの駆け出し技術ブログ

RUNTEQ受講生のかわいいといわれるアウトプットブログ

【API】Speaker Recognition 概要

はじめに

こんにちは!大ちゃんの駆け出し技術ブログです。

最近は就活と仕事でそこまでプログラミング学習ができていないのですが、プログラミングを日々学習するのがエンジニアということで次に作るポートフォリオを考えています。

最近自分が通っているスクールの受講生がある面白いサービスをリリースしました。Voice Componentというサービスです。

声の成分分析ツール『 Voice component 』

これは自分の声にどんな成分が入っているのかを分析するサービスです。オリジナリティがすごい!!!

ちなみに下記がサービスのQiita記事になります。

【個人開発】「自分の声」が嫌いな人ほど使ってほしい!声成分分析サービス『Voice component』を作りました! - Qiita

使用しているAPIは大変興味深くアプリ作成者に連絡してみたところ下記APIを使用したようです。

Speaker Recognition の概要 - Speech サービス - Azure Cognitive Services

かなり面白そうですがドキュメントの量はすごい少ない印象ですね。しかし、いつか自分も使ってみたいと思えるAPIだなと思いました!ということで、少しこのAPIについて調べてみたことを今回この記事でまとめてみたいと思います!

概要

概要についてですが公式の説明をそのまま引用させていただきます。

Speaker Recognition サービスは、音声生物測定学を使用して、固有の音声特性で話者を確認および識別するアルゴリズムを提供します。 Speaker Recognition は、"だれが話しているのか" という質問に回答するために使用されます。 1 人の話者のオーディオ トレーニング データを提供すると、話者の声の固有の特性に基づいて登録プロファイルが作成されます。 次に、このプロファイルに対してオーディオ音声サンプルをクロスチェックして、話者が同じ人物であることを確認します (話者認証)。または、登録されている話者プロファイルの "グループ" に対してオーディオ音声サンプルをクロスチェックして、グループ内の任意のプロファイルと一致するかどうかを確認します (話者識別)。

一つずつ追っていきます。

peaker Recognition サービスは、音声生物測定学を使用して、固有の音声特性で話者を確認および識別するアルゴリズムを提供します。

"音声生物測定学"!?!?!?!?!?!?!?!?!?

とても難しそうな単語ですね、、、、。しかし、あとの文(固有の音声特性で話者を確認および識別するアルゴリズムを提供)から推測するに、音声の識別を利用することができるAPIだとわかります。

1 人の話者のオーディオ トレーニング データを提供すると、話者の声の固有の特性に基づいて登録プロファイルが作成されます。

"オーディオ トレーニング データ"と訳されていますが、これは音声データのことでしょう。音声データを元に音声固有の特性に基づいてデータが登録される使用ですね。例えば、自分の喋っている音声データをこのAPIに伝えることで、自分の声を分析してその特性を固有のデータとして登録してくれるわけですね!

次に、このプロファイルに対してオーディオ音声サンプルをクロスチェックして、話者が同じ人物であることを確認します (話者認証)。または、登録されている話者プロファイルの "グループ" に対してオーディオ音声サンプルをクロスチェックして、グループ内の任意のプロファイルと一致するかどうかを確認します (話者識別)。

登録した音声データを用いで2つの用途があるようですね。1つは話者認証。これは登録してある音声データと同じ特性を持っているかどうかをチェックする用途ですね。まさに認証のことです。

それに対して、話者識別は登録されているデータの "グループ" (音声の特性ごとのグループ)に当てはまるかどうかをチェックするようです。認証とは違い、その人の声の性質と登録されている音声データの特性の比較をする機能です。これが上述したVoice Componentの機能のようですね。

https://i.gyazo.com/8aca811f69cbd3dee3bf443e00872790.png

Speaker Recognition | Microsoft Azure

ここまで読んでわかることは

  1. 音声データの特性をデータとして保存
  2. 別の音声と登録されているデータが同じであるか(話者認証)、どのグループに属するか(話者識別)をチェック

APIでできる大まかな機能のようです。

次回までにやること

ここまで調べてもめちゃくちゃ興味が湧いてきました。次回からは実際にJavascriptのコードを見て使用方法を見ていきたいと思います。ただし、自分はRailsがほんの少しわかる程度ですので、別言語のコードリーディングは推測を含むことはご了承くださいmm。公式ドキュメントの解説言語が如何せん4つしかないので、、、

https://i.gyazo.com/246423394ed8b120460912de1f324df9.png

Azure-Samples/cognitive-services-speech-sdk

あとは、アプリを実際に作った人と話す機会も作りましたのでその方から色々と聞いてきたいと思います。