如何向wit.ai提交非英文语音识别请求及波斯语语音适配问题
1. 如何向wit.ai发送非英文语音识别请求?
wit.ai 默认会采用英文模型做语音识别,但只要在请求里明确指定语言参数,就能触发对应语言的识别逻辑。这里分两种常用场景说明:
直接调用REST API:
在POST请求的URL查询参数中添加lang字段,值填目标语言的ISO 639-1代码(比如法语是fr,波斯语是fa)。用curl的示例如下:curl -X POST "https://api.wit.ai/speech?v=20230515&lang=fa" \ -H "Authorization: Bearer YOUR_WIT_API_TOKEN" \ -H "Content-Type: audio/wav" \ --data-binary "@your-audio-file.wav"使用官方SDK(以Python为例):
调用语音识别方法时,在请求参数里传入lang。比如:from wit import Wit client = Wit('YOUR_WIT_API_TOKEN') with open('your-audio-file.wav', 'rb') as audio_file: response = client.speech(audio_file, {'Content-Type': 'audio/wav', 'lang': 'fa'}) print('识别结果:', response)注意要确认目标语言的ISO代码正确,wit.ai支持绝大多数主流语言,直接使用对应语言的标准ISO 639-1代码即可。
2. 运行代码时,wit.ai将波斯语语音文件"myspeech.wav"识别为英文,应如何修改代码?
这是典型的未指定识别语言导致的问题——wit.ai默认用英文模型处理音频,自然会把波斯语识别成英文。修改起来很简单,只要在你的识别请求中添加波斯语的语言代码fa即可,下面是几种常见场景的修改示例:
REST API调用场景:
如果你之前的请求URL是https://api.wit.ai/speech?v=20230515,现在需要在末尾补上&lang=fa,修改后的完整URL为:https://api.wit.ai/speech?v=20230515&lang=faPython SDK场景:
假设你原来的代码是这样的:from wit import Wit client = Wit('YOUR_WIT_API_TOKEN') with open('myspeech.wav', 'rb') as f: resp = client.speech(f, {'Content-Type': 'audio/wav'})只需要在请求参数里加上
'lang': 'fa',修改后:from wit import Wit client = Wit('YOUR_WIT_API_TOKEN') with open('myspeech.wav', 'rb') as f: resp = client.speech(f, {'Content-Type': 'audio/wav', 'lang': 'fa'})Node.js SDK场景:
同样在语音识别的配置参数中加入lang: 'fa':const Wit = require('node-wit').Wit; const fs = require('fs'); const client = new Wit({ accessToken: 'YOUR_WIT_API_TOKEN' }); client.speech(fs.readFileSync('myspeech.wav'), 'audio/wav', { lang: 'fa' }) .then(result => console.log('识别结果:', result)) .catch(err => console.error('出错了:', err));
修改完成后重新测试,wit.ai就会使用波斯语的语音模型来处理你的音频文件,识别结果应该就符合预期了。
内容的提问来源于stack exchange,提问作者Monako
相关产品推荐
相关产品推荐

