Skip to content
yuki-jsPublic

About

VAGINA: Voice AGI Notepad App

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

706 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

VAGINA

Voice AGI Notepad Agent

ใƒŽใƒผใƒˆใƒ‘ใƒƒใƒ‰ใƒปใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ้ŸณๅฃฐใƒปๆฑŽ็”จไบบๅทฅ็Ÿฅ่ƒฝใƒปFlutter ใ‚ขใƒ—ใƒชใ€‚

็‰นๅพด

  • ๐ŸŽค ใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ้Ÿณๅฃฐไผš่ฉฑ - ใ‚ตใƒผใƒใƒผใƒ›ใ‚นใƒˆๅž‹ Voice Agent ใซใ‚ˆใ‚‹่‡ช็„ถใชๅฏพ่ฉฑ
  • ๐Ÿค– ๆฑŽ็”จไบบๅทฅ็Ÿฅ่ƒฝ - GPT-4oใซใ‚ˆใ‚‹้ซ˜ๅบฆใชๆŽจ่ซ–ใจๅฟœ็ญ”
  • ๐Ÿ“’ ใƒŽใƒผใƒˆใƒ‘ใƒƒใƒ‰ๆฉŸ่ƒฝ - ใƒใƒณใ‚บใƒ•ใƒชใƒผๆ–‡ๆ›ธไฝœๆˆใƒป็ทจ้›†
  • ๐Ÿง  ใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ - ๆทฑใ„ๅˆ†ๆžใจ้•ทๆ–‡็”Ÿๆˆใซ็‰นๅŒ–ใ—ใŸAIใ‚ขใ‚ทใ‚นใ‚ฟใƒณใƒˆ (NEW)
  • ๐Ÿ› ๏ธ ๅผทๅŒ–ใ•ใ‚ŒใŸใƒ„ใƒผใƒซใ‚ทใ‚นใƒ†ใƒ  - ้Ÿณๅฃฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‹ใ‚‰ใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใธใฎใ‚ฏใ‚จใƒชๆฉŸ่ƒฝ (NEW)
  • โ˜Ž๏ธ ใƒ—ใƒญใ‚ฐใƒฉใƒžใƒ†ใ‚ฃใƒƒใ‚ฏ้€š่ฉฑๅˆถๅพก - AIใซใ‚ˆใ‚‹่‡ชๅ‹•้€š่ฉฑ็ต‚ไบ†ๆฉŸ่ƒฝ (NEW)
  • ๐Ÿ“ฑ ใ‚ฏใƒญใ‚นใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ  - Android / iOS / Windows / Web ๅฏพๅฟœ
  • ๐ŸŽจ ใ‚นใ‚ฟใ‚คใƒชใƒƒใ‚ทใƒฅใช UI - ใƒขใƒ€ใƒณใชใƒ‡ใ‚ถใ‚คใƒณ

ใ‚นใ‚ฏใƒชใƒผใƒณใ‚ทใƒงใƒƒใƒˆ

(ๆบ–ๅ‚™ไธญ)

ๅฟ…่ฆๆกไปถ

  • Flutter SDK 3.27.1 (fvm ็ตŒ็”ฑใง็ฎก็†)
  • VAGINA server API ใธใฎๆŽฅ็ถš่จญๅฎš

Flutter ใƒใƒผใ‚ธใƒงใƒณ็ฎก็† (fvm)

ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฏ fvm (Flutter Version Management) ใ‚’ไฝฟ็”จใ—ใฆ Flutter ใฎใƒใƒผใ‚ธใƒงใƒณใ‚’็ฎก็†ใ—ใฆใ„ใพใ™ใ€‚

fvm ใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซ

# Dart ใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎๅ ดๅˆ
dart pub global activate fvm

# ใพใŸใฏ Homebrew (macOS/Linux)
brew tap leoafarias/fvm
brew install fvm

่ฉณ็ดฐใฏ fvm ใฎๅ…ฌๅผใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ ใ‚’ๅ‚็…งใ—ใฆใใ ใ•ใ„ใ€‚

fvm ใฎไฝฟ็”จๆ–นๆณ•

# ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงๆŒ‡ๅฎšใ•ใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณใฎ Flutter ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ
fvm install

# fvm ็ตŒ็”ฑใง Flutter ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒ
fvm flutter --version
fvm flutter pub get
fvm flutter run

# IDE ใง fvm ใ‚’ไฝฟ็”จใ™ใ‚‹ๅ ดๅˆ
# .fvm/flutter_sdk ใŒไฝœๆˆใ•ใ‚Œใ‚‹ใฎใงใ€ใ“ใฎใƒ‘ใ‚นใ‚’ IDE ใซ่จญๅฎšใ—ใฆใใ ใ•ใ„

ๆณจๆ„: devcontainer ใ‚’ไฝฟ็”จใ™ใ‚‹ๅ ดๅˆใ€fvm ใฏ่‡ชๅ‹•็š„ใซ่จญๅฎšใ•ใ‚Œใพใ™ใ€‚

UIๆง‹้€ ใƒใ‚งใƒƒใ‚ฏ

ใ‚นใ‚ฏใƒชใƒผใƒณ/ใ‚ฟใƒ–/ใƒšใƒผใƒณ/ใ‚ปใ‚ฐใƒกใƒณใƒˆใฎ้…็ฝฎใƒซใƒผใƒซใ‚’็ฐกๆ˜“ใƒใ‚งใƒƒใ‚ฏใ—ใพใ™ใ€‚

python3 scripts/ui_structure_check.py --lib ./lib

ใ‚ฏใ‚คใƒƒใ‚ฏใ‚นใ‚ฟใƒผใƒˆ

# ใƒชใƒใ‚ธใƒˆใƒชใ‚’ใ‚ฏใƒญใƒผใƒณ
git clone https://github.com/yuki-js/vagina.git
cd vagina

# fvm ใง Flutter ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ
fvm install

# ไพๅญ˜้–ขไฟ‚ใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ
fvm flutter pub get

# ใ‚ขใƒ—ใƒชใ‚’ๅฎŸ่กŒ
fvm flutter run

devcontainer ใ‚’ไฝฟ็”จใ™ใ‚‹ๅ ดๅˆ

devcontainer ใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€fvm ใจ Flutter 3.27.1 ใŒ่‡ชๅ‹•็š„ใซใ‚ปใƒƒใƒˆใ‚ขใƒƒใƒ—ใ•ใ‚Œใพใ™ใ€‚

# VS Code ใง้–‹ใ
code .

# Command Palette ใ‹ใ‚‰ "Dev Containers: Reopen in Container" ใ‚’้ธๆŠž

# devcontainer ๅ†…ใงใฏ fvm ใŒ่จญๅฎšๆธˆใฟใชใฎใงใ€็›ดๆŽฅ flutter ใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟ็”จๅฏ่ƒฝ
flutter --version
flutter pub get
flutter run

Voice Agent ใฎ่จญๅฎš

้Ÿณๅฃฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฏใ‚ตใƒผใƒใƒผๅด registry ใง็ฎก็†ใ•ใ‚Œใพใ™ใ€‚ใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใฏ provider ๅใ€base URLใ€API ใ‚ญใƒผใ‚’ไฟๆŒใ›ใšใ€Speed Dial ใ”ใจใซ server registry ใฎ Voice Agent ใ‚’้ธๆŠžใ—ใพใ™ใ€‚

ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๆง‹้€ 

vagina/
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ main.dart              # ใ‚จใƒณใƒˆใƒชใƒผใƒใ‚คใƒณใƒˆ
โ”‚   โ”œโ”€โ”€ config/                # ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ่จญๅฎš
โ”‚   โ”œโ”€โ”€ core/                  # ใ‚ณใ‚ขๆฉŸ่ƒฝ
โ”‚   โ”‚   โ””โ”€โ”€ state/             # ็Šถๆ…‹็ฎก็†ใƒ—ใƒญใƒใ‚คใƒ€ใƒผ
โ”‚   โ”œโ”€โ”€ feat/                  # ๆฉŸ่ƒฝๅˆฅใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช๏ผˆFeature-first๏ผ‰
โ”‚   โ”‚   โ”œโ”€โ”€ home/              # ใƒ›ใƒผใƒ ๆฉŸ่ƒฝ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ screens/       # ็”ป้ข
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ tabs/          # ใ‚ฟใƒ–UI
โ”‚   โ”‚   โ”œโ”€โ”€ call/              # ้€š่ฉฑๆฉŸ่ƒฝ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ screens/       # ็”ป้ข
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ panes/         # ใƒšใ‚คใƒณUI๏ผˆChat/Call/Notepad๏ผ‰
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ widgets/       # ใ‚ฆใ‚ฃใ‚ธใ‚งใƒƒใƒˆ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ state/         # ็Šถๆ…‹็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ session/           # ใ‚ปใƒƒใ‚ทใƒงใƒณๆฉŸ่ƒฝ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ screens/       # ็”ป้ข
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ segments/      # ใ‚ปใ‚ฐใƒกใƒณใƒˆUI
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ widgets/       # ใ‚ฆใ‚ฃใ‚ธใ‚งใƒƒใƒˆ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ state/         # ็Šถๆ…‹็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ settings/          # ่จญๅฎšๆฉŸ่ƒฝ
โ”‚   โ”‚   โ”œโ”€โ”€ oobe/              # ๅˆๅ›ž่ตทๅ‹•ใƒ•ใƒญใƒผ
โ”‚   โ”‚   โ”œโ”€โ”€ speed_dial/        # ใ‚นใƒ”ใƒผใƒ‰ใƒ€ใ‚คใƒคใƒซ่จญๅฎš
โ”‚   โ”‚   โ””โ”€โ”€ about/             # ใ‚ขใƒ—ใƒชใซใคใ„ใฆ
โ”‚   โ”œโ”€โ”€ models/                # ใƒ‡ใƒผใ‚ฟใƒขใƒ‡ใƒซ
โ”‚   โ”œโ”€โ”€ services/              # ใƒ“ใ‚ธใƒใ‚นใƒญใ‚ธใƒƒใ‚ฏใƒปAPI
โ”‚   โ”‚   โ”œโ”€โ”€ call_service.dart
โ”‚   โ”‚   โ”œโ”€โ”€ realtime_api_client.dart
โ”‚   โ”‚   โ”œโ”€โ”€ chat/              # ใƒใƒฃใƒƒใƒˆ้–ข้€ฃ
โ”‚   โ”‚   โ”œโ”€โ”€ tools/             # ใƒ„ใƒผใƒซใ‚ทใ‚นใƒ†ใƒ 
โ”‚   โ”‚   โ””โ”€โ”€ platform/          # ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰
โ”‚   โ”œโ”€โ”€ repositories/          # ใƒ‡ใƒผใ‚ฟๆฐธ็ถšๅŒ–
โ”‚   โ”œโ”€โ”€ data/                  # ใ‚นใƒˆใƒฌใƒผใ‚ธๅฎŸ่ฃ…
โ”‚   โ”œโ”€โ”€ interfaces/            # ใƒชใƒใ‚ธใƒˆใƒชใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚น
โ”‚   โ”œโ”€โ”€ widgets/               # ๅ…ฑๆœ‰UIใ‚ณใƒณใƒใƒผใƒใƒณใƒˆ
โ”‚   โ”œโ”€โ”€ theme/                 # ใƒ†ใƒผใƒžๅฎš็พฉ
โ”‚   โ””โ”€โ”€ utils/                 # ใƒฆใƒผใƒ†ใ‚ฃใƒชใƒ†ใ‚ฃ
โ”œโ”€โ”€ test/                      # ใƒ†ใ‚นใƒˆใ‚ณใƒผใƒ‰
โ””โ”€โ”€ docs/                      # ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ

ใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃๆฆ‚่ฆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              UI Layer (Screens)                 โ”‚
โ”‚  HomeScreen, CallScreen, ChatPage, NotepadPage  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         State Management (Riverpod)             โ”‚
โ”‚   Providers, Notifiers, StreamProviders         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Business Logic (Services)             โ”‚
โ”‚  CallService, RealtimeApiClient, ToolService    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚        Data Layer (Repositories)                โ”‚
โ”‚  ConfigRepository, MemoryRepository, etc.       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         Storage (JsonFileStore)                 โ”‚
โ”‚  File I/O, Web localStorage                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ

ใƒฆใƒผใ‚ถใƒผๅ‘ใ‘ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ

้–‹็™บ่€…ๅ‘ใ‘ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ

ใใฎไป–ใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ

ใ‚ณใƒณใƒˆใƒชใƒ“ใƒฅใƒผใ‚ทใƒงใƒณ

ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใธใฎ่ฒข็Œฎใ‚’ๆญ“่ฟŽใ—ใพใ™๏ผ

่ฒข็Œฎๆ–นๆณ•

  1. ใ“ใฎใƒชใƒใ‚ธใƒˆใƒชใ‚’ใƒ•ใ‚ฉใƒผใ‚ฏ
  2. ใƒ•ใ‚ฃใƒผใƒใƒฃใƒผใƒ–ใƒฉใƒณใƒใ‚’ไฝœๆˆ (git checkout -b feature/amazing-feature)
  3. ๅค‰ๆ›ดใ‚’ใ‚ณใƒŸใƒƒใƒˆ (git commit -m 'Add amazing feature')
  4. ใƒ–ใƒฉใƒณใƒใซใƒ—ใƒƒใ‚ทใƒฅ (git push origin feature/amazing-feature)
  5. ใƒ—ใƒซใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ไฝœๆˆ

ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐ่ฆ็ด„

  • Dart ใฎๅ…ฌๅผใ‚นใ‚ฟใ‚คใƒซใ‚ฌใ‚คใƒ‰ใซๅพ“ใ†
  • dart format ใงใ‚ณใƒผใƒ‰ใ‚’ๆ•ดๅฝข
  • ๆ–ฐๆฉŸ่ƒฝใซใฏๅฟ…ใšใƒ†ใ‚นใƒˆใ‚’่ฟฝๅŠ 
  • ใ‚ณใƒกใƒณใƒˆใฏ่‹ฑ่ชžใพใŸใฏๆ—ฅๆœฌ่ชž๏ผˆไธ€่ฒซๆ€งใ‚’ไฟใค๏ผ‰
  • ใ‚ณใƒŸใƒƒใƒˆใƒกใƒƒใ‚ปใƒผใ‚ธใฏๅค‰ๆ›ดๅ†…ๅฎนใ‚’ๆ˜Ž็ขบใซ่จ˜่ฟฐ

FAQ

Q: ใฉใฎAzure OpenAIใƒขใƒ‡ใƒซใŒๅฟ…่ฆใงใ™ใ‹๏ผŸ

A: GPT-4o with Realtime API ใŒๅฟ…่ฆใงใ™ใ€‚Azure ใƒใƒผใ‚ฟใƒซใงใƒ‡ใƒ—ใƒญใ‚คใƒกใƒณใƒˆใ‚’ไฝœๆˆใ—ใฆใใ ใ•ใ„ใ€‚

Q: ้€š่ฉฑๆ–™้‡‘ใฏใ‹ใ‹ใ‚Šใพใ™ใ‹๏ผŸ

A: Azure OpenAI ใฎๅพ“้‡่ชฒ้‡‘ใŒ็™บ็”Ÿใ—ใพใ™ใ€‚ๆ–™้‡‘ใฏ้Ÿณๅฃฐๅ…ฅๅŠ›ใƒปๅ‡บๅŠ›ใฎใƒˆใƒผใ‚ฏใƒณๆ•ฐใซๅฟœใ˜ใฆๅค‰ๅ‹•ใ—ใพใ™ใ€‚

Q: ใ‚ชใƒ•ใƒฉใ‚คใƒณใงไฝฟ็”จใงใใพใ™ใ‹๏ผŸ

A: ใ„ใ„ใˆใ€Azure OpenAI APIใธใฎๆŽฅ็ถšใŒๅฟ…้ ˆใงใ™ใ€‚

Q: iOS/Androidใงใƒ“ใƒซใƒ‰ใงใใพใ›ใ‚“

A: ใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅ›บๆœ‰ใฎๆจฉ้™่จญๅฎšใŒๅฟ…่ฆใงใ™ใ€‚AndroidManifest.xml ใ‚„ Info.plist ใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚

ๆŠ€่ก“ใ‚นใ‚ฟใƒƒใ‚ฏ

ใ‚ซใƒ†ใ‚ดใƒช ๆŠ€่ก“ ็”จ้€”
ใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏ Flutter 3.27.1 ใ‚ฏใƒญใ‚นใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ UI
็Šถๆ…‹็ฎก็† Riverpod 3.1.0 ไพๅญ˜ๆ€งๆณจๅ…ฅใƒป็Šถๆ…‹็ฎก็†
้Ÿณๅฃฐๅ…ฅๅŠ› record 6.2.0 ใƒžใ‚คใ‚ฏ้Œฒ้Ÿณ (PCM 24kHz)
้Ÿณๅฃฐๅ†็”Ÿ Flutter SoLoud / just_audio ใƒฉใ‚คใƒ–PCMใƒปใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏ้Ÿณๅ†็”Ÿ
้€šไฟก web_socket_channel 3.0.3 WebSocketๆŽฅ็ถš
ใ‚นใƒˆใƒฌใƒผใ‚ธ path_provider ใƒ•ใ‚กใ‚คใƒซไฟๅญ˜
UI Google Fonts, Flutter Markdown ใƒ•ใ‚ฉใƒณใƒˆใƒปMarkdown่กจ็คบ

ไธป่ฆๆฉŸ่ƒฝ

้Ÿณๅฃฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๆฉŸ่ƒฝ

  • ใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ้Ÿณๅฃฐ้€š่ฉฑ: Azure OpenAI GPT-4o Realtime APIใจใฎๅŒๆ–นๅ‘้Ÿณๅฃฐ้€šไฟก
  • ้Ÿณๅฃฐใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏ: ้€š่ฉฑ้–‹ๅง‹ๆ™‚ใฎใƒ€ใ‚คใƒคใƒซใƒˆใƒผใƒณใ€็ต‚ไบ†ๆ™‚ใฎใ€Œใƒ”ใƒญใƒณใ€้Ÿณ
  • ใƒใƒฃใƒƒใƒˆๅฑฅๆญด: ไผš่ฉฑๅ†…ๅฎนใฎใƒ†ใ‚ญใ‚นใƒˆ่กจ็คบใƒปไฟๅญ˜
  • ใƒŽใƒผใƒˆใƒ‘ใƒƒใƒ‰: AIใŒใƒชใ‚ขใƒซใ‚ฟใ‚คใƒ ใง็ทจ้›†ๅฏ่ƒฝใชใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ
  • ใ‚นใƒ”ใƒผใƒ‰ใƒ€ใ‚คใƒคใƒซ: ใ‚ซใ‚นใ‚ฟใƒ ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผ่จญๅฎšใ‚’ไฟๅญ˜ใ—ใฆ็ด ๆ—ฉใ้€š่ฉฑ้–‹ๅง‹
  • ใ‚ญใƒฃใƒฉใ‚ฏใ‚ฟใƒผใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บ: ็ตตๆ–‡ๅญ—ใƒปๅๅ‰ใƒป้Ÿณๅฃฐใƒปใƒ—ใƒญใƒณใƒ—ใƒˆใ‚’ใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บ
  • ใ‚ปใƒƒใ‚ทใƒงใƒณ็ฎก็†: ้ŽๅŽปใฎไผš่ฉฑๅฑฅๆญดใ‚’ไฟๅญ˜ใƒป้–ฒ่ฆง

ใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๆฉŸ่ƒฝ (NEW v1.1.0)

  • ๅฐ‚้–€็š„ใชAIใ‚ขใ‚ทใ‚นใ‚ฟใƒณใƒˆ: ๆทฑใ„ๅˆ†ๆžใ‚„้•ทๆ–‡็”Ÿๆˆใซ็‰นๅŒ–ใ—ใŸใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ
  • Instant-only (< 30็ง’): ๅŒๆœŸใง็ตๆžœใ‚’่ฟ”ใ™๏ผˆ30็ง’ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆ๏ผ‰
  • ่ค‡ๆ•ฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ็ฎก็†: ็”จ้€”ๅˆฅใซ่ค‡ๆ•ฐใฎใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’่จญๅฎšๅฏ่ƒฝ

ๆ–ฐใ—ใ„ใƒ„ใƒผใƒซๆฉŸ่ƒฝ (NEW v1.1.0)

  • end_call: ้Ÿณๅฃฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใŒใƒ—ใƒญใ‚ฐใƒฉใƒžใƒ†ใ‚ฃใƒƒใ‚ฏใซ้€š่ฉฑใ‚’็ต‚ไบ†
  • say_hello_to_agent: ้Ÿณๅฃฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‹ใ‚‰ใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใธใ‚ฏใ‚จใƒช๏ผˆๅŒๆœŸใ€30็ง’ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆ๏ผ‰
  • list_available_agents: ๅˆฉ็”จๅฏ่ƒฝใชใƒ†ใ‚ญใ‚นใƒˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ไธ€่ฆง่กจ็คบ

ใใฎไป–ใฎๆฉŸ่ƒฝ

  • ใƒ„ใƒผใƒซใ‚ทใ‚นใƒ†ใƒ : ใƒกใƒขใƒชไฟๅญ˜ใ€ๆ™‚ๅˆปๅ–ๅพ—ใ€่จˆ็ฎ—ๆฉŸใชใฉใฎใƒ“ใƒซใƒˆใ‚คใƒณใƒ„ใƒผใƒซ
  • PWAๅฏพๅฟœ: Webใƒ–ใƒฉใ‚ฆใ‚ถใ‹ใ‚‰ใ‚ขใƒ—ใƒชใจใ—ใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซๅฏ่ƒฝ

้–‹็™บ

ใ‚ณใƒžใƒณใƒ‰

# ใƒญใƒผใ‚ซใƒฉใ‚คใ‚บ็”Ÿๆˆ๏ผˆARB ๆ›ดๆ–ฐๆ™‚๏ผ‰
fvm flutter gen-l10n

# ้™็š„่งฃๆž
fvm flutter analyze

# ใƒ†ใ‚นใƒˆๅฎŸ่กŒ
fvm flutter test

# ใ‚ณใƒผใƒ‰ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ
dart format .

# ็‰นๅฎšใฎใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใงใƒ“ใƒซใƒ‰
fvm flutter build apk          # Android
fvm flutter build ios          # iOS
fvm flutter build windows      # Windows

# ใƒ‡ใƒใƒƒใ‚ฐๅฎŸ่กŒ
fvm flutter run -d windows     # Windows
fvm flutter run -d chrome      # Web

ใŠ็Ÿฅใ‚‰ใ›ใฎใƒญใƒผใ‚ซใƒซใƒ—ใƒฌใƒ“ใƒฅใƒผ๏ผˆWeb๏ผ‰

ใƒญใƒผใ‚ซใƒซใฎ Flutter Web ใงใฏใ€่ตทๅ‹•ไธญใฎใƒ›ใ‚นใƒˆใจใƒใƒผใƒˆใ‹ใ‚‰ https://localhost:<port>/announcement.json ใŒ่‡ชๅ‹•็š„ใซๅ‚็…งใ•ใ‚Œใพใ™ใ€‚ๆ‰‹ๅ‹•ใฎ --dart-define ๆŒ‡ๅฎšใฏไธ่ฆใงใ™ใ€‚

fvm flutter run -d chrome

้–‹็™บใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผ

  1. ๆฉŸ่ƒฝ้–‹็™บ: lib/ ้…ไธ‹ใฎ้ฉๅˆ‡ใชใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซๅฎŸ่ฃ…
  2. ใƒญใƒผใ‚ซใƒฉใ‚คใ‚บๆ›ดๆ–ฐ: lib/l10n/*.arb ใ‚’ๅค‰ๆ›ดใ—ใŸๅ ดๅˆใฏ fvm flutter gen-l10n ใ‚’ๅฎŸ่กŒ
  3. ใƒ†ใ‚นใƒˆไฝœๆˆ: test/ ้…ไธ‹ใซๅฏพๅฟœใ™ใ‚‹ใƒ†ใ‚นใƒˆใƒ•ใ‚กใ‚คใƒซใ‚’ไฝœๆˆ
  4. ้™็š„่งฃๆž: flutter analyze ใงใ‚จใƒฉใƒผใŒใชใ„ใ“ใจใ‚’็ขบ่ช
  5. ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆ: dart format . ใงใ‚ณใƒผใƒ‰ๆ•ดๅฝข
  6. ใƒ†ใ‚นใƒˆๅฎŸ่กŒ: flutter test ใงๅ…จใƒ†ใ‚นใƒˆใŒ้€šใ‚‹ใ“ใจใ‚’็ขบ่ช

ใƒˆใƒฉใƒ–ใƒซใ‚ทใƒฅใƒผใƒ†ใ‚ฃใƒณใ‚ฐ

Windows ใง้Ÿณๅฃฐๅ†็”ŸใŒใงใใชใ„

  • ใƒฉใ‚คใƒ–้Ÿณๅฃฐใฏ Flutter SoLoud ใฎใƒใ‚คใƒ†ใ‚ฃใƒ–ใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰ใ‚’ไฝฟ็”จใ—ใพใ™
  • ้Ÿณๅฃฐๅ‡บๅŠ›ใƒ‡ใƒใ‚คใ‚นใจWindowsใฎ้Ÿณ้‡ใƒŸใ‚ญใ‚ตใƒผ่จญๅฎšใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„

ใƒžใ‚คใ‚ฏใŒ่ช่ญ˜ใ•ใ‚Œใชใ„

  • Android: ใƒžใƒ‹ใƒ•ใ‚งใ‚นใƒˆใƒ•ใ‚กใ‚คใƒซใซ้Œฒ้Ÿณๆจฉ้™ใŒๅฟ…่ฆ
  • iOS: Info.plist ใซใƒžใ‚คใ‚ฏไฝฟ็”จ่จฑๅฏใฎ่ชฌๆ˜ŽใŒๅฟ…่ฆ
  • ใ‚ขใƒ—ใƒช่ตทๅ‹•ๆ™‚ใซๆจฉ้™ใƒชใ‚ฏใ‚จใ‚นใƒˆใŒ่กจ็คบใ•ใ‚Œใพใ™

APIๆŽฅ็ถšใ‚จใƒฉใƒผ

  • Azure OpenAI ใฎใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆURLใจAPIใ‚ญใƒผใ‚’็ขบ่ช
  • ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏๆŽฅ็ถšใ‚’็ขบ่ช
  • ใƒญใ‚ฐ็”ป้ข๏ผˆ่จญๅฎš > ใƒญใ‚ฐ๏ผ‰ใงใ‚จใƒฉใƒผ่ฉณ็ดฐใ‚’็ขบ่ช

ใใฎไป–ใฎ Flutter ใƒใƒผใ‚ธใƒงใƒณใ‚’ไฝฟใ„ใŸใ„ๅ ดๅˆ

fvm ใ‚’ไฝฟ็”จใ™ใ‚‹ใจใ€่ค‡ๆ•ฐใฎใƒใƒผใ‚ธใƒงใƒณใ‚’็ฎก็†ใงใใพใ™:

# ๅˆฅใฎใƒใƒผใ‚ธใƒงใƒณใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซ
fvm install 3.38.3

# ไธ€ๆ™‚็š„ใซๅˆฅใฎใƒใƒผใ‚ธใƒงใƒณใ‚’ไฝฟ็”จ
fvm use 3.38.3

# ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใƒใƒผใ‚ธใƒงใƒณ (3.27.1) ใซๆˆปใ™
fvm use 3.27.1

ใƒฉใ‚คใ‚ปใƒณใ‚น

(TBD)

ๅ‚่€ƒ

About

VAGINA: Voice AGI Notepad App

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages