Skip to content

MemoriaTrace is an Android application designed to automatically capture, process, and organize various personal information traces, starting with call recordings and expanding to general notes, directly into an Obsidian vault. It intelligently parses metadata, prevents duplicates, and operates seamlessly in the background.

Notifications You must be signed in to change notification settings

NeuralVibe/MemoriaTrace

Repository files navigation

MemoriaTrace

📱 통화 녹음 요약 텍스트 파일을 Obsidian 마크다운으로 변환하는 Android 앱

🎯 주요 기능

  • 텍스트 요약 파일 변환: 통화 녹음 요약 텍스트 파일을 구조화된 마크다운으로 변환
  • 다중 인코딩 지원: UTF-8, UTF-16 LE/BE, Latin1 인코딩 자동 감지 및 변환
  • Obsidian 호환: Front matter와 태그를 포함한 Obsidian 친화적 마크다운 생성
  • 스마트 파일명 파싱: 파일명에서 연락처, 날짜, 시간 정보 자동 추출
  • 중복 방지: 동일한 시간대 내용 중복 저장 방지
  • 실시간 디버그: 앱 내 디버그 로그 화면으로 변환 과정 실시간 모니터링

📋 지원 파일 형식

파일명 패턴

  1. 통화 녹음: 통화 녹음 홍길동_250710_133659_summary.txt

    • 형식: 통화 녹음 [연락처]_[YYMMDD]_[HHMMSS]_summary.txt
    • 결과: 통화녹음_홍길동.md 파일에 저장
  2. 일반 음성: 음성 250707_150008_summary.txt

    • 형식: 음성 [YYMMDD]_[HHMMSS]_summary.txt
    • 결과: 음성녹음.md 파일에 저장

지원 인코딩

  • UTF-8 (BOM 있음/없음)
  • UTF-16 LE (Little Endian, BOM: FF FE)
  • UTF-16 BE (Big Endian, BOM: FE FF)
  • Latin1 (폴백)

📄 텍스트 파일 형식

앱이 올바르게 파싱할 수 있는 텍스트 파일 형식:

키워드
클라우드, 가상화 기술, KVM, 라이센스, 비용 효율성

요약
클라우드 기술 및 제품 소개
- 피맥스 클라우드의 역사와 기술력을 소개하며...
- IM 클라우드의 설립 배경과 핵심 엔지니어들의 이동을 언급...

KVM 기반 가상화 솔루션 소개
- KVM 기반의 가상화 솔루션 특징과 장점을 설명...
- 데이터 센터 운영 및 전산실 관리에 필요한 기능들을 통합...

🎨 변환 결과 예시

입력 파일: 통화 녹음 홍길동_250710_133659_summary.txt

출력 파일: 통화녹음_홍길동.md

---
type: summary-note
title: 통화 녹음 - 홍길동
created: 2025-07-13T22:45:30.123456
tags:
  - 통화녹음
  - 홍길동
  - 요약
---

# 통화 녹음 - 홍길동

## 📞 홍길동 - 2025-07-10 13:36:59

**파일명**: `통화 녹음 홍길동_250710_133659_summary.txt`  
**식별자**: `250710_133659`

### 🏷️ 키워드
클라우드, 가상화 기술, KVM, 라이센스, 비용 효율성

### 📝 요약 내용

클라우드 기술 및 제품 소개
- 피맥스 클라우드의 역사와 기술력을 소개하며...
- IM 클라우드의 설립 배경과 핵심 엔지니어들의 이동을 언급...

KVM 기반 가상화 솔루션 소개
- KVM 기반의 가상화 솔루션 특징과 장점을 설명...

🚀 사용 방법

1. 기본 변환

  1. 파일 선택: "텍스트 파일 선택" 버튼으로 요약 파일 선택
  2. 출력 폴더 선택: 마크다운 파일을 저장할 폴더 선택
  3. 변환 실행: "마크다운으로 변환" 버튼 클릭

2. Obsidian 경로 설정 (권장)

  1. 설정 탭 → "Obsidian 경로 설정"
  2. Obsidian vault 폴더 선택
  3. 이후 변환 시 자동으로 해당 경로에 저장

3. 디버그 모니터링

  1. 메인 화면🐛 디버그 로그 버튼
  2. 변환 과정 실시간 확인
  3. 로그 저장/복사/클리어 기능

🔧 기술 스택

  • Flutter: 3.27.1
  • Dart: 3.6.0
  • Android: 최소 SDK 21 (Android 5.0)
  • 패키지:
    • file_picker: ^8.1.4 - 파일 선택
    • permission_handler: ^12.0.1 - 권한 관리
    • path: ^1.9.1 - 경로 처리
    • shared_preferences: ^2.3.3 - 설정 저장

📱 권한 요구사항

Android 11+ (API 30+)

  • MANAGE_EXTERNAL_STORAGE: 모든 파일 접근 권한
  • READ_EXTERNAL_STORAGE: 외부 저장소 읽기
  • WRITE_EXTERNAL_STORAGE: 외부 저장소 쓰기

권한 설정 방법

  1. 앱 설치 후 첫 실행 시 권한 요청 대화상자 표시
  2. "설정으로 이동" → 앱 → MemoriaTrace → 권한
  3. "파일 및 미디어" → "모든 파일에 대한 접근 허용" 활성화

🔍 디버그 기능

실시간 로그 모니터링

  • 변환 과정 추적: 각 단계별 상세 로그
  • 인코딩 감지: BOM 및 인코딩 자동 감지 과정
  • 파일 내용 미리보기: 읽힌 파일 내용 확인
  • 에러 진단: 실패 원인 상세 분석

로그 관리

  • 실시간 표시: 앱 내에서 바로 확인
  • 파일 저장: 다운로드 폴더에 로그 파일 저장
  • 클립보드 복사: 로그 내용 복사
  • 색상 구분: 에러/경고/성공 상태별 색상 표시

🗂️ 파일 구조

lib/
├── main.dart                          # 앱 진입점
├── screens/
│   ├── simple_text_converter_screen.dart  # 메인 변환 화면
│   ├── markdown_list_screen.dart          # 변환된 파일 목록
│   ├── obsidian_settings_screen.dart      # Obsidian 경로 설정
│   └── debug_log_screen.dart              # 디버그 로그 화면
├── services/
│   └── text_summary_service.dart          # 핵심 변환 로직
└── utils/
    └── debug_logger.dart                   # 디버그 로깅 유틸리티

🎛️ 핵심 기능 상세

스마트 파일명 파싱

// 통화 녹음 패턴
RegExp(r'^통화 녹음 (.+)_(\d{6})_(\d{6})_summary$')

// 일반 음성 패턴  
RegExp(r'^음성 (\d{6})_(\d{6})_summary$')

다중 인코딩 지원

  1. BOM 감지: 파일 시작 바이트 분석
  2. UTF-16 LE/BE: 2바이트 코드 유닛 변환
  3. UTF-8: 표준 UTF-8 디코딩
  4. 폴백: Latin1로 안전한 읽기

중복 방지 시스템

  • 식별자 기반: YYMMDD_HHMMSS 패턴으로 중복 검사
  • 기존 파일 확인: 동일 시간대 내용 존재 시 스킵
  • 안전한 추가: 새로운 내용만 기존 파일에 추가

🏗️ 빌드 방법

개발 환경 빌드

flutter clean
flutter pub get
flutter build apk --debug

릴리스 빌드

flutter build apk --release

APK 위치

build/app/outputs/flutter-apk/
├── app-debug.apk      # 디버그 버전
└── app-release.apk    # 릴리스 버전

🐛 문제 해결

변환 실패 시

  1. 🐛 디버그 로그 확인
  2. 파일 인코딩 확인 (UTF-16 권장)
  3. 파일 형식 확인 (키워드/요약 구조)
  4. 권한 확인 (모든 파일 접근 허용)

일반적인 문제들

  • 인코딩 오류: UTF-16 BOM 확인
  • 권한 거부: Android 설정에서 수동 권한 부여
  • 파일명 불일치: 지정된 패턴 준수 필요
  • 빈 내용: 키워드/요약 구조 확인

📞 지원

문제가 발생하면 다음을 포함하여 보고해주세요:

  1. 디버그 로그 (🐛 버튼에서 복사)
  2. 파일명 예시
  3. Android 버전
  4. 에러 메시지

Made with ❤️ using Flutter

About

MemoriaTrace is an Android application designed to automatically capture, process, and organize various personal information traces, starting with call recordings and expanding to general notes, directly into an Obsidian vault. It intelligently parses metadata, prevents duplicates, and operates seamlessly in the background.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published