VSSpeechSyntetizer non funziona!

di il
10 risposte

VSSpeechSyntetizer non funziona!

In rete vi sono degli esempi su VSSpeechSyntetizer ma non riesco a farli funzionare, qualcuno ha un esempio funzionante?

10 Risposte

  • Re: VSSpeechSyntetizer non funziona!

    Ciao Orso Bruno,
    ho fatto qualche tentativo ed ora funziona, in pratica devi dichiarare questa interfaccia:
    
    @interface VSSpeechSynthesizer : NSObject 
    { 
    } 
    
    + (id)availableLanguageCodes; 
    + (BOOL)isSystemSpeaking; 
    - (id)startSpeakingString:(id)string; 
    - (id)startSpeakingString:(id)string toURL:(id)url; 
    - (id)startSpeakingString:(id)string toURL:(id)url withLanguageCode:(id)code; 
    - (float)rate;             // default rate: 1 
    - (id)setRate:(float)rate; 
    - (float)pitch;           // default pitch: 0.5
    - (id)setPitch:(float)pitch; 
    - (float)volume;       // default volume: 0.8
    - (id)setVolume:(float)volume; 
    @end
    
    e poi istanziare la classe con:
    
      speech = [[NSClassFromString(@"VSSpeechSynthesizer") alloc] init];
      [speech startSpeakingString:@"Hello Orso bruno, how are you"];
    
  • Re: VSSpeechSyntetizer non funziona!

    Veramente questo l' ho già provato e non mi funziona
    E poi non hai dichiarato 'speech'.
  • Re: VSSpeechSyntetizer non funziona!

    Credo di aver capito il tuo problema (ci ero cascato pure io ), se dichiari:
    
      VSSpeechSynthesizer *speech = [[NSClassFromString(@"VSSpeechSynthesizer") alloc] init];
      [speech setRate:(float)1.0];
      [speech startSpeakingString:@"Hello Orso bruno, how are you"];
    
    NON FUNZIONA. Appena la variabile esce dallo scope viene distrutta (se hai attivato ARC) e il suono non viene riprodotto. Devi dichiarare speech come variabile globale o meglio come campo della classe.
  • Re: VSSpeechSyntetizer non funziona!

    Fantastico!
  • Re: VSSpeechSyntetizer non funziona!

    Se vuoi cambiare pronuncia c' è anche l' italiano:
    
    [speech startSpeakingString:@"andiamo a prendere il prezzemolo col piroscafo" toURL:nil withLanguageCode:@"it-IT"];
    
    Prezzemolo lo dice bene ma piroscafo lo sbaglia (pazienza tanto i piroscafi non si usano più )
  • Re: VSSpeechSyntetizer non funziona!

    Giusto peggio per loro!
    Ma come fanno alla Apple a capire che stai usando quella classe se la crei in modo dinamico?
  • Re: VSSpeechSyntetizer non funziona!

    Boh! È un bel mistero, e magari non è vero, bisognerebbe provare.
  • Re: VSSpeechSyntetizer non funziona!

    E perché mai alla Apple dovrebbero capire se usi quella classe?
  • Re: VSSpeechSyntetizer non funziona!

    La classe VSSpeechSynthesizer non è documentata, è una classe 'nascosta' e pare che le applicazioni che la usano non vengano accettate sull' Apple store. Ho detto 'pare' perché non ho notizie certe.
  • Re: VSSpeechSyntetizer non funziona!

    Ho controllato le guidelines dell' Apple Store,il punto 2.4 dice:
    Apps that include undocumented or hidden features inconsistent with the description of the app will be rejected
    e il punto 2.5:
    Apps that use non-public APIs will be rejected
Devi accedere o registrarti per scrivere nel forum
10 risposte