تبدیل متن به گفتار در Asp.Net

دوشنبه 18 اسفند 1393

در این مقاله نحوه تبدیل متن به گفتار را در زبان Asp.Net شرح می دهیم .

تبدیل متن به گفتار در Asp.Net

روز به روز نیازهای کسب و کار با توجه به نیازهای جدید تغییر می کند و برای برطرف کردن این نیازها تکنولوژی BPO و KPO به بازار آمد , که برای بر طرف کردن نیازهای خاص و حمایت از نیروی انسانی استفاده می شوند اما برخی نیازها حتی با وجود نیروی انسانی مانند تبدیل متن به گفتار  وجود دارد .بنابراین با توجه به این نیازمندیها تصمیم گرفتیم که در این مقاله نحوه تبدیل متن به گفتار را همراه با ذکر مثال شرح می دهیم .

برای تبدیل متن به گفتار از کلاس SpeechSynthesizer استفاده می کنیم .

این کلاس شامل چندین متد , رویداد و خاصیتهای مختلفی میباشد که در تنضیمات مختلف تبدیل کردن متن به گفتار ما را یاری می کند .کلاس SpeechSynthesizer یک namespace با نام System.Speech.Synthesizer دارد و شامل کلاسهایی است که موتور گفتگو را تعریف و پیکر بندی می کند .

ساختار و الگوریتم تبدیل متن به گفتگو اغلب به عنوان Text To Speehc یا TTS شناخته می شود .

در ادامه به برخی از خاصیت های متداول از این کلاس اشاره شده است .

Rate : برای rate گفتگو گفته میشود .

State : برای وضعیت کنونی کلاس استفاده می شود که اکنون در حالت Pause یا در حال گفتگو می باشد .

Voice : حاوی اطلاعلات مربوط به صدا میباشد .

Volume : مربوط به حجم صدا میباشد .

رویداد مربوط کلاس SpeechSynthesizer :

BookmarkReached

PhonemeReached

SpeakCompleted

SpeakProgress

SpeakStarted

StateChanged

VisemeReached

VoiceChange

متدهای مربوط به کلاس SpeechSynthesizer

AddLexicon

Dsipose

GetCurrentlySpokenPrompt

GetInstalledVoices

Pause

RemoveLexicon

Resume

SelectVoice

SelectVoiceByHints

SetOutPuttoDefaultAudioDevice

SetOutputToNull

SetOutputToWaveFile

SetOutputToWaveStream

Speak

SpeakAsync

SpeakAsyncCancel

SpeakAsyncCancelAll

SpeakSsml

SpeakSsmlAsync

حالا ویژوال استودیو را باز میکنیم و یک وب سایت با نام TextToSppech می سازیم , سپس یک کنترل Button و یک کنترل TextBox به صفحه مورد نظر اضافه می کنیم .



    Inserting ASP.Net Form Data Into Da ...
    3 Incredible Changes in Visual Stud ...
    Preventing XSS in ASP.Net Made Easy

Reader Level:
Articles
[ASP.NET Programming]
Convert Text to Speech Using ASP.Net C#
By Vithal Wadje on Mar 06, 2015
In this article we will learn how to Convert Text to Speech Using ASP.Net C#.

    Tweet
    inShare2

    1
    13
    1125

Download Files:

    ConvertTextToSpeech.zip

 

Background
 
Day by day business needs change depending on business requirements and fulfilling these requirements BPO and KPO come that require a physical assistance of humans to support specific requirements but some requirements exist in the application to convert text into speech without a human involved. So by considering the preceding requirement I decided to write this article.

To convert text to speech the SpeechSynthesizer class is used. So let us learn step-by-step how to convert text to speech.
 
The SpeechSynthesizer Class
 
SpeechSynthesizer is a sealed class containing various methods, events and properties that help to convert text to speech with various options. The SpeechSynthesizer class is in the System.Speech.Synthesis namespace that contains classes that allow initialization and configuration of a speech synthesis engine, create prompts, generate speech, respond to events and modify voice characteristics. Speech synthesis is often referred to as Text-To-Speech or TTS.
 
The following are some of the common properties of the SpeechSynthesizer class.
 
Properties of SpeechSynthesizer class 

    Rate: Used to specify speech rate.
    State: Used to check the current state of the SpeechSynthesizer class, whether it is paused, resume or a speaking state.
    Voice: Gets the current voice information.
    Volume: Sets the volume.

Events of SpeechSynthesizer class 

    BookmarkReached.
    PhonemeReached.
    SpeakCompleted.
    SpeakProgress.
    SpeakStarted.
    StateChanged.
    VisemeReached.
    VoiceChange

Methods of SpeechSynthesizer class  

    AddLexicon    
    Dispose   
    GetCurrentlySpokenPrompt
    GetInstalledVoices
    GetInstalledVoices
    Pause
    RemoveLexicon
    Resume
    SelectVoice
    SelectVoiceByHints
    SetOutputToDefaultAudioDevice
    SetOutputToNull
    SetOutputToWaveFile
    SetOutputToWaveStream
    Speak
    SpeakAsync
    SpeakAsyncCancel
    SpeakAsyncCancelAll
    SpeakSsml
    SpeakSsmlAsync

Now let us see the preceding explanation by creating a sample web application as follows:

    "Start" - "All Programs" - "Microsoft Visual Studio 2010".

    "File" - "New Project" - "C#" - "Empty WebSite" (to avoid adding a master page).

    Provide the web site a name such as "TextToSppech" or another as you wish and specify the location.

    Then right-click on the Solution Explorer and select "Add New Item" and Add Web Form.

    Drag and drop one Button, a TextBox  onto the <form> section of the Default.aspx page.

Now the default.aspx page source code will looks as follows.

    <%@ Page  Async="true" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ConvertTextToSpeech.Default" %>  
      
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
      
    <html xmlns="http://www.w3.org/1999/xhtml">  
      
    <head>  
         
            <title>Article by Vithal Wadje</title>    
        </head>    
        <body bgcolor="navy">    
            <form id="form2" runat="server">    
            <div style="color: White;">    
                <h4>    
                    Article for C#Corner    
                </h4>    
                <br />    
                <table width="100%">    
                    <tr>    
                        <td>    
                            <asp:TextBox ID="txtMsg" TextMode="MultiLine" runat="server" Height="142px" Width="380px"></asp:TextBox><br />    
                        </td>    
                    </tr>    
                </table>    
                <br />    
                 <table>    
                    <tr>    
                          
                        <td>    
                              <asp:Button ID="btVoice" runat="server"   
                                Text="convert to speech" onclick="btnVoice_Click" />    
                        </td>    
                        
                    </tr>    
                </table>    
                  
            </div>    
            </form>    
        </body>    
        </html>

سپس Refrence با نام system.speech را به پروژه اضافه می کنیم . مانند تصویر زیر

پس از اضافه کردن Refrence مورد نظر , Refrence پروژه به صورت زیر میباشد :

اگنون بر روی دکمه گفتگو کلیک می کنیم و کد زیر را در آن می نویسیم :

protected void btnVoice_Click(object sender, EventArgs e)  
     {  
  
         // creating the object of SpeechSynthesizer class  
         SpeechSynthesizer sp = new SpeechSynthesizer();  
         //setting volume   
         sp.Volume = 100;  
         //passing text box text to SpeakAsync method   
         sp.SpeakAsync(txtMsg.Text);  
        
     }  

کدهای codebehine مربوط به صفحه باید به صورت زیر باشد :

using System;  
using System.Speech.Synthesis;  
namespace ConvertTextToSpeech  
{  
    public partial class Default : System.Web.UI.Page  
    {  
         
        protected void Page_Load(object sender, EventArgs e)  
        {  
  
        }  
  
        protected void btnVoice_Click(object sender, EventArgs e)  
        {  
  
            // creating the object of SpeechSynthesizer class  
            SpeechSynthesizer sp = new SpeechSynthesizer();  
            //setting volume   
            sp.Volume = 100;  
            //passing text box text to SpeakAsync method   
            sp.SpeakAsync(txtMsg.Text);  
           
        }  
  
    }  
} 

هم اکنون نرم افزار را اجرا می کنیم :

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید