国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

微信小程序和百度的語音識別接口詳解

2024-07-22 01:18:34
字體:
來源:轉載
供稿:網友

介紹

因為項目需要,使用到了微信小程序和百度的語音接口 現在將項目中的一個小模塊拿出來單獨分享.

技術關鍵字

    微微信小程序 百度語音接口 nodejs,express fluent-ffmegp

環境

    windows 10 vs code 1.20.1 微信小程序開發工具 1.02.1802270 花生殼-提供域名和內容穿透-用于方便本地遠程調試微信小程序

考慮到業務并不復雜,所以就將所有的代碼都放在一個頁面就可以了(wxml,wxss,js統稱為一個頁面)

文件目錄

頁面

index.wxml

<button type='default' bindtouchstart='startrecorderHandel' bindtouchend="sendrecorderHandel">開始8錄音</button><view> 你說的話是: <view> {{msg}} </view></view>

index.js

// 錄音對象const recorderManager = wx.getRecorderManager();function sendRecord(src) { var obj = { // 已經在花生殼中映射到本地端口-3001  url: "http://xxx:34306/post", filePath: src, name: "fffile", header: {  'Content-Type': 'application/json' }, success: function (result) {  var data = JSON.parse(result.data);  // msg 為最終語音識別的字符串  var msg = data.result;  // 獲取當前頁面對象  var page = getCurrentPages()[0];  page.setData({ msg: msg }); }, fail: function (err) {  console.log(err); } }; wx.uploadFile(obj)}// 結束錄音的時候觸發 recorderManager.onStop((res) => { // 獲取文件路徑-提交到后臺-后臺發送到百度 sendRecord(res.tempFilePath);})recorderManager.onError((res) => { console.log("error", res);});Page({ /** * 頁面的初始數據 */ data: { msg: "" }, // 按下按鈕的時候觸發 startrecorderHandel() { // 開始錄音 recorderManager.start({ }); }, // 松開按鈕的時候觸發-發送錄音 sendrecorderHandel() { // 結束錄音 recorderManager.stop(); }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { wx.authorize({  scope: 'record' }) }})

后臺nodejs接口文件目錄

index.js

var express = require('express');var app = express();var fs = require('fs');var Multiparty = require('multiparty');// 轉碼工具var ffmpeg = require('fluent-ffmpeg');var AipSpeechClient = require("baidu-aip-sdk").speech;// #region 創建百度授權 // 設置APPID/AK/SKvar APP_ID = "xxx";var API_KEY = "xxx";var SECRET_KEY = "xxx";// 百度請求對象var client = new AipSpeechClient(APP_ID, API_KEY, SECRET_KEY);// 新建一個對象,建議只保存一個對象調用服務接口app.post('/post', function (req, res, next) { //生成multiparty對象,并配置上傳目標路徑 var form = new Multiparty.Form({ uploadDir: 'uploads/' }); //上傳完成后處理 form.parse(req, function (err, fields, files) { var filesTemp = JSON.stringify(files, null, 2); var inputFile = files.fffile[0]; var uploadedPath = inputFile.path; var command = ffmpeg(); command.addInput(uploadedPath)  // 將1.aac 變為1.wav  .save(uploadedPath.slice(0, -3) + "wav")  .on('error', function (err) {  console.log(err);  })  .on('end', function () {  // 將錄音文件轉為buffer  var voice = fs.readFileSync(uploadedPath.slice(0, -3) + "wav");  var voiceBuffer = new Buffer(voice);  // 發送buffer到百度接口 返回語音對應的字符串  client.recognize(voiceBuffer, 'wav', 16000).then(function (result) {   console.log('<recognize>: ' + JSON.stringify(result));   res.end(JSON.stringify(result));  }, function (err) {   console.log(err);  });  }); });});var server = app.listen(3001, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port);});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广西| 浠水县| 苏尼特右旗| 福建省| 远安县| 横山县| 保山市| 临城县| 松江区| 镇康县| 天峨县| 金坛市| 达日县| 库车县| 泗洪县| 丰都县| 小金县| 海原县| 万荣县| 哈巴河县| 拉萨市| 华宁县| 金华市| 伽师县| 绍兴市| 昆山市| 丹凤县| 辽阳县| 措美县| 嘉兴市| 南丰县| 北海市| 同心县| 临清市| 蓝山县| 卢氏县| 嵩明县| 潜江市| 开远市| 金昌市| 阿瓦提县|