मैं सी # में System.Speech
की आवाज़ के लिंग और आयु को बदलना चाहता हूं। उदाहरण के लिए, 10 साल की एक लड़की लेकिन मुझे पैरामीटर समायोजित करने में मदद करने के लिए कोई आसान उदाहरण नहीं मिल रहा है।मैं ध्वनि सिंथेसाइज़र लिंग और उम्र सी # में कैसे बदल सकता हूं?
उत्तर
पहले, देखें जो आवाज आप SpeechSynthesizer
वर्ग के GetInstalledVoices
विधि गणना करके स्थापित किया है, और फिर उनमें से एक का चयन करने के SelectVoiceByHints
का उपयोग करें:
using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
{
// show installed voices
foreach (var v in synthesizer.GetInstalledVoices().Select(v => v.VoiceInfo))
{
Console.WriteLine("Name:{0}, Gender:{1}, Age:{2}",
v.Description, v.Gender, v.Age);
}
// select male senior (if it exists)
synthesizer.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Senior);
// select audio device
synthesizer.SetOutputToDefaultAudioDevice();
// build and speak a prompt
PromptBuilder builder = new PromptBuilder();
builder.AppendText("Found this on Stack Overflow.");
synthesizer.Speak(builder);
}
http://msdn.microsoft.com/en-us/library/system.speech.synthesis.voiceage.aspx http://msdn.microsoft.com/en-us/library/system.speech.synthesis.voicegender.aspx
आप इस पर एक नज़र था?
क्यों [Stackoverflow] (http: // http: //stackoverflow.com) नहीं है ** तरह ** बटन? :) –
मुझे नहीं पता, लेकिन इसमें एक [+1] बटन है! : पी –
हां, लेकिन मुझे समझ में नहीं आया –
ये उम्र और लिंग के किसी काम का नहीं वास्तव में है। यदि आपके विंडोज़ में कई आवाजें इंस्टॉल हैं, तो आप इन पैरामीटर द्वारा विशिष्ट आवाजों को कॉल कर सकते हैं। अन्यथा, यह बस नकली है!
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 package
namespace textToSpeech
{
public partial class home : Form
{
public string s = "pran"; // storing string (pran) to s
private 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 below
synthesizer.Volume = 100; // (0 - 100)
synthesizer.Rate = 0; // (-10 - 10)
// Synchronous
synthesizer.Speak("Now I'm speaking, no other function'll work");
// Asynchronous
synthesizer.SpeakAsync("Welcome" + args); // here args = pran
}
}
}
- यह क्योंकि जब "बोलो" "SpeakAsync" का उपयोग करने के बेहतर विकल्प हो जाएगा समारोह निष्पादित हो रहा है/अन्य समारोह में से कोई भी चल रहा है जब तक यह खत्म काम करेंगे यह काम (व्यक्तिगत रूप से सिफारिश की)
पहले आप ऐड संदर्भ का उपयोग करते हुए संदर्भ भाषण intialise की जरूरत है।
फिर बोलने के लिए एक ईवेंट हैंडलर बनाएं, फिर आप उस हैंडलर के अंदर पैरामीटर को संपादित कर सकते हैं।
हैंडलर मेंजगह है जहाँ आप का उपयोग कर आवाज और उम्र को बदल सकते हैं
synthesizer.SelectVoiceByHints(VoiceGender.Male , VoiceAge.Adult);
यदि स्पीकर अभी तक एक औरत है, तो इसका मतलब है कि मेरे सिस्टम में पुरुष आवाज नहीं है, इसलिए मुझे इसे डाउनलोड करने की ज़रूरत है? –
@ पाब्लो: यह सही है, हालांकि, आपको सच कहने के लिए, मुझे कोई संकेत नहीं है कि उन्हें कहां से डाउनलोड किया जाए। [यह एमएसडीएन पृष्ठ] (http://www.microsoft.com/en-us/download/details.aspx?id=27224) ऐसा लगता है कि इसमें कुछ अतिरिक्त आवाजें हैं, लेकिन मैंने कभी भी उनमें से किसी का भी उपयोग नहीं किया। – Groo
ठीक है, ध्वनि गुणों को बदलें केवल एक प्रश्न है जो मैंने समय पहले किया था, क्योंकि मैं भाषण नामस्थान के बारे में और जानना चाहता हूं। अगर वास्तव में हहा फिर से धन्यवाद तो मैं छोटी लड़की की आवाज़ ढूंढूंगा –