連載
» 2017年04月05日 05時00分 UPDATE

認識系API活用入門(3):テキスト→音声変換の「Text To Speech API」の使い方と、2017年3月現在のWatsonとの違い (1/3)

コグニティブサービスのAPIを用いて、「現在のコグニティブサービスでどのようなことができるのか」「どのようにして利用できるのか」「どの程度の精度なのか」を検証していく連載。今回は、Text To Speech APIの概要と使い方を解説し、他のサービスとの違いを4パターンで検証する。

[岩本禎史,株式会社クロスキャット]

※本稿は2017年3月10日の情報を元に作成しています。この記事内で使用している画面やコグニティブサービスの仕様は変更になっている場合があります。

 本連載「認識系API活用入門」では、マイクロソフトのコグニティブサービスのAPIを用いて、「現在のコグニティブサービスでどのようなことができるのか」「どのようにして利用できるのか」「どの程度の精度なのか」を検証していきます。連載第1回の「Deep Learningの恩恵を手軽に活用できるコグニティブサービスとは」では、コグニティブサービスとは何かの概要とAPIを使うための準備の仕方を説明しました。

 今回はText To Speech APIを試します。

Text To Speech APIとは

 Text To Speech APIは、テキストと言語をAPIに渡すと、その言語でテキストを発話した音声データを返してくれます。また、女性の声か男性の声かを選択できます。ちなみに日本語の女性の声は「Ayumi」、男性の声は「Ichiro」という名前だそうです。

使用できる言語

 Text To Speech APIで使用できる言語についての最新の対応状況は下記URLで確認できます。

活用シナリオ

 SiriやCortanaのようにユーザーと音声で対話させたいアプリケーションを作る場合、このAPIを使って、発話させたい言葉をテキストで送ることによって、アプリケーションにより自然な会話を行わせることができます。

ドキュメント

 Text To Speech APIのドキュメントは下記URLにあります。

Text To Speech APIのページ

利用申し込み

 Text To Speech APIを使用するにはマイクロソフトのAzureサービス上で利用開始の手続きを行う必要があります。連載第1回でサービスの申し込みの詳細な手順は紹介しているので割愛しますが、Speech To Text APIは「Bing Speech API」の1つなので、「API Type」は「Bing Speech API」を指定します。「Account Name」は下の例ではAPI名に合わせて「BingSpeechAPI」としています。「Pricing Tier(価格レベル)」は無料で使用できる「F0 Free」を指定します。

Bing Speech APIの申し込み

 作成ボタンをクリックすると、デプロイが開始されます。デプロイは1分もかからずに完了するかと思います。デプロイが完了したら「すべてのリソース」から先ほど作成した Bing Speech API をクリックします。

作成したBing Speech APIのリソース

 「Resource Management」の下の「Keys」をクリックすると、Bing Speech APIにアクセスするために必要なキー(Ocp-Apim-Subscription-Key)を取得することができます。この「Key1」の値をOcp-Apim-Subscription-Keyとしてプログラム内で使用しますので、コピーしておいてください。また、このキーの値は外部に知られることのないように大切に扱ってください。

Ocp-Apim-Subscription-Keyの取得

作成するアプリケーションについて

 今回作成するアプリケーションの画面は以下のようになります。発話させたい言葉を入力するテキストボックスと、その言語、声の性別、音声ファイルの形式を指定してボタンをクリックすると、音声ファイルを取得して再生する、というアプリケーションです。

アプリケーションの画面

プロジェクトの作成

 Visual Studioを起動し、プロジェクト名を「TextToSpeechAPI」として新規プロジェクトを作成します。C#のWPFアプリケーションを作成します。

新しいプロジェクトの作成

画面の作成

 MainWindow.xamlは以下の通りです(※画面部分のソースコードの解説は本連載の趣旨から外れるので割愛します)。

<Window x:Class="TextToSpeechAPI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TextToSpeechAPI"
        mc:Ignorable="d"
        Title="Text To Speech API" Height="350" Width="525">
    <Grid>
        <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
            <TextBlock Text="発話させたい言葉を入力してください" />
            <TextBox Name="tboxSpeechText" Width="500" Height="80" TextWrapping="Wrap" />
            <ComboBox Name="cmbLanguage" Width="120" Margin="0,10,0,0">
                <ComboBoxItem Content="en-US" />
                <ComboBoxItem Content="ja-JP" IsSelected="True" />
            </ComboBox>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,10,0,0">
                <TextBlock Text="声の性別" Width="70"/>
                <RadioButton Name="rdoFemale" Content="女性の声" GroupName="rdoGroupGender" IsChecked="True" />
                <RadioButton Name="rdoMale" Content="男性の声" GroupName="rdoGroupGender" Margin="30,0,0,0"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,10,0,0">
                <TextBlock Text="音声ファイル形式" Width="100"/>
                <RadioButton Name="rdoWAV" Content="WAV" GroupName="rdoGroupAudioFormat" IsChecked="True" />
                <RadioButton Name="rdoMP3" Content="MP3" GroupName="rdoGroupAudioFormat" Margin="20,0,0,0"/>
            </StackPanel>
 
            <Button Name="btnCallTextToSpeech" Content="G O" Click="btnCallTextToSpeech_Click" Width="200" Height="50" Margin="0,20,0,0"/>
            <TextBlock Name="tblkMessage" TextWrapping="Wrap"/>
            <MediaElement Name="mePlayWav" />
        </StackPanel>
    </Grid>
</Window>
MainWindow.xaml
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。