Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jamesmontemagno/TextToSpeechPlugin
Text to Speech Plugin for Xamarin and Windows
https://github.com/jamesmontemagno/TextToSpeechPlugin
Last synced: 30 days ago
JSON representation
Text to Speech Plugin for Xamarin and Windows
- Host: GitHub
- URL: https://github.com/jamesmontemagno/TextToSpeechPlugin
- Owner: jamesmontemagno
- License: mit
- Archived: true
- Created: 2016-06-02T23:18:36.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-04-03T20:36:23.000Z (over 1 year ago)
- Last Synced: 2024-05-14T00:17:58.918Z (7 months ago)
- Language: C#
- Size: 1.04 MB
- Stars: 64
- Watchers: 12
- Forks: 37
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-xamarin-forms - Text To Speech ★58
README
## 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.
### Setup
* Available on NuGet: https://www.nuget.org/packages/Xam.Plugins.TextToSpeech/ [![NuGet](https://img.shields.io/nuget/v/Xam.Plugins.TextToSpeech.svg?label=NuGet)](https://www.nuget.org/packages/Xam.Plugins.TextToSpeech/)
* **Install into your PCL project and Client projects**.Build status:
* ![](https://jamesmontemagno.visualstudio.com/_apis/public/build/definitions/6b79a378-ddd6-4e31-98ac-a12fcd68644c/23/badge)
* CI NuGet Feed: http://myget.org/F/xamarin-plugins### Migrate to: [Xamarin.Essentials](https://docs.microsoft.com/xamarin/essentials/index?WT.mc_id=friends-0000-jamont) or [.NET MAUI](https://learn.microsoft.com/dotnet/maui/platform-integration/?WT.mc_id=friends-0000-jamont)
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](https://docs.microsoft.com/xamarin/essentials/index?WT.mc_id=friends-0000-jamont), 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.
Additionally, Xamarin.Essentials is now included in & [.NET MAUI](https://learn.microsoft.com/dotnet/maui/platform-integration/?WT.mc_id=friends-0000-jamont).
Due to the functionality being included "in the box" I have decided to officially archive this repo.
### Platform Support
|Platform|Version|
| ------------------- | :------------------: |
|Xamarin.iOS|iOS 7+|
|Xamarin.Android|API 10+|
|Windows 10 UWP|10+|
|Xamarin.Mac|All|
|Xamarin tvOS|All|### Features
* Speak back text
* Pitch
* Volume
* Speak Rate
* Locale/Language of Speech
* Gather all available languages to speak in### Usage
**Simple Text**
```csharp
await CrossTextToSpeech.Current.Speak("Text to speak");
```**Advanced speech API**
```csharp
///
/// Speack back text
///
/// Text to speak
/// Locale of voice
/// Pitch of voice (All 0.0 - 2.0f)
/// Speak Rate of voice (All) (0.0 - 2.0f)
/// Volume of voice (0.0-1.0)
/// Cancel the current speech
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:
```csharp
///
/// Get all installed and valide lanaguages
///
/// List of CrossLocales
public Task> 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.
#### Implementation
* iOS: AVSpeechSynthesizer
* Android: Android.Speech.Tts.TextToSpeech
* Windows: SpeechSynthesizer + Ssml support for advanced playback**Windows Phone**
You must add ID_CAP_SPEECH_RECOGNITION permission### Branches
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.#### License
Under MIT, see LICENSE file.