我正在使用Google Speech Streaming API和Google Text to Speech创建语音机器人。我希望只转录用户的语音,即使用户“打断”了语音机器人的响应也是如此。如何避免Voicebot转录自己的声音?
根据我在扬声器上对现有语音机器人(例如Siri)的测试,“过滤”某些声音的功能似乎是可行的。
谢谢
答案 0 :(得分:1)
虽然Google Speech API中没有开箱即用的功能,但是您可以尝试一些众所周知的算法。音频波是加性的,因此从其自身减去音频流等于零(静音)。考虑到这一点,并为您的语音机器人音频输出提供单独的流,一种方法是从用户的输入语音中减去语音机器人的语音。如果您无法访问任何一个音频流或无法将它们分开,则另一种方法是应用speaker diarisation从一个音频流中提取两个语音源。
请注意,如果您对两个流进行幼稚的减法,则可能无法达到理想的效果,因为减法还会衰减音频。取而代之的是,您需要反转相减后的数据流,并将其与要减去的数据流mix相乘。