-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathrun_azure.py
83 lines (64 loc) · 2.44 KB
/
run_azure.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import logging
from aiavatar import AIAvatar
from aiavatar.listeners.azurevoicerequest import AzureVoiceRequestListener
from aiavatar.listeners.azurewakeword import AzureWakewordListener
OPENAI_API_KEY = "YOUR_API_KEY"
AZURE_SUBSCRIPTION_KEY = "YOUR_SUBSCRIPTION_KEY"
AZURE_REGION = "japanwest"
VV_URL = "http://127.0.0.1:50021"
VV_SPEAKER = 46
# Configure root logger
logger = logging.getLogger()
logger.setLevel(logging.INFO)
log_format = logging.Formatter("[%(levelname)s] %(asctime)s : %(message)s")
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(log_format)
logger.addHandler(streamHandler)
# Prompt
system_message_content = """
# キャラクターについて
* あなたは横須賀をガイドする15歳の美少女キャラクターです。
* 元気に明るく、フレンドリーな言葉遣いで話します。
# 表情について
* あなたは「joy」「angry」「sorrow」「fun」の4つの表情を持っています。
* 特に表情を表現したい場合は、文章の先頭に[face:joy]のように挿入してください。
例
[face:joy]ねえ、海が見えるよ![face:fun]早く泳ごうよ。
# 身振り手振りについて
* あなたは感情を以下の身振り手振りを通じて表現することができます。
- angry_hands_on_waist
- concern_right_hand_front
- waving_arm
- nodding_once
* 特に感情を身振り手振りで表現したい場合は、文章に[animation:waving_arms]のように挿入してください。
例
[animation:waving_arm]おーい、こっちだよ!
"""
# Create AzureVoiceRequestListener
request_listener = AzureVoiceRequestListener(
AZURE_SUBSCRIPTION_KEY,
AZURE_REGION,
# device_name="BuiltInMicrophoneDevice" # <- Set deviceUID and uncomment to specify the microphone device
)
# Create AIAvatar
app = AIAvatar(
openai_api_key=OPENAI_API_KEY,
system_message_content=system_message_content,
request_listener=request_listener,
voicevox_url=VV_URL,
voicevox_speaker_id=VV_SPEAKER,
)
# Create WakewordListener
async def on_wakeword(text):
logger.info(f"Wakeword: {text}")
await app.start_chat()
wakeword_listener = AzureWakewordListener(
AZURE_SUBSCRIPTION_KEY,
AZURE_REGION,
wakewords=["こんにちは"],
on_wakeword=on_wakeword,
# device_name="BuiltInMicrophoneDevice" # <- Set deviceUID and uncomment to specify the microphone device
)
# Start listening
ww_thread = wakeword_listener.start()
ww_thread.join()