Api texte-parole iOS
je n'arrive pas à trouver quoi que ce soit sur ce. Y a-t-il des classes Siri ou des API dans iOS7 qui vous permettent de faire du texte à la parole? Tout ce que je suis en train de faire est quelque chose comme ce qui suit:
[siriInstance say:@"This is a test"];
et puis Siri le dit de mon application.
il semble que nous devrions être capables de faire cela, non? Semble comme une chose banale.
4 réponses
depuis iOS 7 vous avez une nouvelle Api TTS.
Dans L'Objectif C
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some text"];
[utterance setRate:0.2f];
[synthesizer speakUtterance:utterance];
Rapide
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Some text")
utterance.rate = 0.2
vous pouvez aussi changer la voix comme ceci:
utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR")
Et puis speek
Dans Swift 2
synthesizer.speakUtterance(utterance)
Dans Swift 3
synthesizer.speak(utterance)
N'oubliez pas de import AVFoundation
méthodes Utiles
vous pouvez arrêter ou mettre en Pause tous les discours en utilisant ces deux méthodes :
- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;
AVSpeechBoundary
indique si le discours doit s'arrêter ou s'arrêter immédiatement (AVSpeechBoundaryImmediate
) ou elle devrait s'arrêter après le mot actuellement prononcé (AVSpeechBoundaryWord
).
cochez la case AVSpeechSynthesizer Doc
C'est la réponse D'Ali ABBAS pour une utilisation dans un terrain de jeu:
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)
Je n'ai jamais travaillé spécifiquement avec Siri. J'ai peut-être tort, mais je pense que l'intégration avec Siri est très difficile utilisation privée de l'API.
je voudrais jeter un oeil au cadre d'openears pour IOS. J'ai fait quelques travaux de base avec cela dans le passé et il fait à la fois la reconnaissance vocale hors ligne et la synthèse de la parole/text-To-speech