Подтвердить что ты не робот

Текст iOS для речи Api

Кажется, я ничего не могу найти по этому поводу. Существуют ли какие-либо классы Siri или API в iOS7, которые позволяют делать текст в речь? Все, что я пытаюсь сделать, это что-то вроде следующего:

[siriInstance say:@"This is a test"];

И тогда Сири скажет это из моего приложения.

Кажется, мы должны быть способны это сделать, нет? Похоже на тривиальную вещь.

4b9b3361

Ответ 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

  • В Swift 2 synthesizer.speakUtterance(utterance)

  • В Swift 3 synthesizer.speak(utterance)

Не забывайте 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