SpeakerMatchQ[audio,ref]
SpeakerMatchQ[{audio1,audio2,…},ref]
各 audioiの結果のリストを与える.
SpeakerMatchQ[ref]
音声オブジェクトに適用可能なSpeakerMatchQの演算子形を表す.
SpeakerMatchQ
SpeakerMatchQ[audio,ref]
SpeakerMatchQ[{audio1,audio2,…},ref]
各 audioiの結果のリストを与える.
SpeakerMatchQ[ref]
音声オブジェクトに適用可能なSpeakerMatchQの演算子形を表す.
詳細とオプション
- SpeakerMatchQは,audio と参照 ref の話者の特徴を計算し,話者の特徴間の距離が許容可能な場合はTrueを返す.
- 参照 ref は次のいずれでもよい.
-
ref 単一の参照Audioオブジェクト ref1|ref2|… 順に試される,いくつかの可能な参照 - 次は,使用可能なオプションである.
-
AcceptanceThreshold 0.5 許容できるとみなす最低の確率 Masking All 関心区間 RecognitionPrior 0.5 結果がTrueとなる事前確率 TargetDevice "CPU" 計算を行うターゲットデバイス - Maskingオプションを使って任意の audioiの関心区間を指定する.次は,使用可能な設定である.
-
All 音声全体を使う {t1,t2} t1から t2までの区間を使う {{t11,t12},{t21,t22},…} audioiの ti1から ti2までの区間を使う - SpeakerMatchQは機械学習を使う.含まれるメソッド,訓練集合,バイアスは,Wolfram言語のバージョンによって異なることがあり,与えられる結果も異なる可能性がある.
- SpeakerMatchQはリソースをダウンロードすることがある.ダウンロードされたリソースは,$LocalBaseのローカルなオブジェクトストアに保存され,LocalObjects[]でリストしたりResourceRemoveで削除したりできる.
例題
すべて開く すべて閉じる例 (2)
SpeakerMatchQ[ExampleData[{"Audio", "FemaleVoice"}], ExampleData[{"Audio", "MaleVoice"}]]SpeakerMatchQ[AudioTimeStretch[ExampleData[{"Audio", "FemaleVoice"}], 1.5], ExampleData[{"Audio", "FemaleVoice"}]]スコープ (3)
録音中の話者がいくつかの参照のいずれかと一致するかどうかを調べる:
SpeakerMatchQ[\!\(\*AudioBox[""]\), ExampleData[{"Audio", "MaleVoice"}] | ExampleData[{"Audio", "FemaleVoice"}]]録音のリストにある話者の中に参照と一致するものがあるかどうかを調べる:
list = {ExampleData[{"Audio", "MaleVoice"}], ExampleData[{"Audio", "FemaleVoice"}]};SpeakerMatchQ[list, ExampleData[{"Audio", "MaleVoice"}]]SpeakerMatchQの演算子形を使う:
list = {ExampleData[{"Audio", "MaleVoice"}], ExampleData[{"Audio", "FemaleVoice"}]};GroupBy[list, SpeakerMatchQ[ExampleData[{"Audio", "MaleVoice"}]]]オプション (4)
AcceptanceThreshold (1)
Masking (2)
デフォルトで,音声録音全体が比較される.このため,話者が複数のときはうまくいかないことがある:
a = AudioJoin[{ExampleData[{"Audio", "FemaleVoice"}], ExampleData[{"Audio", "MaleVoice"}]}];SpeakerMatchQ[a, ExampleData[{"Audio", "MaleVoice"}]]SpeakerMatchQ[a, ExampleData[{"Audio", "MaleVoice"}], Masking -> {Quantity[4.3, "Seconds"], Quantity[6.7, "Seconds"]}]a = ExampleData[{"Audio", "FemaleVoice"}];
b = ExampleData[{"Audio", "MaleVoice"}];
list = AudioJoin /@ {{a, b}, {b, a}};SpeakerMatchQ[list, ExampleData[{"Audio", "MaleVoice"}]]SpeakerMatchQ[list, ExampleData[{"Audio", "MaleVoice"}], Masking -> {{Quantity[0, "Seconds"], Quantity[2.4, "Seconds"]}, {Quantity[4.3, "Seconds"], Quantity[6.7, "Seconds"]}}]RecognitionPrior (1)
SpeakerMatchQ[ExampleData[{"Audio", "FemaleVoice"}], ExampleData[{"Audio", "MaleVoice"}], RecognitionPrior -> .5]SpeakerMatchQ[AudioAmplify[ExampleData[{"Audio", "MaleVoice"}], .9], ExampleData[{"Audio", "MaleVoice"}], RecognitionPrior -> .8]アプリケーション (3)
a = ExampleData[{"Audio", "FemaleVoice"}];list = Table[AudioTimeStretch[a, s], {s, 1, 5, .5}];SpeakerMatchQ[list, a]a = ExampleData[{"Audio", "MaleVoice"}];list = Table[AudioPitchShift[a, s, Method -> "Speech"], {s, 1, 2, .2}];
SpeakerMatchQ[list, a]Spoken Digit Commandデータ集合中で,録音の部分集合について話者が一致する行列を構築する:
testdata = ResourceData["Spoken Digit Commands", "TestData"];
Length[testdata]RandomSample[testdata, 3]//Datasetデータ集合に2つから5つのサンプルがある話者からランダムに10人を選ぶ:
speakers = Keys@RandomSample[Select[Counts[testdata[[All, "SpeakerID"]]], 2 ≤ # ≤ 5&], 10];それらの話者に対応するすべての録音を抽出し,話者のIDによってソートする:
testsubset = RandomSample[Select[testdata, MemberQ[speakers, #SpeakerID]&]];
testsubset = SortBy[testsubset, #SpeakerID&];DistanceMatrix[testsubset[[All, "Input"]], DistanceFunction -> (Boole[SpeakerMatchQ[##]]&)]//MatrixPlot特性と関係 (1)
SpeakerMatchQは入力録音について話者の特徴を計算し,埋め込まれたそれらを比較する.
Spoken Digit Commandデータ集合から,録音が2つから5つしかない話者の録音を抽出する:
testdata = ResourceData["Spoken Digit Commands", "TestData"];
speakers = Keys@RandomSample[Select[Counts[testdata[[All, "SpeakerID"]]], 2 ≤ # ≤ 5&], 10];
testsubset = RandomSample[Select[testdata, MemberQ[speakers, #SpeakerID]&]];
testsubset = SortBy[testsubset, #SpeakerID&];features = FeatureExtract[testsubset[[All, "Input"]], "SpeakerFeatureVector"];RandomChoice[features]//ListPlot[#, Filling -> Axis]&話者の特徴を比較し,それらについての距離行列をプロットする:
distances = DistanceMatrix[features, DistanceFunction -> CosineDistance];
MatrixPlot[distances]話者の特徴が一致するかどうかを示すバイナリ距離行列を計算する:
DistanceMatrix[features, DistanceFunction -> (Boole[CosineDistance[##] ≤ .4]&)]//MatrixPlotSpeakerMatchQの結果と比較する.差は録音の中に音声が検出できないものがあるからである:
Quiet[DistanceMatrix[testsubset[[All, "Input"]], DistanceFunction -> (Boole[SpeakerMatchQ[##]]&)]]//MatrixPlot考えられる問題 (1)
SpeakerMatchQは,最初に有声区間を求める.入力のどれにも声が検出できない場合は失敗する:
list = {ExampleData[{"Audio", "FemaleVoice"}, "Audio"], ExampleData[{"Audio", "IRStairway"}, "Audio"], ExampleData[{"Audio", "NoisyTalk"}, "Audio"]};SpeakerMatchQ[list, ExampleData[{"Audio", "MaleVoice"}]]テキスト
Wolfram Research (2020), SpeakerMatchQ, Wolfram言語関数, https://reference.wolfram.com/language/ref/SpeakerMatchQ.html.
CMS
Wolfram Language. 2020. "SpeakerMatchQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SpeakerMatchQ.html.
APA
Wolfram Language. (2020). SpeakerMatchQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SpeakerMatchQ.html
BibTeX
@misc{reference.wolfram_2026_speakermatchq, author="Wolfram Research", title="{SpeakerMatchQ}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/SpeakerMatchQ.html}", note=[Accessed: 10-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_speakermatchq, organization={Wolfram Research}, title={SpeakerMatchQ}, year={2020}, url={https://reference.wolfram.com/language/ref/SpeakerMatchQ.html}, note=[Accessed: 10-November-2026]}