2

私は複数の話し手を認識している音声認識アプリケーションを書くことに興味があります。たとえば、Bill、Joe、Janeが話している場合、アプリケーションは音声をテキストとして認識するだけでなく、話し手(結果を0,1,2など)で分類することもできます.Googleは音声を人)。Googleクラウドスピーチ:ボイスを区別する

私はこれを行う可能性のある音声認識APIを探しており、Google Cloud SpeechはトップランクのAPIとして登場しています。 APIドキュメントを見て、そのような機能が利用可能かどうかを確認しました。

私の質問です:この機能はありますか?

注:Googleのサポートページには、エンジニアが時にはSOに関するこれらの質問に回答することがあるため、質問の「意志」部分に誰かが回答する可能性があると思われます。

答えて

1

私は、音声認識APIの組み込み部分としてこれを行う現在のプロバイダは知りません。

私はMicrosoft Cognitive Services - Speaker Recognition APIと似たようなものを使用しましたが、オーディオは別途APIに提供され、Speech Recognition APIを使用します。

この2つを組み合わせることができれば便利です。

+0

おかげで、私はそれらのリードで何かを把握することができるかもしれません。私はここで "あなたは否定的なことを証明することはできません"と誤解させて、誰かが "実際の"解決策を思い付くかどうかを2日待つつもりです。 2日後に「実際の」ソリューションが掲載されていない場合は、これを承認済みの回答としてマークします。 –

+0

私は嘘をついた。私は5日遅れました。病理学的な楽観主義...プログラマーの悩み: –

+1

@Paulありがとう:)私は他の何かにつまずく場合、私は戻って私の答えを更新します。 – brandall

4

IMBの音声テキストサービスがそれを行います。あなたが非常に単純な、彼らの残りのサービスを使用する場合は、URLのパラメータで特定された別の話し手を追加することを追加します。ここでのドキュメント(https://console.bluemix.net/docs/services/speech-to-text/output.html#speaker_labels

それは一種の、このように動作します:彼らはまた、持っている

{ 
"results": [ 
    { 
     "alternatives": [ 
     { 
      "timestamps": [ 
      [ 
       "hello", 
       0.68, 
       1.19 
      ], 
      [ 
       "yeah", 
       1.47, 
       1.93 
      ], 
      [ 
       "yeah", 
       1.96, 
       2.12 
      ], 
      [ 
       "how's", 
       2.12, 
       2.59 
      ], 
      [ 
       "Billy", 
       2.59, 
       3.17 
      ], 
      . . . 
      ] 
      "confidence": 0.821, 
      "transcript": "hello yeah yeah how's Billy " 
     } 
     ], 
     "final": true 
    } 
    ], 
    "result_index": 0, 
    "speaker_labels": [ 
    { 
     "from": 0.68, 
     "to": 1.19, 
     "speaker": 2, 
     "confidence": 0.418, 
     "final": false 
    }, 
    { 
     "from": 1.47, 
     "to": 1.93, 
     "speaker": 1, 
     "confidence": 0.521, 
     "final": false 
    }, 
    { 
     "from": 1.96, 
     "to": 2.12, 
     "speaker": 2, 
     "confidence": 0.407, 
     "final": false 
    }, 
    { 
     "from": 2.12, 
     "to": 2.59, 
     "speaker": 2, 
     "confidence": 0.407, 
     "final": false 
    }, 
    { 
     "from": 2.59, 
     "to": 3.17, 
     "speaker": 2, 
     "confidence": 0.407, 
     "final": false 
    }, 
    . . . 
    ] 
} 

curl -X POST -u {username}:{password} 
--header "Content-Type: audio/flac" 
--data-binary @{path}audio-multi.flac 
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel&speaker_labels=true" 

それがこのような結果とスピーカーのラベルでJSONを返します。ウェブ・ソケット・オプションと、これにアクセスする異なるプラットフォーム用のSDKを提供します。

幸運

-1

Googleは最近、ユーザーの場所、名前、およびアプリ内のユーザーの一意のIDにアクセスする機能をリリースしました。 getUserName使用してユーザー名を取得するために https://developers.google.com/actions/reference/nodejs/AssistantApp#getUser

例:

ドキュメントはで見つけることができるリンクについて

const app = new DialogflowApp({request: req, response: res}); 
const REQUEST_PERMISSION_ACTION = 'request_permission'; 
const SAY_NAME_ACTION = 'get_name'; 

function requestPermission (app) { 
const permission = app.SupportedPermissions.NAME; 
app.askForPermission('To know who you are', permission); 
} 

function sayName (app) { 
    if (app.isPermissionGranted()) { 
    app.tell('Your name is ' + app.getUserName().displayName)); 
    } else { 
    // Response shows that user did not grant permission 
    app.tell('Sorry, I could not get your name.'); 
    } 
} 
const actionMap = new Map(); 
actionMap.set(REQUEST_PERMISSION_ACTION, requestPermission); 
actionMap.set(SAY_NAME_ACTION, sayName); 
app.handleRequest(actionMap); 
+0

これはOPが求めていることではありません。 – brendan

関連する問題