第四期【百度大脑新品体验】微信小程序之拍图读字
wangwei8638 发布于2019-08-05 浏览:1455 回复:11
0
收藏

实现效果:

利用百度通用文字识别、语音识别能力和微信小程序,将图片中文字转换成文本,并能够保存文本和进行朗读!本文主要介绍小程序功能开发实现过程,分享主要功能实现的子程序模块。

1 系统框架

这里用到的主要技术有:百度通用文字识别、语音合成和微信小程序。小程序通过对上传照片进行文字识别,将文字图片转换成文本,并利用语音合成朗读出来。下面上干货!

2 调用通用文字识别API

2.1在控制台创建应用,调用通用文字识别API,“获取API Key/Secret Key”。

接口文档地址:https://ai.baidu.com/docs#/OCR-API/e1bd77f3

请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic

2.2 程序实现

ocrRequest:function  (base64Img, callback) {

  //拼接接口body参数

  var params = {

    image: base64Img

  }

  //发送接口请求

  wx.request({

    url: ocrUrl + '?access_token=' + accessToken,

    data: params,

    header: {

      'content-type': 'application/x-www-form-urlencoded'

    },

    method: 'POST',

    success: function (res) {

      callback.success(res.data)

      console.log("request okr", res);

    },

    fail: function (res) {

      if (callback.fail)

        callback.fail()

    }

  })

}

3 调用语音合成API

3.1 在控制台创建应用,调用语音合成API,“获取API Key/Secret Key”。

(1)接口文档地址:https://ai.baidu.com/docs#/TTS-API/top

(2)请求URL: https://tsn.baidu.com/text2audio

将文本以及其他参数写入到body里面,利用html表单的方式将参数传递到服务端。 所有的参数都在body中。body里面的数据为:

tex=***&lan=zh&cuid=***&ctp=1&aue=3&tok=***

(3)返回参数

需要根据 Content-Type的头部来确定是否服务端合成成功。

如果合成成功,返回的Content-Type以“audio”开头,例如:

aue =3 ,返回为二进制mp3文件,具体header信息 Content-Type: audio/mp3;

3.2 程序实现

// 语音合成

  tts: function (e) {

    console.log("[Console log]tts:" + e);

    //var text = JSON.parse(e);

    var tex = encodeURI(e);//转换编码url_encode UTF8编码

    var tok = "24.1f32b670d54b316c2c89edfcf7e1e8e7.2592000.1565178411.282335-16737828";

    var cuid = app.globalData.NLPCusid;

    var ctp = 1;

    var lan = "zh";    // zh表示中文

    // 字符编码

    var spd = 5;  // 表示朗读的语速,9代表最快,1是最慢

    var url = "https://tsn.baidu.com/text2audio?tex=" + tex + "&lan=" + lan + "&cuid=" + cuid + "&ctp=" + ctp + "&tok=" + tok + "&spd=" + spd

    wx.downloadFile({

      url: url,

      success: function (res) {

        console.log(res)

        // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容

        if (res.statusCode === 200) {

          //小程序自身录音,用playVoice播放不了,要用innerAudioContext

          /*  wx.playVoice({

              filePath: res.tempFilePath

            })*/

           audio_filePath = res.tempFilePath;

          console.log(audio_filePath);

        }

      }

    })

  },

4.文本保存

将图片中文字提取出来,并以txt格式保存成文本,方便后续编辑,达到缩短文字录入时间。

 //保存文本

  savetxt: function () {

    console.log(text_output);

    fs.writeFileSync(`${wx.env.USER_DATA_PATH}/output.txt`, text_output,'utf8')

          wx.showToast({

            title: '保存成功',

            icon: 'success',

            duration: 1000

          });

  },

5 欢迎扫码测试

收藏
点赞
0
个赞
共11条回复 最后由wangwei8638回复于2020-06-06
#12wangwei8638回复于2020-06-06

欢迎扫描体验

0
#11wangwei8638回复于2020-06-06

0
#10wangwei8638回复于2019-11-13

适合懒人用

0
#9wangwei8638回复于2019-10-12

文字识别准确率很高了

0
#8wangwei8638回复于2019-08-27
#7 风允摩羯回复
我指的是视频文字截屏并翻译成txt

这个没问题

0
#7风允摩羯回复于2019-08-25
#6 wangwei8638回复
指的字幕配音?

我指的是视频文字截屏并翻译成txt

0
#6wangwei8638回复于2019-08-18
#5 风允摩羯回复
以后视频文字就可以用了

指的字幕配音?

0
#5风允摩羯回复于2019-08-17

以后视频文字就可以用了

0
#4wangwei8638回复于2019-08-13

已自动token,可以永久使用 了

0
#3wangwei8638回复于2019-08-10

小程序已更新

0
#2wangwei8638回复于2019-08-05

扫描二维码,拍图听朗读

0
TOP
切换版块