如何在Alexa技能中录制用户语音并导出为MP3/WAV格式?
在Alexa技能中实现语音录制并转换格式的方法
1. 配置技能权限
首先在Alexa开发者控制台的技能设置里,找到「Permissions」板块,添加「Record Audio」权限。同时在交互模型中创建触发录音的自定义意图(比如RecordVoiceIntent),让用户可以通过语音指令启动录音。
2. 在技能代码中触发录音
当用户触发录音意图时,通过Alexa Skills Kit(ASK)发送录音指令。以Node.js SDK为例,代码示例如下:
const Alexa = require('ask-sdk-core'); const RecordVoiceIntentHandler = { canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' && Alexa.getIntentName(handlerInput.requestEnvelope) === 'RecordVoiceIntent'; }, handle(handlerInput) { return handlerInput.responseBuilder .addDirective({ type: 'Alexa.StartRecording', durationInMilliseconds: 10000, // 最长支持60000毫秒(60秒) intent: { name: 'RecordCompleteIntent', // 录音完成后触发的意图 confirmationRequired: false } }) .speak('请开始录音,我会录10秒') .getResponse(); } };
录音完成后,Alexa会将临时音频文件的URL发送到你的技能后端,通过RecordCompleteIntent的请求参数获取。
3. 下载并转换音频格式
拿到音频URL后,立即下载文件(URL有效期仅几分钟),然后用ffmpeg工具将默认的OPUS格式转换为MP3或WAV:
- 转换为MP3:
ffmpeg -i recorded_audio.opus output.mp3 - 转换为WAV:
ffmpeg -i recorded_audio.opus output.wav
转换逻辑需要部署在你的后端服务器上,完成后即可对转换后的文件进行后续操作。
注意事项
- 录音必须由用户主动触发,禁止后台录制,严格遵循隐私规范。
- 临时音频URL有效期短,需及时处理。
- 部分地区可能有额外的隐私合规要求,需确保技能符合当地法规。
内容的提问来源于stack exchange,提问作者Tanmay Agarwal
相关产品推荐
相关产品推荐

