Ich kann anscheinend nichts dazu finden. Gibt es in iOS7 Siri -Klassen oder APIs, mit denen Sie Text-zu-Sprache-Anweisungen ausführen können? Ich versuche nur so etwas wie das Folgende:
[siriInstance say:@"This is a test"];
Und dann Siri sagen Sie es aus meiner App.
Es scheint, dass wir dazu in der Lage sein sollten, nicht? Scheint eine banale Sache zu sein.
Seit iOS 7 gibt es eine neue TTS-API.
In Ziel C
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some text"];
[utterance setRate:0.2f];
[synthesizer speakUtterance:utterance];
In Swift
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Some text")
utterance.rate = 0.2
Sie können die Stimme auch so ändern:
utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR")
Und dann sprechen
In Swift 2synthesizer.speakUtterance(utterance)
In Swift 3synthesizer.speak(utterance)
Vergessen Sie nicht, import AVFoundation
Hilfreiche Methoden
Mit diesen beiden Methoden können Sie die gesamte Sprache anhalten oder anhalten:
- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;
Die Variable AVSpeechBoundary
gibt an, ob die Sprache sofort angehalten oder gestoppt werden soll (AVSpeechBoundaryImmediate
) oder nach dem aktuell gesprochenen Wort (AVSpeechBoundaryWord
) angehalten oder gestoppt werden soll.
Überprüfen Sie den AVSpeechSynthesizer Doc
Dies ist die Antwort von ALi ABBAS für den Einsatz auf einem Spielplatz:
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)
Ich habe noch nie speziell mit Siri gearbeitet. Ich bin vielleicht falsch, aber ich denke, die Integration mit Siri ist mit privaten APIs sehr schwierig.
Ich würde mir das openears-Framework für IOS ansehen. Ich habe in der Vergangenheit einige grundlegende Arbeiten damit gemacht, und es macht sowohl Offline-Spracherkennung als auch synthetisierte Sprache/Text-zu-Sprache
Hoffe das hilft dir.