it-swarm.dev

¿Cómo usar sintetizadores de voz de iOS mediante programación? (texto a voz)

los dispositivos iOS tienen sintetizadores de voz integrados para la función VoiceOver de Accessibility. ¿Hay alguna manera de usar estos sintetizadores mediante programación para generar sonidos basados ​​en texto?

Mi problema es: estoy trabajando en una aplicación simple para que los niños aprendan los colores y, en lugar de grabar los nombres de los colores en cada idioma que quiero admitir y almacenarlos como archivos de audio, prefiero generar los sonidos en tiempo de ejecución con alguna característica de texto a voz.

Gracias

[EDITAR: esta pregunta se hizo antes de iOS7, por lo que realmente debería considerar la respuesta votada e ignorar las anteriores, a menos que sea un arqueólogo de software]

39
Dirty Henry

A partir de iOS 7, Apple proporciona esto API.

Ver esto respuesta.

Objetivo-C

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

Rápido

import AVFoundation
…
let utterance = AVSpeechUtterance(string: "Hello World!")
let synth = AVSpeechSynthesizer()
synth.speakUtterance(utterance)
62
Onato
#import <AVFoundation/AVFoundation.h>

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

Este código funcionó para mí con Swift y iOS 8 en Simulator y iPhone 6. Necesitaba agregar la biblioteca estándar de AVFoundation:

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)
}
5
Alex Malko

Lamentablemente, iOS no expone una API pública para generar discurso mediante programación.

Hay un API privado que puede usar, si no está enviando a la App Store.

De lo contrario, vea las respuestas a esta pregunta para ver una serie de bibliotecas de terceros que puede usar.

3
yuji

Puede probar estas API de terceros: iSpeech o OpenEars

0
Demz

esto puede resultarle útil Hacer que su aplicación para iPhone sea accesible

Como se indica en "Herramientas y API de accesibilidad de iPhone", los controles y vistas estándar de UIKit son accesibles automáticamente. Si usa solo controles UIKit estándar, probablemente no tenga que hacer mucho trabajo adicional para asegurarse de que su aplicación sea accesible. En este caso, su próximo paso es asegurarse de que la información de atributo predeterminada proporcionada por estos controles tenga sentido en su aplicación. Para saber cómo hacer esto, consulte "Proporcione información de atributos precisa y útil".

0
Ocelot