les appareils iOS ont des synthétiseurs vocaux intégrés pour la fonction VoiceOver d'Accessibility. Existe-t-il un moyen d'utiliser ces synthétiseurs par programmation pour générer des sons textuels?
Mon problème est: je travaille sur une application simple pour que les enfants apprennent les couleurs et plutôt que d'enregistrer les noms des couleurs dans chaque langue que je veux prendre en charge et les stocker sous forme de fichiers audio, je préfère générer les sons à l'exécution avec une fonction de synthèse vocale.
Merci
[EDIT: cette question a été posée avant iOS7, vous devriez donc vraiment considérer la réponse votée et ignorer les plus anciennes, sauf si vous êtes un archéologue logiciel]
À partir d'iOS 7, Apple fournit this API.
Voir cette réponse.
Objectif-C
#import <AVFoundation/AVFoundation.h>
…
AVSpeechUtterance *utterance = [AVSpeechUtterance
speechUtteranceWithString:@"Hello World!"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];
Rapide
import AVFoundation
…
let utterance = AVSpeechUtterance(string: "Hello World!")
let synth = AVSpeechSynthesizer()
synth.speakUtterance(utterance)
#import <AVFoundation/AVFoundation.h>
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc] init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Text to say"];
[av speakUtterance:utterance];
Ce code a fonctionné pour moi avec Swift et iOS 8 sur Simulator et iPhone 6. J'avais besoin d'ajouter la bibliothèque AVFoundation standard:
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)
}
Malheureusement, iOS n'expose pas d'API publique pour générer de la parole par programmation.
Il y a une API privée que vous pouvez utiliser si vous ne soumettez pas à l'App Store.
Sinon, consultez les réponses à cette question pour un certain nombre de bibliothèques tierces que vous pouvez utiliser.
vous pourriez trouver cela utile Rendre votre application iPhone accessible
Comme indiqué dans "API et outils d'accessibilité pour iPhone", les commandes et vues UIKit standard sont automatiquement accessibles. Si vous utilisez uniquement des contrôles UIKit standard, vous n'aurez probablement pas à faire beaucoup de travail supplémentaire pour vous assurer que votre application est accessible. Dans ce cas, votre prochaine étape consiste à vous assurer que les informations d'attribut par défaut fournies par ces contrôles sont pertinentes dans votre application. Pour savoir comment procéder, voir "Fournir des informations d'attribut précises et utiles".