在Bot Builder上工作时,我正在寻找一种解决方案,可以获取与机器人说话的扬声器的实时语音/音频作为附件。可能吗?以下是我的代码。
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.Message)
{
// Get the conversation state from the turn context.
var state = await _accessors.CounterState.GetAsync(turnContext, () => new CounterState());
// Bump the turn count for this conversation.
state.TurnCount++;
// Set the property using the accessor.
await _accessors.CounterState.SetAsync(turnContext, state);
// Save the new turn count into the conversation state.
await _accessors.ConversationState.SaveChangesAsync(turnContext);
Activity activity = new Activity();
activity.Text = turnContext.Activity.Text;
activity.Speak = turnContext.Activity.Speak;
await turnContext.SendActivityAsync(activity.Text,activity.Speak,"acceptingInput",cancellationToken);
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}
请注意,我正在开发一个机器人(该机器人将接收来自cortana通道的声音)并将其转换为.wav。
答案 0 :(得分:1)
updated 2019-02-18
您可以使用botservice / cortana之类的平台为您执行文本到语音和语音到文本的操作。 (Cortana的一项技能是启用语音的聊天机器人。)
尝试这些
但是,由于隐私问题,不支持您通过这些工具“获取原始声音”的提议。在内部,这些数据是受保护的,短暂的和短暂的。实际上,您正在构建自己的 agent 来打开麦克风,录制一些音频,然后将其发送给语音服务进行处理。 (您的应用程序将负责管理和保护此数据。)