測る対象は、ブログ「発声から何を計測するか/何を測るか」で次のようになりました。
  • 滑舌
    • 周波数
    • 置換わり
  • 抑揚
    • 音程の変化
    • 音圧の変化
  • テンポ
    • 速度
    • 区切り
  • 声の艶
    • 倍音の構成比
  • 判りやすさ
    • 音声認識の信頼度
8種類もあって計測が大変そうですが、実は計測するという視点でみると、次の2グループに纏められます。
  1. 周波数グループ
  2. 音声文字変換グループ
それぞれがカバーする計測を見ていきましょう。

周波数グループ

このグループでカバーする計測は、
  • 音程の変化
  • 区切りの検出
  • 音圧の変化
  • 倍音の構成
の4種類です。

音程の変化

音程の変化は、各モーラの周波数の変化に他なりません。従って、モーラ毎の周波数を収集することで、音程の変化が判ります。

区切りの検出

区切り箇所と数は、ポーズの部分に該当します。
ポーズは、音の無い状態が一定時間続く部分です。通常1秒に満たない短い時間ですが、この間は周波数の値が0となります。
この周波数値0が単位モーラ時間(0.129秒)続いた箇所をポーズと決めてよいとする報告があり*1
「(音響的ポーズは、)日本語においては拍を最小値・長さの単位とすることが適当であろう」
としています。
一拍分の時間は、ひとそれぞれで異なりますが、ここでは計測と比較を目的としていますので、平均モーラ時間を「標準的な一拍時間」と見做して判定することにしました。

音圧の変化

周波数を観測するには、音声をコンピュータに聞かせてアナログの世界からデジタルの世界に変換します。音はこの例(北大路魯山人著「甘鯛の姿焼き」冒頭抜粋)のように波形データとして、まず認識します。

サンプル音声(SV1)

※再生釦で音声・文字が再生します。
この音声は、長年に渡り音読サービスを提供している女性の方に吹き込んで頂きました。以降、サンプル音源や模範音声として活用させて頂いています。
この波形の振幅の大きさが音の大きさです。この例では、開始から0.8~1.2秒あたりに二つの膨らみがあります。「東京」の「東」と「京」の部分です。この膨らみの大小が音圧です。周波数測定の元となる波形から直接計測することができます。

倍音の構成

音は、時間と共に変化しますので、その構成を調べる為には、変化しない程度の短い時間幅で計測する必要があります。ここでは、通常の音声を対象にしていますので、その単位は、各モーラとしました。すなわち、発声の「こ」「の」「りょ」「ー」「り」の各モーラに対する周波数の構成を調べます。各モーラは、それぞれ複数の周波数の固有の組合せで構成されていますが、主となる周波数「基音」という基本的な周波数が存在します。この基音を計測し、更にその整数倍の音である倍音とそれ以外の非倍音の含み具合が観測できれば、結果としてその音の「艶」を決めることができます。

音声文字変換グルーブ

このグループでは、以下の2種類の計測が可能です。
  • 置換わり検出
  • 速度
  • 音声認識の信用度
また、周波数グループで取得された周波数情報と、変換文字の対応付けが可能になることから、周波数グルーブの各計測結果を周波数のグラフではなく、変換文字の羅列として、よりわかり易い表示が可能となります。

置換わり検出

「音声が正しくない」と判定するには、当然ですがその音声を認識すること、即ちマイクを通して収集される音声から文字への変換が必要です。
最近は、非常に優秀な音声認識サービスが無償で提供されていて、音声から各文字または語単位で、変換された漢字文字と振り仮名さらには、それらの開始秒を知ることができます。

携帯電話などで、日々利用されている方も多いと思いますが、音声認識の多くは日進月歩のAI技術により提供されています。Microsoft社のAzureと、Google社のSpeech to Texが有名ですが、この計測器では後者の音声認識サービスを利用しています。(Google Cloud - Speech-to-Text: 自動音声認識)

良質の音声による音声認識結果を元に、試験者の音声認識結果を比較することで、違う箇所が「置換わり」の候補となります。「候補」としたのは、実は良質の音声といえども、音声認識側が100%正しく(というか期待通りに)解釈するとは限りません。この点は、今後のAIの発展と共に解消していくでしょう。

速度

変換後の平仮名列から読み手の平均モーラ時間を算出し、NHK標準速度と比較することができます。

音声認識の信頼度

Speech to Textでは、音声認識で変換した文字列と同時に、「信頼値」と呼ぶ推定値が返されます。
confidence 値は 0.0 と 1.0 の間の推定値です。この値は、音声の各単語に割り当てられた「尤度」を集計して計算されます。数値が大きいほど、個々の単語が正しく認識された可能性が高くなります。(「Cloud speech-to-Text>ドキュメント>ガイド>Speech-to-Textの基本」からの抜粋)

この数値は、各単語に割当てた尤もらしいさを文章全体に積算されたものです。通常は、複数の選択肢の中で最も高いスコアの文章が返却されますが、AIが蓄積する知識ベースから、文脈によっては他の選択肢より低いスコアの文書が選択される場合があります。従って、この信頼値を鵜呑みするのは危険ですが、ドリルなど既知の文章で活用する場合は、事前にドリル側のスコアが明らかですので、利用価値があるでしょう。
 

【参照ページ】

両グループの連携

一般に音声の解析結果は、音の波形や周波数グラフなどで示されますが、音の高低・強弱やその構成を折れ線グラフ等で理解するのは、我々素人には少々敷居が高いのではないか? と、常々感じています。原因の一つは、音声で語られている文字列との連携が取れていないか、あるいは判りにくいことにあると思います。

音声グラフと対応する文字
音声グラフと対応する文字

Speech to Textでは、音声認識の結果として、各モーラに対する開始時間を知ることが出来ます。ですから、各文字に対して、その周波数すなわち音程、音圧さらに倍音の構成などを対応づけて表示することが可能となります。
これにより、直感的に理解が深まるのではないかと、期待していますが、かと言って次のようなグラフではやはり解釈が難しい。工夫が必要です。


MPMによるピーク相関と音程のグラフ
MPMによるピーク相関と音程のグラフ