c# imager让图片有圆角unity_C# 10分钟完成百度语音技术

(给DotNet加星标,提升.Net技能)

转自:熊泽-学习中的苦与乐 cnblogs.com/xiongze520/p/11301882.html

我们已经讲了人脸识别(入门+进阶)、图片识别(入门)。

《C# 10分钟完成百度人脸识别——入门篇》

《C# 30分钟完成百度人脸识别——进阶篇》

《C# 10分钟完成百度图片提取文字(文字识别)——入门篇》

今天我们来盘一盘语音识别与合成。

PS:仅供了解参考,如需进一步了解请继续研究。

我们现在就基于百度Ai开放平台进行语音技术的相关操作,Demo使用的是C#控制台应用程序。

一、创建百度AI语音技术应用

在百度AI开放平台中,登录自己的百度账号,点击“语音识别”服务,选择“创建应用”,填好应用名称,选择应用类型,填好应用描述,这样就创建好了“语音识别”服务。

具体不废话,不知道的小伙伴可以移步看这里:C# 10分钟完成百度人脸识别——入门篇。

创建完成后会生成APPID、APP Key、Secret Key,这些是关键内容,后面要用。

二、创建VS控制台应用程序,引入动态链接库

首先我们创建一个VS控制台应用程序,这里就不详细说明。

然后引入百度Baidu.AI动态链接库,步骤如下,小编使用2017,所以直接在NuGet中搜索Baidu.AI安装即可。

安装语音识别 C# SDK

C# SDK 现已开源! https://github.com/Baidu-AIP/dotnet-sdk

** 支持平台:.Net Framework 3.5 4.0 4.5, .Net Core 2.0 **

方法一:使用Nuget管理依赖 (推荐)

在NuGet中搜索 Baidu.AI,安装最新版即可。

packet地址 https://www.nuget.org/packages/Baidu.AI/

方法二:下载安装

语音识别 C# SDK目录结构

a339bd7c45aff3f1de87bdd2609bf0fe.png

如果需要在 Unity 平台使用,可引用工程源码自行编译。

安装

1、在官方网站(http://ai.baidu.com/sdk)下载C# SDK压缩工具包。

2、解压后,将 AipSdk.dll 和 Newtonsoft.Json.dll 中添加为引用。

三、编写代码调试,效果图查看

创建一个空文件夹,命名为Image,存一个音频文件,做调试,后面语音合成的文件也在这里。

在Program.cs中编写代码,代码编写如下,可以直接拷贝进行调试。

我们这里只讲述语音识别和语音合成,其他的内容可以在官网进行编写:https://ai.baidu.com/docs#/ASR-Online-Csharp-SDK/top

语音识别:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Voice
{
class Program
{
static void Main(string[] args){
// 设置APPID/AK/SK
var APP_ID = "16938141";
var API_KEY = "8y2pB5HLrLD5Zu7aaQV3ce0g";
var SECRET_KEY = "5tDp3opvpIdEnlXBTOWn9W0O7CdhRNYu";
//语音识别
var client = new Baidu.Aip.Speech.Asr(APP_ID, API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超时时间
var data = File.ReadAllBytes("E:\\Work Demo\\语音技术\\Voice\\Voice\\Image\\16k.wav");
// 可选参数
var options = new Dictionary<string, object>
{
{"dev_pid", 1536} //语音模型1536代表普通话,其他请查看官方文档
};
client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms
var result = client.Recognize(data, "wav", 16000, options);
Console.Write(result);

////语音合成
//var _ttsClient = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY);
//_ttsClient.Timeout = 60000; // 修改超时时间
//// 可选参数
//var option = new Dictionary()
// {
// {"spd", 5}, // 语速
// {"vol", 7}, // 音量
// {"per", 4} // 发音人,4:情感度丫丫童声
// };
//var result = _ttsClient.Synthesis("今天天气不错,适合嗮太阳", option);
//if (result.ErrorCode == 0) // 或 result.Success
//{
// File.WriteAllBytes("E:\\Work Demo\\语音技术\\Voice\\Voice\\Image\\aaa.mp3", result.Data);
//}
}
}
}

我们查看一下识别出来的语音是什么 

f7a8f30ecd53f4eece45ccbff529affc.png

这个就是我准备的语音,识别成功。

格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。推荐pcm 采样率 :16000 固定值。编码:16bit 位深的单声道。

百度服务端会将非pcm格式,转为pcm格式,因此使用wav、amr会有额外的转换耗时。

  • 16k 采样率pcm文件样例下载

  • 16k 采样率wav文件样例下载

  • 16k 采样率amr文件样例下载

音频文件格式转换请参见文档【语音识别小工具\音频文件转码】http://ai.baidu.com/docs#/ASR-Tool-convert/top

更多内容详见官网:https://ai.baidu.com/docs#/ASR-API/top

语音合成:

合成文本长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。文本长度不可超过限制

详见官网:https://ai.baidu.com/docs#/TTS-Online-Csharp-SDK/top

using System;

using System.Collections.Generic;

using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Voice
{
class Program
{
static void Main(string[] args){
// 设置APPID/AK/SK
var APP_ID = "16938141";
var API_KEY = "8y2pB5HLrLD5Zu7aaQV3ce0g";
var SECRET_KEY = "5tDp3opvpIdEnlXBTOWn9W0O7CdhRNYu";
////语音识别
//var client = new Baidu.Aip.Speech.Asr(APP_ID, API_KEY, SECRET_KEY);
//client.Timeout = 60000; // 修改超时时间
//var data = File.ReadAllBytes("E:\\Work Demo\\语音技术\\Voice\\Voice\\Image\\16k.wav");
//// 可选参数
//var options = new Dictionary
// {
// {"dev_pid", 1536} //语音模型1536代表普通话,其他请查看官方文档
// };
//client.Timeout = 120000; // 若语音较长,建议设置更大的超时时间. ms
//var result = client.Recognize(data, "wav", 16000, options);
//Console.Write(result);

//语音合成
var _ttsClient = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY);
_ttsClient.Timeout = 60000; // 修改超时时间
// 可选参数
var option = new Dictionary<string, object>()
{
{"spd", 5}, // 语速
{"vol", 7}, // 音量
{"per", 4} // 发音人,4:情感度丫丫童声
};
var result = _ttsClient.Synthesis("听说关注博主不迷路", option);
if (result.ErrorCode == 0) // 或 result.Success
{
File.WriteAllBytes("E:\\Work Demo\\语音技术\\Voice\\Voice\\Image\\aaa.mp3", result.Data);
}
}
}
}

运行后查看效果,如下:

d3e2714570ddca18eb2497857847676a.png

这样就合成成功了。

四、总结

简单的入门就到这里,后面的实时语音识别、音频文件转写、建立模型进行语音训练就需要靠大家了。

推荐阅读

(点击标题可跳转阅读)

ASP.NET Core使用 MediatR

.NET中高性能、高可用性Socket通讯库

ASP.NET Core 跨平台图形验证码实现

看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

059f868db3e7b8452545ea159e47dfd9.png

好文章,我在看❤️

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值