c\#음성 합성 실현
개발 절 차 는 다음 과 같다.
1. 바 이 두 애플 리 케 이 션 만 들 기:
애플 리 케 이 션 을 만 들 면 만 든 애플 리 케 이 션 과 API KEY 그리고 Secret KEY 입 니 다.API 를 호출 할 때 이 설정 값 을 입력 해 야 합 니 다.
상세 참조:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index
2. 인용 하 다. Baidu.Aip (SDK)
Baidu.Aip 문자 인식 Ocr 폐쇄 API 의 Http 요청,코드 간소화,개발 효율 향상.이 DLL 을 인용 하지 않 으 려 면 Http 요청 방법 을 스스로 봉인 할 수 있 습 니 다.
C\#SDK 가 시작 되 었 습 니 다.빠 른 접속 문서 참조:https://ai.baidu.com/ai-doc/SPEECH/Jk4nlz6gp
3. API 호출,
여 기 는 통용 되 고 정밀도 가 높 은 식별 사례,특수 장면 인식 만 보 여 줍 니 다.상세 한 것 은 공식 문서https://ai.baidu.com/ai-doc/SPEECH/Jk4nlz6gp를 참조 하 십시오.
/// <summary>
///
/// </summary>
/// <param name="reqItem"> </param>
/// <param name="destPath">mp3 </param>
/// <param name="synthesisEvent"> </param>
/// <returns></returns>
public static bool Synthesis(ReqSynthesis reqItem, string destPath, SynthesisEvent synthesisEvent)
{
bool callResult = false;
try
{
synthesisEvent(" ...");
//
var apiKey = ConfigUtil.GetConfigStr(EnumConfigKey.SpeechAPI_Key);
var secretKey = ConfigUtil.GetConfigStr(EnumConfigKey.SpeechSECRET_KEY);
if (!RiverAuth.Instant.CheckSynthesis(apiKey, secretKey))
{
return false;
}
var client = new Baidu.Aip.Speech.Tts(apiKey, secretKey);
client.Timeout = 60000; //
var option = new Dictionary<string, object>()
{
{"vol", reqItem.vol}, //
{ "pit", reqItem.pit}, //
{"spd", reqItem.spd}, //
{"per", reqItem.per} // ,4:
};
synthesisEvent(" ...");
var result = client.Synthesis(reqItem.tex, option);
//
if (result.Success) // result.Success
{
File.WriteAllBytes(destPath, result.Data);
synthesisEvent(" , :" + destPath);
callResult = true;
}
else
{
synthesisEvent(string.Format(" , :[{0}], :{1}", result.ErrorCode, result.ErrorMsg));
}
RiverAuth.Instant.EndCallEvent();
}
catch (Exception ex)
{
synthesisEvent(" , :" + ex.Message);
LogHelper.LogError(ex, " ");
}
return callResult;
}
}
/// <summary>
///
/// </summary>
[Serializable]
public class ReqSynthesis
{
public string tex { get; set; }// , UTF-8 , 1024
public string cuid { get; set; }// , , MAC IMEI , 60
public int spd { get; set; }// , 0-9, 5
public int pit { get; set; }// , 0-9, 5
public int vol { get; set; }// , 0-15, 5
public int per { get; set; }// , 0 ,1 ,3 - ,4 - ,
}
/// <summary>
///
/// </summary>
public class RetSpeech
{
public string corpus_no { get; set; }
public string err_msg { get; set; }
public int err_no { get; set; }
public string[] result { get; set; }
public string sn { get; set; }
}
4. 음성 합성 마지막 MP3 로 저장 문건5. 소스 코드 및 패키지 다운로드
소프트웨어 소스 코드 주소(프로젝트 통합 문자 인식,음성 합성,음성 인식):https://gitee.com/bidev_admin/river-int-ai.git
패키지 다운로드 주소 실행(.Net Framework 4.5): https://pan.baidu.com/s/1z-WFDGHhEP8tqLqwp9I0Mw 추출 코드: r3sk
저자:목석 비 키
출처:http://www.cnblogs.com/EasyInvoice
이상 은 c\#음성 합성 을 실현 하 는 상세 한 내용 입 니 다.c\#음성 합성 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.