iOS objective-c xCode 日本語読み上げ(音声合成)

少し前に、日本語を読み上げさせたくて調べた事がありました。
その時は、下の2種類を発見しました。
・OpenEars(フリーのiOS向け音声認識/音声合成ライブラリ
・N2 (KDDI研究所の音声合成ソフトウェア)

前者で実装してみたのですが、先輩方がアップして下さっている
ソースをコピペしてみるも、コンパイルエーラー多数で動かず。
エラーを取り除いて見ても、発話せず・・・。

後者は、販売価格30万円~と高額。
さらに、アプリ配布にロイヤリティが発生すると言う事で貧乏人には論外。

すぐ欲しかったわけではないので、ペンディング状態でした。
しかし、たまたま「webりーだー」というウェブの読み上げアプリを発見しました。
https://itunes.apple.com/jp/app/webrida-yin-sheng-dumi-shanggeburauza/id485960506?mt=8

OpenEarsは日本語対応してなかったはずですが、webりーだーでは日本語もなかなか。
N2を使ってるのか?と思ったのですがフリーアプリ。
絶対何かあるはずだと調べたところ、発見しました!!

iOS7で沢山の魅力的なAPIが追加されていたのですね。
情報収集不足でした。

以下のサイトで、詳しく紹介されていました。
http://qiita.com/shu223/items/3d139133c9116f115d59

Speech Synthesisを利用すれば、超簡単に実装ができました。

新規でプロジェクトを作成して以下、3ステップだけ。

①フレームワークの追加
Linked Frameworks and Libraries に AVFoundation.framework を追加する

②***.h ファイルの編集
■追加

#import <AVFoundation/AVFoundation.h>

③***.m ファイル編集(起動時に喋らせる場合)
■編集

-(void)viewDidLoad
{
    [super viewDidLoad];

    // AVSpeechSynthesizerを初期化する。
    AVSpeechSynthesizer* speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
    
    // AVSpeechUtteranceを読ませたい文字列で初期化する。
    NSString* speakingText = @"昔、昔、ある所に、おじいさんとおばあさんが住んでいました。";
    AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:speakingText];

    // 日本語voiceをAVSpeechUtteranceに指定。
    AVSpeechSynthesisVoice* JVoice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ja-JP"];
    utterance.voice =  JVoice;

    // 読むスピード(1.0fが最高速)
    utterance.rate = 0.35f;
    
    // AVSpeechSynthesizerにAVSpeechUtteranceを設定してスピーチ開始
    [speechSynthesizer speakUtterance:utterance];
}

以上!と、凄く簡単に完成しました。
あの時、時間やお金を使わなくて本当に良かった。
KDDI研究所さん、残念ですねw

他にも、面白そうなAPI追加されてますので、また必要になった時に試してみましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です