如何通过JavaScript使用浏览器录制声音?

如何通过JavaScript使用浏览器录制声音?,javascript,request,Javascript,Request,如果调用此请求(使用bash),将得到一个响应: curl 'https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=5613576154274168367&bl=boq_translate-webserver_20210525.06_p0&hl=en&soc-app=1&soc-platform=1&soc-device=1

如果调用此请求(使用bash),将得到一个响应:

curl 'https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=5613576154274168367&bl=boq_translate-webserver_20210525.06_p0&hl=en&soc-app=1&soc-platform=1&soc-device=1&_reqid=1641564&rt=c' \
  -H 'authority: translate.google.com' \
  -H 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"' \
  -H $'x-goog-batchexecute-bgr: ' \
  -H 'x-same-domain: 1' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36' \
  -H 'content-type: application/x-www-form-urlencoded;charset=UTF-8' \
  -H 'accept: */*' \
  -H 'origin: https://translate.google.com' \
  -H 'x-client-data: ' \
  -H 'sec-fetch-site: same-origin' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-dest: empty' \
  -H 'referer: https://translate.google.com/' \
  -H 'accept-language: en-US,en;q=0.9,fa;q=0.8' \
  -H 'cookie: ' \
  --data-raw 'f.req=%5B%5B%5B%22MkEWBc%22%2C%22%5B%5B%5C%22%D8%AA%D8%B3%D8%AA%5C%22%2C%5C%22fa%5C%22%2C%5C%22en%5C%22%2Ctrue%5D%2C%5B3%5D%5D%22%2Cnull%2C%22generic%22%5D%5D%5D&at=AD08yZm2xeWxbruXnnzNXfpl0lR9%3A1622098959780&' \
  --compressed
情况如何?该请求由
google.translator
(web)提出。此外,它是一个语音到文本的API。换句话说,我所做的就是点击左下角的麦克风图标并说:“测试”(通过我的声音)。然后将其发送到服务器,并在文本区域中看到“test”字(作为文本)

我的问题是,JavaScript如何处理以下部分(我想这是我的声音):

f.req=%5B%5B%5B%22MkEWBc%22%2C%22%5B%5B%5C%22%D8%AA%D8%B3%D8%AA%5C%22%2C%5C%22fa%5C%22%2C%5C%22en%5C%22%2Ctrue%5D%2C%5B3%5D%5D%22%2Cnull%2C%22generic%22%5D%5D%5D&at=AD08yZm2xeWxbruXnnzNXfpl0lR9%3A1622098959780&

这是什么?是声音转换成文字吗?它是如何产生的?

谷歌翻译最有可能用于将语音转换为文本。这个JSAPI允许您在不重新发明轮子的情况下生成结果,正如您可以在Google提供的一个示例中看到的那样

您发现的请求已被编码。使用urldecode函数解码后,如下所示:

f.req=[[["MkEWBc","[[\"تست\",\"fa\",\"en\",true],[3]]",null,"generic"]]]&at=AD08yZm2xeWxbruXnnzNXfpl0lR9:1622098959780&

正如您所看到的,它由一些标识符和您的输入组成(
تتت
–>
测试
)。

可以通过chrome而不是JS来完成,但您可以在JS中完成。以record.js为例,要通过js录制声音,您可以使用已有的库或使用。