web-dev-qa-db-ja.com

iOS Text To Speech Api

これについては何も見つけられないようです。 iOS7には、テキストから音声への変換を可能にするSiriクラスまたはAPIがありますか?

[siriInstance say:@"This is a test"];

そして、Siri=私のアプリから言ってください。

これができるはずですよね?些細なことのようです。

49
Jesse

IOS 7以降、新しいTTS Apiがあります。

Objective Cで

_AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some text"];
[utterance setRate:0.2f];
[synthesizer speakUtterance:utterance];
_

Swiftでは

_let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Some text")
utterance.rate = 0.2
_

次のように音声を変更することもできます。

_utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR")
_

そして、覗きます

  • In Swift 2synthesizer.speakUtterance(utterance)

  • In Swift 3synthesizer.speak(utterance)

_import AVFoundation_を忘れないでください

有用な方法

次の2つの方法を使用して、すべての音声を停止または一時停止できます。

_- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;
_

AVSpeechBoundaryは、スピーチをすぐに一時停止または停止する(AVSpeechBoundaryImmediate)か、現在話されているWordの後に一時停止または停止する(AVSpeechBoundaryWord)かを示します。

AVSpeechSynthesizer Doc を確認してください

142
Ali Abbas

これは、プレイグラウンドで使用するためのALi ABBASの回答です。

import UIKit
import AVKit
import AVFoundation
import PlaygroundSupport

var str = "Hello, playground"

let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: str)
utterance.rate = 0.4
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")

//for playground only
let playerViewController = AVPlayerViewController()
PlaygroundPage.current.liveView = playerViewController.view
//

synthesizer.speak(utterance)    
9
Matt Bearson

私は特にSiriで仕事をしたことがありません。私は間違っているかもしれませんが、プライベートAPIを使用してSiriと統合することは非常に難しいと思います。

IOSのopenearsフレームワークを見てみます。私は過去にこれでいくつかの基本的な仕事をしたことがあり、オフライン音声認識と合成音声/テキスト音声変換の両方を行います

希望 this が役立ちます。

3
Tim

ここ スピーチ(TTS)のサンプルアプリ(Objective-C)は this に基づいています

0
d1jhoni1b