欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

如何通过 C# 将文本变为声音 ?

发布时间:2023/12/4 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 如何通过 C# 将文本变为声音 ? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

咨询区

  • user2110292

我的项目有一个需求需要将可以将 文本 转化为 声音,请问大家是否有开源的 C# 库 来解决这件事情?

回答区

  • HABJAN

最近 Google 发布了一个开源的 Google Cloud Text To Speech 包,.NET版本的github链接:https://github.com/jhabjan/Google.Cloud.TextToSpeech.V1

可参考下面的例子:

GoogleCredential credentials =GoogleCredential.FromFile(Path.Combine(Program.AppPath, "jhabjan-test-47a56894d458.json"));TextToSpeechClient client = TextToSpeechClient.Create(credentials);SynthesizeSpeechResponse response = client.SynthesizeSpeech(new SynthesisInput(){Text = "Google Cloud Text-to-Speech enables developers to synthesize natural-sounding speech with 32 voices"},new VoiceSelectionParams(){LanguageCode = "en-US",Name = "en-US-Wavenet-C"},new AudioConfig(){AudioEncoding = AudioEncoding.Mp3} );string speechFile = Path.Combine(Directory.GetCurrentDirectory(), "sample.mp3");File.WriteAllBytes(speechFile, response.AudioContent);
  • HABJAN

完全不需要使用任何开源框架,在 .NET 内部提供的 System.Speech.Synthesis 类就可以帮你解决这个问题,引用下 System.speech.dll 命名空间即可。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Speech.Synthesis; // first import this packagenamespace textToSpeech{public partial class home : Form{public string s = "pran"; // storing string (pran) to sprivate void home_Load(object sender, EventArgs e){speech(s); // calling the function with a string argument}private void speech(string args) // defining the function which will accept a string parameter{SpeechSynthesizer synthesizer = new SpeechSynthesizer();synthesizer.SelectVoiceByHints(VoiceGender.Male , VoiceAge.Adult); // to change VoiceGender and VoiceAge check out those links belowsynthesizer.Volume = 100;  // (0 - 100)synthesizer.Rate = 0;     // (-10 - 10)// Synchronoussynthesizer.Speak("Now I'm speaking, no other function'll work");// Asynchronoussynthesizer.SpeakAsync("Welcome" + args); // here args = pran}       }}

这里简单提一下,最好用异步方式 SpeakAsync 替代同步的 Speak 方法,这样的话,调用线程就不会被阻塞,提高程序的吞吐率。

点评区

这个功能好,不过建议大家了解下强大的 Google.Cloud.TextToSpeech。

总结

以上是生活随笔为你收集整理的如何通过 C# 将文本变为声音 ?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。