在线发音

更新时间:2022-11-22 22:10:12 阅读: 评论:0


2022年11月22日发(作者:bumbler)

C++调⽤有道翻译API实现在线翻译之发声篇

⼤概半⽉前写了⼀篇博⽂:,得到⼤家的热情捧场,有⼈看了⽂章说要是能发声不是更好,我觉得说的也是哈,能听到专家的标准发⾳,那

该是多美的⼀件事,那我就研究下呗。这段时间⼀直在忙着学习UnixNetworkProgramming的东西,终于在今天下午抽出时间来完成这个事

情。

好了,闲话不说,我给⼤家说说我的语⾳辞典开发之旅吧!开发环境Ubuntu+GCC4.7

⼀、声⾳从哪⾥来

要让辞典发⾳,也就是说,我们需要得到这个单词的发⾳的⾳频,之前实现辞典⽤的是有道辞典的API,很好⽤,所以这次也就欣欣然选择

有道发⾳API来得到单词的发⾳,API地址如下:

1/dictvoice?audio=%word_you_want_to_play%

⼆、怎么使⽤程序去发⾳

1.把声⾳拿回来

声⾳有了,但是我们要⾃⼰实现程序去作这个事情,难道我还每次去打开浏览器访问以下不成!No,no!我没有想到太好的办法,就⽤我

认为很⼟很笨的⽅法吧!

我把API返回的声⾳存成mp3⽂件,然后再想办法呗,后来⼀想,也有必要哈,把查过的这个单词存下来了,如果⼀次没有听清楚,我还可

以再听⼀次撒!那动⼿呗,把声⾳先放到硬盘再说!

我们需要使⽤的三⽅库还是上⼀篇⽂章⽤到的libcurl,直接贴代码:

1#include"curl/curl.h"

2

3FILE*fp;

4

5size_tvoice_writer(void*ptr,size_tsize,size_tnmemb,void*stream)

6{

7intwritten=fwrite(ptr,size,nmemb,(FILE*)fp);

8returnwritten;

9}

上⾯这个⽅法在以下的代码中,也就是curl的回调中会⽤到:

1intmain(intargc,char*argv[])

2{

3CURL*curl;

4curl_global_init(CURL_GLOBAL_ALL);

5curl=curl_easy_init();

6std::stringvoice_url="/dictvoice?audio=";

7voice_url+=argv[1];

8curl_easy_topt(curl,CURLOPT_URL,voice_url.c_str());

9

10if((fp=fopen("3","w"))==NULL)

11{

12curl_easy_cleanup(curl);

13exit(1);

14}

15

16curl_easy_topt(curl,CURLOPT_WRITEFUNCTION,voice_writer);

17curl_easy_perform(curl);

18curl_easy_cleanup(curl);

19

20return0;

21}

好了,根据我的想法,编译运⾏之后⼀个3的⽂件就放在了我的当前⽬录中!(PS:不是完整代码,其实就差⼏个头⽂件⽽已,⾃

⼰加上吧!)

2.把声⾳放出来

声⾳到⼿,我先试着⽤播放器听了下,没错,正是我想要的!下⼀个步骤,我们要在程序中把声⾳放出来,总不能每次⽤播放器去听

吧!C++中如何播放mp3,以前作VC开发的时候貌似遇到过,linux下我还是第⼀次⾯对这个需求,怎么办?问,输⼊诸如C++mp3

encoderlibrary,找了⼀圈,貌似也没个太好的库供我使⽤,我可不喜欢解码开始!肿么办?我想到了另外⼀个⽅法,system⽅法,是的,

你没看错,就是他!这个最拿⼿了,SoX⼤家应该都知道,SoX是SoundeXchange的简写,主页。SoX在⾳频处理领域有瑞⼠军⼑的美

称,⽀持很多格式的⾳频⽂件,如WAV,MP3,MPG,OGG,FLAC等等!没有安装的童鞋看这⾥:

1sudoapt-getinstallsox

2sudoapt-getinstallsoxlibsox-fmt-all

安装成功之后,只需要使⽤以下命令去播放既可:

3

好了,⾛远了,我们继续回到我们的system⽅法吧:

1system("3");

Areyoukiddingme?不好意思,我确实没有太好的⽅法了!(PS:有其他的C++库可以播放MP3,有知道的朋友欢迎指导,我也很想⽤个

⽐较perfect的⽅法!)

三、⼩结

好了,这就是今天的主要内容,使⽤之前的⼀篇⽂章中提供的辞典源码,和今天的发⾳源码整合到⼀起,就是⼀个准perfect的在线发⾳辞典

了,这⾥不再贴出所有源码,感兴趣的可以⾃⼰整合⼀下!

⽤程序改变世界,我是敢想敢做的程序猿。感谢阅读,希望帮到⼤家!

本文发布于:2022-11-22 22:10:12,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/1700.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:social network
下一篇:厉害英语
标签:在线发音
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图