Text To Speech Plugin for Xamarin and Windows
Simple and elegant way of performing Text To Speech across Xamarin.iOS, Xamarin.tvOS, Xamarin.macOS Xamarin.Android, Windows, and Xamarin.Forms projects.
- Available on NuGet: https://www.nuget.org/packages/Xam.Plugins.TextToSpeech/
- Install into your PCL project and Client projects.
- CI NuGet Feed: http://myget.org/F/xamarin-plugins
I have been working on Plugins for Xamarin for a long time now. Through the years I have always wanted to create a single, optimized, and official package from the Xamarin team at Microsoft that could easily be consumed by any application. The time is now with Xamarin.Essentials, which offers over 50 cross-platform native APIs in a single optimized package. I worked on this new library with an amazing team of developers and I highly highly highly recommend you check it out.
I will continue to work and maintain my Plugins, but I do recommend you checkout Xamarin.Essentials to see if it is a great fit your app as it has been for all of mine!
|Windows 10 UWP||10+|
- Speak back text
- Speak Rate
- Locale/Language of Speech
- Gather all available languages to speak in
await CrossTextToSpeech.Current.Speak("Text to speak");
Advanced speech API
/// <summary> /// Speack back text /// </summary> /// <param name="text">Text to speak</param> /// <param name="crossLocale">Locale of voice</param> /// <param name="pitch">Pitch of voice (All 0.0 - 2.0f)</param> /// <param name="speakRate">Speak Rate of voice (All) (0.0 - 2.0f)</param> /// <param name="volume">Volume of voice (0.0-1.0)</param> /// <param name="cancelToken">Cancel the current speech</param> public async Task Speak(string text, CrossLocale crossLocale = null, float? pitch = null, float? speakRate = null, float? volume = null, CancellationToken cancelToken = default(CancellationToken))
CrossLocale I developed the CrossLocale struct mostly to support Android, but is nice because I added a Display Name.
You can query a list of current support CrossLocales on the device:
/// <summary> /// Get all installed and valide lanaguages /// </summary> /// <returns>List of CrossLocales</returns> public Task<IEnumerable<CrossLocale>> GetInstalledLanguages()
Each local has the Language and Display Name. The Country code is only used in Android. If you pass in null to Speak it will use the default.
- iOS: AVSpeechSynthesizer
- Android: Android.Speech.Tts.TextToSpeech
- Windows: SpeechSynthesizer + Ssml support for advanced playback
Windows Phone You must add ID_CAP_SPEECH_RECOGNITION permission
Main branch is always the current development beta branch. This means that all new work can be done off this branch. For each release of a stable NuGet package a new release branch will be created so any additional hot fixes could be done off of that branch.
Under MIT, see LICENSE file.