wake-up-neo.com

iOS Text to Speech Api

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.

44
Jesse

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

131
Ali Abbas

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)    
6
Matt Bearson

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.

3
Tim

Hier finden Sie eine Text-zu-Sprache (TTS) -Beispiel-App (Objective-C), die auf diesem basiert.

0
d1jhoni1b