功能:發一段音頻給百度,百度返回一段文字給你。
結果圖:
語音識別一般分在線和離線兩種。本文說的是在線過程。錄制一段音頻文件->baidu,baidu ->返回一段文字給你。
1.注冊賬戶
2.錄制音頻文件
3.發送http請求
4.解析json數據
1.百度注冊賬戶+創建應用+API文檔
https://console.bce.baidu.com/ai/#/ai/speech/overview/index
https://cloud.baidu.com/doc/SPEECH/s/ek38lxj1u
請AK和SK請自行注冊
2.錄制音頻文件
1.一般支持的音頻格式:pcm、wav、amr、m4a
2.編碼要求:采樣率 16000、16bit、單聲道
3.發送http請求
3.1向 baiduSpeechTokenUrl 發請求得access_token (參數為:AK,SK)
QString m_accessToken,m_text; QString TokenUrl = QString(baiduSpeechTokenUrl).arg(speech_client_AK).arg(speech_client_SK); QMap<QString ,QString>header; header.insert(QString("Content-Type") ,QString("audio/pcm;rate=16000")); QByteArray requestData; QByteArray replyData; myhttp m_http; bool ret; if(m_accessToken.isEmpty() == true) { ret = m_http.post_sync(TokenUrl ,header ,requestData ,replyData); if(ret) { QString key = "access_token"; m_accessToken = getJsonValueBtn(replyData ,key); replyData.clear(); qDebug() << "獲取的token" << m_accessToken; } else { } }
下圖為返回結果
3.2 向BaiduSpeechVideoUrl 發請求得文本(參數為:access_token,錄音文件流)
發送代碼:
3.3 post代碼:
4.解析json數據
JSON | RAW | |
---|---|---|
編碼 | 讀取二進制后base64編碼 | 讀取直接放在Body中 |
數據長度 | 數據增大1/3 | |
len =原始大小 | 音頻文件大小 Content-Length | |
header | Content-Type:application/json | Content-Type: audio/pcm;rate=16000 |
url:cuid | ||
token: | APPID ,API KEY,Secret KEY | |
dev_pid | 1537(普通話) | |