Toolbelt.Blazor.SpeechSynthesis
10.3.1
dotnet add package Toolbelt.Blazor.SpeechSynthesis --version 10.3.1
NuGet\Install-Package Toolbelt.Blazor.SpeechSynthesis -Version 10.3.1
<PackageReference Include="Toolbelt.Blazor.SpeechSynthesis" Version="10.3.1" />
paket add Toolbelt.Blazor.SpeechSynthesis --version 10.3.1
#r "nuget: Toolbelt.Blazor.SpeechSynthesis, 10.3.1"
// Install Toolbelt.Blazor.SpeechSynthesis as a Cake Addin #addin nuget:?package=Toolbelt.Blazor.SpeechSynthesis&version=10.3.1 // Install Toolbelt.Blazor.SpeechSynthesis as a Cake Tool #tool nuget:?package=Toolbelt.Blazor.SpeechSynthesis&version=10.3.1
Blazor SpeechSynthesis
Summary
This is a class library for Blazor app (both "WebAssembly App" client-side model and "Server App" server-side model) to provide Speech Synthesis API access.
How to install and use?
1. Installation and Registration
Step.1-1 Install the library via NuGet package, like this.
> dotnet add package Toolbelt.Blazor.SpeechSynthesis
Step.1-2 Register "SpeechSynthesis" service into the DI container.
If the project is a Blazor Server App or a Blazor WebAssembly App ver.3.1 Preview 4 or earlier, add the code into the ConfigureService
method in the Startup
class of your Blazor application.
// Startup.cs
using Toolbelt.Blazor.Extensions.DependencyInjection; // <- Add this, and...
...
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSpeechSynthesis(); // <- Add this line.
...
If the project is a Blazor WebAssembly App ver.3.2 Preview 1 or later, add the code into the Main
method in the Program
class of your Blazor application.
// Program.cs
using Toolbelt.Blazor.Extensions.DependencyInjection; // <- Add this, and...
...
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
...
builder.Services.AddSpeechSynthesis(); // <- Add this line.
...
2. Usage in your Blazor component (.razor)
Step.2-1 Open the Toolbelt.Blazor.SpeechSynthesis
namespace, and inject the SpeechSynthesis
service into the component.
@{/* This is your component .razor */}
@using Toolbelt.Blazor.SpeechSynthesis @{/* Add these two lines. */}
@inject SpeechSynthesis SpeechSynthesis
...
Step.2-2 Invoke Speak()
method of the SpeechSynthesis
service instance to speak!
@using Toolbelt.Blazor.SpeechSynthesis
@inject SpeechSynthesis SpeechSynthesis
<div> <textarea @bind="Text"></textarea> </div>
<div> <button @onclick="onClickSpeak">Speak</button> </div>
@code {
string Text;
async Task onClickSpeak() {
await this.SpeechSynthesis.SpeakAsync(this.Text); // 👈 Speak!
}
}
You can also speak with detail parameters, such as pitch, rate, volume, by using SpeechSynthesisUtterance
object.
async Task onClickSpeak() {
var utterancet = new SpeechSynthesisUtterance {
Text = this.Text,
Lang = "en-US", // BCP 47 language tag
Pitch = 1.0, // 0.0 ~ 2.0 (Default 1.0)
Rate = 1.0, // 0.1 ~ 10.0 (Default 1.0)
Volume = 1.0 // 0.0 ~ 1.0 (Default 1.0)
}
await this.SpeechSynthesis.SpeakAsync(utterancet); // 👈 Speak!
}
If you want to chose type of voices, you can do it with GetVoicesAsync()
method of SpeechSynthesis
service instance.
IEnumerable<SpeechSynthesisVoice> Voices;
protected async override Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
this.Voices = await this.SpeechSynthesis.GetVoicesAsync();
this.StateHasChanged();
}
}
async Task onClickSpeak() {
var utterancet = new SpeechSynthesisUtterance {
Text = this.Text,
Voice = this.Voices.FirstOrDefault(v => v.Name.Contains("Haruka"));
}
await this.SpeechSynthesis.SpeakAsync(utterancet); // 👈 Speak with "Haruka"'s voice!
}
Release Note
Release notes is here.
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.AspNetCore.Components (>= 3.1.0)
- Microsoft.AspNetCore.Components.Web (>= 3.1.0)
-
net5.0
- Microsoft.AspNetCore.Components (>= 5.0.0)
- Microsoft.AspNetCore.Components.Web (>= 5.0.0)
-
net6.0
- Microsoft.AspNetCore.Components (>= 6.0.0)
- Microsoft.AspNetCore.Components.Web (>= 6.0.0)
- Toolbelt.Blazor.GetProperty.Script (>= 1.2.0)
-
net7.0
- Microsoft.AspNetCore.Components (>= 7.0.0)
- Microsoft.AspNetCore.Components.Web (>= 7.0.0)
- Toolbelt.Blazor.GetProperty.Script (>= 1.2.0)
-
net8.0
- Microsoft.AspNetCore.Components (>= 8.0.0)
- Microsoft.AspNetCore.Components.Web (>= 8.0.0)
- Toolbelt.Blazor.GetProperty.Script (>= 1.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Toolbelt.Blazor.SpeechSynthesis:
Repository | Stars |
---|---|
ArduPilot/MissionPlanner
Mission Planner Ground Control Station for ArduPilot (c# .net)
|
Version | Downloads | Last updated |
---|---|---|
10.3.1 | 6,012 | 11/26/2023 |
10.3.0 | 237 | 11/16/2023 |
10.2.0 | 1,041 | 9/10/2023 |
10.1.0 | 209 | 9/5/2023 |
10.0.0 | 7,720 | 7/2/2022 |
9.0.4 | 1,163 | 5/29/2022 |
9.0.3 | 552 | 5/18/2022 |
9.0.2 | 570 | 5/10/2022 |
9.0.1 | 4,020 | 1/3/2022 |
9.0.0 | 1,627 | 9/5/2021 |
8.1.1 | 1,203 | 5/8/2021 |
8.1.0 | 6,426 | 12/6/2020 |
8.0.0 | 14,389 | 1/8/2020 |
7.0.0.1 | 1,602 | 9/6/2019 |
7.0.0 | 303 | 9/6/2019 |
6.0.0 | 329 | 8/19/2019 |
5.0.0 | 347 | 6/16/2019 |
4.0.0 | 562 | 5/2/2019 |
3.0.0 | 595 | 3/9/2019 |
2.0.0 | 642 | 2/10/2019 |
1.0.0 | 760 | 10/19/2018 |
v.10.3.1
- Fix: The IL linker removed the VoiceURI property unexpectedly
To see all the change logs, please visit the following URL.
- https://github.com/jsakamoto/Toolbelt.Blazor.SpeechSynthesis/blob/master/RELEASE-NOTES.txt