Текст iOS для речи Api
Кажется, я ничего не могу найти по этому поводу. Существуют ли какие-либо классы Siri или API в iOS7, которые позволяют делать текст в речь? Все, что я пытаюсь сделать, это что-то вроде следующего:
[siriInstance say:@"This is a test"];
И тогда Сири скажет это из моего приложения.
Кажется, мы должны быть способны это сделать, нет? Похоже на тривиальную вещь.
Ответы
Ответ 1
С iOS 7 у вас есть новый TTS Api.
В Objective C
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some text"];
[utterance setRate:0.2f];
[synthesizer speakUtterance:utterance];
В Swift
let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "Some text")
utterance.rate = 0.2
Вы также можете изменить голос следующим образом:
utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR")
И затем speek
Не забывайте import AVFoundation
Полезные методы
Вы можете остановить или приостановить всю речь, используя эти два метода:
- (BOOL)pauseSpeakingAtBoundary:(AVSpeechBoundary)boundary;
- (BOOL)stopSpeakingAtBoundary:(AVSpeechBoundary)boundary;
AVSpeechBoundary
указывает, должна ли речь останавливаться или останавливаться немедленно (AVSpeechBoundaryImmediate
), или она должна приостанавливаться или останавливаться после слова, произносимого в данный момент (AVSpeechBoundaryWord
).
Проверьте AVSpeechSynthesizer Doc
Ответ 2
Я никогда не делал никакой работы специально с Сири. Возможно, я ошибаюсь, но я думаю, что интеграция с Siri очень сложна с использованием частных API.
Я бы посмотрел на openears framework для IOS. Я проделал некоторую базовую работу с этим в прошлом, и он выполняет как автономное распознавание речи, так и синтезированную речь/текст в речь
Надежда это поможет вам.
Ответ 3
Это ответ Али АББАС для использования на игровой площадке:
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)
Ответ 4
Здесь вы найдете примерное приложение для чтения текста (TTS) (Objective-C) на основе this