2012-03-30 14 views
38

iOS-Geräte verfügen über eingebettete Sprachsynthesizer für die VoiceOver-Funktion von Accessibility. Gibt es eine Möglichkeit, diese Synthesizer programmatisch zur Erzeugung textbasierter Sounds zu verwenden?Wie programmiere ich iOS-Sprachsynthesizer? (Text zu Sprache)

Mein Problem ist: Ich arbeite an einer einfachen App für Kinder Farben zu lernen und anstatt die Namen der Farben in jeder Sprache aufzunehmen, die ich unterstützen und als Audiodateien speichern möchte, würde ich lieber die Sounds zur Laufzeit mit einigen Text-to-Speech-Funktion.

Dank

[EDIT: Diese Frage vorge iOS7 gefragt wurde, so dass Sie wirklich die gestimmt Antwort in Betracht ziehen sollten und ältere ignorieren, wenn Sie eine Software Archäologe sind]

Antwort

61

ab iOS 7 stellt Apple-this API .

Siehe this Antwort.

Objective-C

#import <AVFoundation/AVFoundation.h> 
… 
AVSpeechUtterance *utterance = [AVSpeechUtterance 
          speechUtteranceWithString:@"Hello World!"]; 
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init]; 
[synth speakUtterance:utterance]; 

Swift

import AVFoundation 
… 
let utterance = AVSpeechUtterance(string: "Hello World!") 
let synth = AVSpeechSynthesizer() 
synth.speakUtterance(utterance) 
+0

Können wir die gesprochene Stimme als MP3-Datei speichern? –

+0

@Onato Wie kann ich bei Text to Speech anhalten? – ShreePool

4

Leider ist iOS nicht aussetzen eine öffentliche API zum programmatischen Erzeugen von Sprache.

Sie können eine private API verwenden, wenn Sie nicht im App Store einreichen.

Andernfalls finden Sie die Antworten auf this question für eine Reihe von Bibliotheken von Drittanbietern, die Sie verwenden können.

+7

Lasst uns wünschen, dass Apple-Leute hierher kommen und dies als "bitte-machen-die-API-öffentliche" Anfrage lesen;) –

+1

Apple kümmert sich nicht einmal um die Anfragen, die direkt an sie gesendet werden, also würde ich nicht zu viel hoffen :( – MrTJ

+7

in der Tat, Apple hat es getan. :) –

0

Sie dies hilfreich Making Your iPhone Application Accessible

Wie bereits erwähnt in „iPhone Accessibility API und Tools“ Standard UIKit Kontrollen und Ansichten sind automatisch zugänglich finden konnten. Wenn Sie nur standardmäßige UIKit-Steuerelemente verwenden, müssen Sie wahrscheinlich nicht viel zusätzliche Arbeit verrichten, um sicherzustellen, dass Ihre Anwendung zugänglich ist. In diesem Fall müssen Sie als nächsten Schritt sicherstellen, dass die von diesen Steuerelementen bereitgestellten Standardattributinformationen in Ihrer Anwendung sinnvoll sind. „Versorgung Präzise und Hilfreiche Attributinformationen“ Um zu erfahren, wie Sie dies tun, siehe

11
#import <AVFoundation/AVFoundation.h> 

AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc] init]; 
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Text to say"]; 
[av speakUtterance:utterance]; 
+0

Können wir die geäußerte Stimme in eine MP3-Datei speichern? –

4

Dieser Code für mich gearbeitet mit Swift und iOS 8 sowohl auf Simulator und iPhone 6 ich den Standard AVFoundation hinzuzufügen benötigen Bibliothek:

import AVFoundation 

// ... 

func onSayMeSomething() { 
    let utterance = AVSpeechUtterance(string: "Wow! I can speak!") 
    utterance.pitchMultiplier = 1.3 
    utterance.rate = AVSpeechUtteranceMinimumSpeechRate * 1.5 
    let synth = AVSpeechSynthesizer() 
    synth.speakUtterance(utterance) 
} 
Verwandte Themen