1. 程式人生 > >C#生成音訊檔案以及轉換成需要的格式

C#生成音訊檔案以及轉換成需要的格式

花了三天才做出來這麼個小東西,其中碰到了好多意向不到的問題與難題,直接看程式碼吧還是。其中需要DotNetSpeech.dll(生成因檔案)和lame_enc.dll(用於音訊格式的轉換)兩個類庫,還需要一個lame.exe執行程式,這個也是為了音訊格式的轉換。剛開始寫,寫的可能有點亂,但是這些程式碼都是完全可以執行的,如有不合適的地方,謝謝各位大神的指導!我把用到的幾個類庫都打包了,有需要的可以下載,謝謝!


    /// 生成聲音檔案
    /// 要朗讀的文字
    /// 生成聲音檔案的路徑
    /// 生成聲音檔案的名稱
    private void CreateFile(string text, string filePath, string fileName)
    {
        if (!Directory.Exists(filePath))
        Directory.CreateDirectory(filePath);
        SpVoice sv = new SpVoice();
        SpeechVoiceSpeakFlags SVSF = SpeechVoiceSpeakFlags.SVSFlagsAsync;
        SpeechStreamFileMode SSFM = SpeechStreamFileMode.SSFMCreateForWrite;
        SpFileStream SFS = new SpFileStream();
        sv.Rate = -5;
        //刪除已經存在的音訊檔案
        if (File.Exists(filePath + fileName))
        {
            File.Delete(filePath + fileName);
        }


        //生成音訊檔案,用於唱標
        SFS.Open(filePath + fileName, SSFM, false);


        sv.AudioOutputStream = SFS;
        sv.Speak(text, SVSF);
        sv.WaitUntilDone(System.Threading.Timeout.Infinite);
        SFS.Close();
        //將wav格式的音訊檔案轉換為mp3格式
        string outfile = "-b 32 --resample 22.05 -m m \"" + filePath + fileName + "\" \"" + filePath + fileName.Replace(".wav", ".mp3") + "\"";
        System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
        psi.FileName = Server.MapPath("./SingOpenBidInfo/") + "lame.exe";
        psi.Arguments = outfile;
        psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
        System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
        //p.Exited = new EventHandler()
        p.WaitForExit();
        p.EnableRaisingEvents = true;


        //刪除已經存在的音訊檔案
        if (File.Exists(filePath + fileName))
        {
            File.Delete(filePath + fileName);
        }
    }

呼叫的方法如下;

{

//生成音訊檔案

//絕對路勁
        CreateFile(context, "C:/SingOpenBidInfo/",  "lrh.wav");

//相對路徑
        CreateFile(context, Server.MapPath("./SingOpenBidInfo/"), bidPackageID + ".wav");

}

相關推薦

C#生成音訊檔案以及轉換需要格式

花了三天才做出來這麼個小東西,其中碰到了好多意向不到的問題與難題,直接看程式碼吧還是。其中需要DotNetSpeech.dll(生成因檔案)和lame_enc.dll(用於音訊格式的轉換)兩個類庫,還需要一個lame.exe執行程式,這個也是為了音訊格式的轉換。剛開始寫,寫

java將資料庫資料轉換word文件並且生成pdf檔案最後轉換對應的圖片

目的:將資料轉換成word圖片的方式展現給使用者 工具:openoffice +java程式碼 +資料庫,其中openoffice有windows版本的和Linux版本的。 其中openoffice的下載地址為:連結:https://pan.baidu.com/s/1Y5Ra3TfNCc

FLV格式檔案如何轉換MP4格式

  FLV流媒體格式是隨著Flash MX的推出發展而來的視訊格式,它形成的檔案小,載入速度快,流量耗的少,使得網路看視訊成為可能,因此FLV是被眾多新一代視訊分享網站所採用,是目前增長最快,最廣泛的視訊傳播格式。那麼FLV格式檔案如何轉換成MP4格式?請看下文的具體教程。  

CAD圖紙檔案怎麼轉換DWF格式

CAD圖紙檔案怎麼轉換成DWF格式?從事CAD相關工作的設計師們不僅是需要將圖紙繪製完成,海燕將圖紙轉換成其他一些個事來方便檢視,那麼如何將一張CAD圖紙檔案轉換成DWF格式,應該如何進行操作,小編今天就要來教教大家了怎麼樣將一張CAD圖紙檔案轉換成DWF格式得全部操作過程了! 第一步:開啟電腦上面

怎麼將多張CAD圖紙檔案共同轉換PDF格式檔案

怎麼將多張CAD圖紙檔案共同轉換成PDF格式檔案?在設計繪製好一張CAD圖紙檔案,想要將其進行開啟檢視或是列印的時候都是那麼的不方便,所以這時候我們就需要將其轉換成PDF格式的檔案,那麼如果是一張一張的將CAD圖紙進行轉換的話就會很麻煩而且還很費時間,今天小編就要來教大家的就是怎樣同時將多張CAD圖紙檔

CAD 2018檔案如何轉換jpg格式

CAD 2018檔案如何轉換成jpg格式?我們在工作中難免會遇到需要進行圖紙轉換的問題,為了方便檢視,我們會需要將CAD圖紙轉換成我們需要的格式,那麼如何將一張CAD 2018的檔案轉換成jpg格式呢?應該如何進行操作,今天小編就要來教教大家這個問題的解決辦法操作步驟,希望能夠幫助到大家! 第一步:

儲存電腦的PDF檔案怎樣轉換DXF格式

儲存電腦的PDF檔案怎樣轉換成DXF格式?在大多數時候我們在繪製完成一張CAD圖紙檔案的時候基本上都是DWG與DXF兩種格式的,那我們在將PDF格式檔案轉換成CAD圖紙檔案時候想要將其轉換成DXF格式我們應該如何進行操作呢,今天小編就要來教教大家儲存電腦上面的PDF檔案怎樣轉換成DXF格式的全部操作步驟,希望

如何將CAD圖紙檔案批量轉換TIFF格式

如何將CAD圖紙檔案批量轉換成TIFF格式?通常在我們繪製一張CAD圖紙檔案會需要將其轉換成一些圖片的格式,TIFF格式就是圖片格式中的一種格式,如果我們需要將CAD圖紙檔案批量轉換成TIFF格式的時候,我們應該如何進行此項操作呢,今天小編就來教教大家如何將CAD圖紙檔案批量轉換成TIFF格式的全部操

javascript-檔案File轉換base64格式

不能直接訪問使用者計算機中的檔案,一直都是Web應用開發中的一大障礙。2000年以前,處理檔案的唯一方式就是在表單中加入<input type="file">欄位,僅此而已。FileAPI(檔案API)的宗旨是為Web開發人員提供一種安全的方式,以便在客戶端訪問使用者計算機中的檔案,並更好地對這些

C++ 將當前系統時間轉換標準格式的時間和時間戳

1:先將系統時間轉換成標準格式的時間,再轉成時間戳 #include "iostream" #include "time.h" #include "string.h" using namespace std; int main() { time_t rawtime ;

react時間戳轉換需要格式

後端返回前端日期時間,一般給你的都是時間戳,然後前端展示需要轉換成需要格式。以下是我開發中常遇到需要轉換成的格式,看程式碼。class DateApi { /** * 將輸入的毫秒字串or毫秒數轉換成指定的字串格式 * @param {string

書上的練習題,把ini檔案模式轉換XML格式

#include <stdio.h> #include <string.h> #include <stdbool.h> #include <unistd.h> int main(int argc, char *argv[])

C#操作水晶報表跟轉換PDF格式

           這邊是通過C#將引數帶入到水晶報表中,生成對應的報表的程式碼,跟將水晶報表匯出轉成PDF格式儲存 這邊是將引數匯入到水晶報表中的方法 public void BindReports(引數1, 引數2) { Cry

C++生成指定頻率的正弦波wav音訊檔案以及生成播放資料

基於MTK平臺的工廠模式程式碼編寫的一個正弦波wav音訊檔案生成程式碼片 struct WavHead{ char RIFF[4]; //頭部分那個RIFF int size0;//存的是後面所有檔案大小 char WAVE[4]; char FM

Android開發 使用Lame把音訊檔案轉換mp3格式

轉自:http://www.pocketdigi.com/20130306/996.html Android錄音預設不支援mp3格式,為了生成mp3,可以錄製raw格式,再使用lame轉換成mp3.Lame是用C語言寫的,所以需要NDK編譯。編譯方法:http://developer.samsu

eclipse如何把java程式碼,打包jar檔案以及轉換為exe可執行檔案

1、背景:     學習java時,教材中關於如題問題,只有一小節說明,而且要自己寫麻煩的配置檔案,最終結果卻只能轉換為jar檔案。實在是心有不爽。此篇部落格教你如何方便快捷地把java程式碼,打包成jar檔案以及轉換為exe可執行檔案 2、前言:     我們都知道

eclipse -- 手把手教你如何把java程式碼,打包jar檔案以及轉換為exe可執行檔案

1、背景:     學習java時,教材中關於如題問題,只有一小節說明,而且要自己寫麻煩的配置檔案,最終結果卻只能轉換為jar檔案。實在是心有不爽。此篇部落格教你如何方便快捷地把java程式碼,打包成jar檔案以及轉換為exe可執行檔案 2、前言:     我們都知道Java可以將二進位制程式打包成可執

KEIL MDK 下為單一C檔案生成.LIB檔案以及注意事項

操作步驟: 1、右鍵點選工程,假設為a,選Add Group,假設為b,再將想生成lib的檔案加入b group,假設檔案是cc.c,必須要有cc.h。 2、右鍵依次點選其他的group,按KEIL官網資料所說的,將Options for Group->Prope

Dev c++工具將C程式碼生成dll檔案以及如何呼叫dll檔案

該篇文章是對工作中一個需求的總結,工作需求是要將C語言的函式介面,生成一個DLL檔案,讓labview呼叫。然後我嘗試用dev c++開發工具來實現這個功能,後來因為DLL生成了,但labview呼

C#技術分享【PDF轉換圖片——11種方案】

rip 語言 文件太大 www. o-c 提取 要求 一點 www 1.【iTextSharp.dll】,C# 開源PDF處理工具,可以任意操作PDF,並可以提取PDF中的文字和圖片,但不能直接將PDF轉換成圖片。 DLL和源碼 下載地址:http://download.