技能标识:voice-chat
语音对话集成技能,支持双向语音交流。使用TTS和STT实现完整的语音对话功能。
实现完整的双向语音对话功能,支持语音输入和语音输出。
语音输入 → STT转换 → 文本处理 → AI响应 → TTS转换 → 语音输出
class VoiceChat:
def init(self):
self.recognizer = sr.Recognizer()
self.microphone = sr.Microphone()
def listen(self):
监听语音输入并转换为文本
with self.microphone as source:
print(🎤 请说话...)
audio = self.recognizer.listen(source)
try:
text = self.recognizer.recognize_google(audio, language=zh-CN)
print(f📝 识别结果: {text})
return text
except sr.UnknownValueError:
return 无法识别语音
except sr.RequestError:
return 语音识别服务不可用
def speak(self, text):
使用OpenClaw TTS朗读文本
# 调用OpenClaw tts工具
print(f🗣️ 正在朗读: {text})
# 这里可以集成OpenClaw tts工具
def conversation_loop(self):
对话循环
print(🎧 语音对话已启动,按Ctrl+C退出)
while True:
# 监听语音
user_input = self.listen()
if userinput and 退出 not in userinput:
# 生成响应(这里可以集成AI模型)
response = f我听到你说: {user_input}
# 语音输出
self.speak(response)
if name == main:
chat = VoiceChat()
chat.conversation_loop()
# 创建临时文件
with tempfile.NamedTemporaryFile(mode=w, suffix=.json, delete=False) as f:
tts_request = {
text: text,
channel: webchat
}
json.dump(tts_request, f)
request_file = f.name
try:
# 调用tts工具(需要OpenClaw环境)
result = subprocess.run([
node, path/to/openclaw/tts-tool.js,
--input, request_file,
--output, output_file
], capture_output=True, text=True)
if result.returncode == 0:
print(f✅ 语音文件已生成: {output_file})
# 播放音频
subprocess.run([start, output_file], shell=True)
else:
print(f❌ TTS失败: {result.stderr})
finally:
os.unlink(request_file)
model = whisper.load_model(base)
result = model.transcribe(audio_file, language=zh)
return result[text]
url = fhttps://api.elevenlabs.io/v1/text-to-speech/{voice_id}
headers = {
xi-api-key: apikey or os.environ.get(ELEVENLABSAPI_KEY),
Content-Type: application/json
}
data = {
text: text,
modelid: elevenmultilingual_v2,
voice_settings: {
stability: 0.5,
similarity_boost: 0.5
}
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
with open(output.mp3, wb) as f:
f.write(response.content)
return output.mp3
else:
raise Exception(fElevenLabs TTS失败: {response.text})
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 voice-chat-skill-1776285614 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 voice-chat-skill-1776285614 技能
skillhub install voice-chat-skill-1776285614
文件大小: 19.59 KB | 发布时间: 2026-4-16 17:28