Commit History
-
Add SLAM pronunciation to user dictionary (#22)
Kyosuke IchikawaUnverified signatureAdds SLAM -> スラム pronunciation entry to VOICEVOX user dictionary for proper Japanese text-to-speech synthesis of robotics terms.6220475
-
Add GPT-5 series models support (#21)
Kyosuke IchikawaUnverified signature- Add gpt-5, gpt-5-mini, gpt-5-nano to available models - Update OpenAI API usage with max_completion_tokens parameter - Keep DEFAULT_MODEL as gpt-4.1-mini (better quality than gpt-5-mini for podcast generation) Note: gpt-4.1-mini was set as the default because it was qualitatively better than gpt-5-mini. gpt-5-mini tends to include prompt instructions in dialogue output (e.g., "ですます調で整理します").8d3cf2d
-
Fix pronunciation of 前頭* terms to 'zentou' (#20)
Kyosuke IchikawaUnverified signature前頭関連用語の読み方を「まえがしら」から「ぜんとう」に修正 ## 変更内容 - 「前頭」単体を最高優先度(8)で追加 - 前頭葉、前頭皮質、前頭部の読み方を追加 - ユーザー辞書を更新 これで前頭○○がすべて正しく「ぜんとう○○」と読まれるようになります。9a58d48
-
Update VOICEVOX character list and docs (#19)
Kyosuke IchikawaUnverified signature* Update VOICEVOX character list in audio generation message * Update character definitions and documentation for VOICEVOX list refreshb0a7a52 -
Improve character name fuzzy matching with detailed documentation (#18)
Kyosuke IchikawaUnverified signature- Add normalize_text() with clear examples and explanation - Implement fuzzy matching for character conversation parsing - Enhance _find_best_character_match() with similarity threshold - Add comprehensive test suite for fuzzy matching scenarios - Improve code documentation with concrete examples186b7f9 -
feat: improve character settings and conversation dynamics (#17)
Kyosuke IchikawaUnverified signature- Standardize Tohoku Kiritan speed_scale to 1.1 - Update Kiritan's character description for better personality - Add interactive conversation guidelines for natural dialogue flow75e2664
-
Replace pitch_scale with speed_scale for character voice adjustment (#16)
Kyosuke IchikawaUnverified signature- Change from pitch adjustment to speech speed adjustment - Set all characters to 1.1x speed (10% faster) - Set TOHOKU_KIRITAN to 1.2x speed (20% faster) - Update audio_generator.py to use speed_scale instead of pitch_scale2153808
-
feat: add pitch adjustment for 東北きりたん (#15)
Kyosuke IchikawaUnverified signature* feat: add pitch adjustment support for VOICEVOX characters - Add pitch_scale parameter to Character enum - Implement pitch control in VoicevoxCoreManager.text_to_speech - Set 東北きりたん pitch adjustment to 5% higher - Use AudioQuery and synthesis for precise pitch control - Maintain backward compatibility with other characters * refactor: simplify pitch control with CHARACTER_BY_STYLE_ID dict - Add CHARACTER_BY_STYLE_ID dictionary for O(1) style_id lookup - Remove redundant _get_pitch_scale_for_style_id method - Use direct dictionary access for cleaner code6ec1556
-
Update VOICEVOX character speech patterns (#14)
Kyosuke IchikawaUnverified signature- Update character speech patterns to match official character settings - 四国めたん: 一人称を「わたくし」に変更、お嬢様口調の特徴を明確化 - 九州そら: 一人称を「まーくつー」に変更、アンドロイド設定を追加 - 中国うさぎ: 一人称・語尾・特徴を公式設定に準拠 - 中部つるぎ: 一人称・特徴をサムライキャラクターに合わせて調整 - 東北ずん子: 母性的な性格特徴を強調 - 東北イタコ: 一人称・語尾を公式設定に準拠 - ずんだもん: ずんだ餅普及の使命を追加 This improves character consistency and authenticity in generated podcasts.d96870e
-
東北キャラクター追加とデフォルト変更 (#13)
Kyosuke IchikawaUnverified signature* feat: Update VOICEVOX Core and models versions to 0.16.1 and 0.16.0 respectively * feat: Add new characters and update speech patterns for VOICEVOX * feat: Add Tohoku characters and update default character - Add Tohoku Zunko (Style ID: 107), Tohoku Kiritan (108), Tohoku Itako (109) - All use 21.vvm model file - Update DEFAULT_CHARACTER1 from Shikoku Metan to Tohoku Kiritan - Add speech patterns for new characters in templates - Update all related tests to use new default character - Update character mappings in E2E tests - Fix code formatting issues15d8abf
-
feat: 🧠 Add cognitive neuroscience terms to user dictionary (#12)
Kyosuke IchikawaUnverified signature- Add GPT pronunciation variants (gpt/GPT) - Add brain region terms: 前頭野, 頭頂野, 側頭野, 後頭野 - Add neuroanatomy terms: 海馬, 扁桃体, 視床, 視床下部, 大脳皮質 - Improve pronunciation accuracy for AI/tech and neuroscience content - Update dictionary creation script with comprehensive term set947af51
-
Fix English 'A' contextual conversion to katakana (#11)
Kyosuke IchikawaUnverified signature- Remove hardcoded 'a': 'ア' from CONVERSION_OVERRIDE dictionary - Add _convert_a_contextually method with simplified logic - Convert 'a/A' to 'ア' only when used as article (followed by space + English word) - Preserve technical terms like 'AClass', 'Class A', '(A)', etc. - Add comprehensive test cases covering all conversion scenarios Tests: All 32 test cases pass including 7 specific 'A' conversion tests767dfb0
-
feat: restore LLM model selection on page reload (#10)
Kyosuke IchikawaUnverified signature- Add browser_state persistence for OpenAI/Gemini model selection - Implement proper data flow: browser_state → user_session → UI - Add model-specific browser_state update functions - Fix architecture to use user_session as single source of truth for UI initialization Changes: - Added set_openai_model_name_with_browser_state() - Added set_gemini_model_name_with_browser_state() - Updated model dropdown change handlers to sync with browser_state - Modified initialize_session_and_ui to read model values from user_session - Ensured model selection persists across page reloadsba772f0 -
refactor: remove redundant browser_state update methods (#9)
Kyosuke IchikawaUnverified signature- Remove unused update_browser_state_audio_status method - Remove redundant update_browser_state_extracted_text method - Improve ensure_browser_state_completeness to handle empty app_session_id - Consolidate browser_state management to use UserSession as single source of truth - Update tests to reflect new behavior where UserSession defaults are used to complete browser_state - All unit tests and E2E tests passing This change eliminates duplicate default value definitions and improves code maintainability by centralizing browser_state management in the UserSession class.fbdb7a1
-
feat: Add new user dictionary entries for common Japanese terms (#8)
Kyosuke IchikawaUnverified signatureAdded 5 new entries to the user dictionary: - 章 (しょう) - chapter - 他に (ほかに) - besides/in addition - 見せ所 (みせどころ) - highlight/selling point - 前頭前野 (ぜんとうぜんや) - prefrontal cortex - 二分法 (にぶんほう) - dichotomy Fixed word type for '他に' from ADVERB to COMMON_NOUN to match VOICEVOX Core requirements. Generated updated user dictionary file with 18 total entries.376495a
-
refactor: remove unused auto_save method and all its calls (#7)
Kyosuke IchikawaUnverified signature- Remove UserSession.auto_save() method from user_session.py - Remove all auto_save() calls from app.py (10 locations) - Update documentation to remove auto_save references - Simplify session state management by removing meaningless save operations The auto_save method was a no-op placeholder that provided no actual functionality. All session state is now managed through BrowserState integration.0872d87 -
refactor: remove unused methods identified by vulture (#6)
Kyosuke IchikawaUnverified signature- Remove 22 unused methods with confidence 60%+ across multiple files - app.py: removed create_user_session, extract_file_text, _create_recovery_progress_html, update_audio_button_state, reset_audio_state_and_components_with_browser_state, generate_podcast_audio_streaming_with_browser_state - user_session.py: removed from_dict, save_to_file, get_session_restoration_info, prepare_network_recovery, can_resume_audio_generation, cleanup, update_audio_generation_state, is_audio_generation_active, needs_api_key_restoration, get_recovery_progress_info, _cleanup_directory, _check_audio_generation_completion, and 5 legacy wrapper methods - audio_generator.py: removed _generate_and_combine_audio - text_processor.py: removed get_current_model, get_document_type - tests: updated unused variable documentation, removed obsolete test files - All methods verified as truly unused through detailed grep analysis - Code maintains full functionality while improving maintainabilityc3b6480
-
feat: Add Hz and KV entries to user dictionary (#5)
Kyosuke IchikawaUnverified signature- Add Hz (ヘルツ) pronunciation entry - Add KV (ケーブイ) pronunciation entry - Remove unused "方" (カタ) entry192a17d -
chore: Simplify project rules to reference design document (#4)
Kyosuke IchikawaUnverified signature- Simplified .cursor/rules/prj_rules.mdc to only reference docs/design.md - All detailed project information is now centralized in the design document - This avoids duplication and ensures single source of truth for project guidelinese14bda4 -
fix: Handle None values in _create_progress_html to prevent TypeError (#3)
Kyosuke IchikawaUnverified signatureFixed TypeError: '>' not supported between instances of 'NoneType' and 'int' that occurred when estimated_total_parts was None during session restoration. Changes: - Updated _create_progress_html to accept Optional[int] for parameters - Added null safety checks converting None to 0 before arithmetic operations - Fixed all usages of current_part and total_parts in time calculations - Added comprehensive unit tests to verify None handling works correctlyd884829 -
bugfix: Remove invalid resume_from_part parameter from _create_progress_html tests (#1)
Kyosuke IchikawaUnverified signatureFixed three failing unit tests that were passing an invalid resume_from_part parameter to the _create_progress_html method, which doesn't accept this parameter. Changes: - Removed resume_from_part parameter from test method calls - Updated test documentation to clarify resume functionality is handled elsewhere - All core progress display assertions remain intact2ec4204
-
トランクベース開発をやめる & VOICEVOX Coreのダウンローダが落ちる問題の対応 (#2)
Kyosuke IchikawaUnverified signature* chore: Add branch naming conventions and remove trunk-based development - Add branch naming strategy to docs/design.md (feature/, bugfix/, refactor/, chore/) - Update CLAUDE.md to use feature branch development instead of trunk-based - Remove .cursor directory as requested * fix: Add --c-api-version to downloader command * chore: Restrict deploy-to-hf job to main branch onlyb0bd61f
-
fix: Remove extracted_text from browser state updates
6b8403f -
fix: Update model names to remove preview versions
7ec6ceb
-
feat: Add new entries to user dictionary
08f13b4 -
fix: Remove duplicate session logs and unused parameters
- Remove generic "User session initialized" log from constructor - Add specific logging for session creation vs restoration - Remove unused resume_from_part parameter from _create_progress_html - Remove unused user_session parameter from prepare_audio_generation_with_browser_state - Fix streaming audio generation error with unexpected keyword argumentf951e3e -
fix: Remove redundant resume part message in UI
194a7a5 -
refactor: Simplify streaming audio initialization logic
- Set streaming_audio initial value to always None in initialize_session_and_ui - Change restore_streaming_audio_from_browser_state to return single value (progress_html only) - Remove unnecessary audio file restoration in streaming_audio output - Simplify method signature and reduce complexity - All 188 unit tests pass successfullyc52c71e -
feat: Add comprehensive unit tests and refactor complex app methods
- Add 32 comprehensive unit tests for complex methods in app.py - Test update_audio_button_state_with_resume_check method thoroughly - Test _create_progress_html method with edge cases - Refactor update_audio_button_state_with_resume_check into smaller helper methods - Extract _check_disk_for_final_audio for file system operations - Extract _get_audio_button_state_from_browser_state for state logic - Extract _get_audio_button_state_from_session for legacy fallback - Reduce main method complexity from 68 to 28 lines (58% reduction) - Improve code maintainability and testability - All 188 unit tests pass successfully6921080
-
fix: Enhance audio restoration logic with script checks
f77728e -
fix: Remove unused audio generation methods
f8eb2e7 -
fix: Remove redundant text in audio generation status
d21fde2 -
fix: Update audio button state with browser state
de326ba -
fix: Update audio generation button states
ebc89c5
-
fix: Restore completed audio after browser reload
- Added disk-based search for completed audio files in output directory - Automatically detect and restore final audio when browser_state is lost - Select most recent audio file when multiple completed files exist - Update browser_state with found final audio path for consistency - Fix issue where completed audio wasn't showing after browser reload - Maintain backward compatibility with existing browser_state logice6b93b5 -
fix: Prevent partial audio preview after browser reload
- Modified restore_streaming_audio_from_browser_state to return None for partial generation - Completed audio still shows in final audio output UI as intended - Partial generation shows progress info but no audio preview until resume - Improves user experience by avoiding confusing partial audio display - Maintains all debugging and resume functionalityc5203a0 -
feat: Improve logging security and reduce verbosity
- Replace detailed content logging with metadata (character count, file names) - Change sensitive debug logs from INFO to DEBUG level - Remove 'ROOT CAUSE DEBUG/FIX' prefixes for cleaner logs - Hide actual conversation text to prevent content exposure - Remove excessive separator lines and verbose status messages - Maintain essential debugging capability without security risks0fdd7fe -
feat: Display resumable part number in audio generation progress
- Added resume_from_part parameter to _create_progress_html function - Shows 'パート{N}から再開可能' when audio generation is resumable - Enhanced restore_streaming_audio_from_browser_state to check disk files - Improved progress display after browser reload with proper part info - Added status indicators for different generation states (preparing, failed, etc.) - Fixed issue where progress UI was not shown after browser reload2f90de3 -
feat: Enhance audio generation progress visibility
80aa4b1 -
refactor: Update timeout values and remove session recovery steps
680fe5d
-
feat: Implement browser reload recovery for audio generation
- Add true resume functionality that continues from exact interruption point - Detect script changes and force restart from part 1 when content modified - Implement disk-based existing part discovery for cross-session persistence - Fix directory management to reuse existing directories during resume - Add comprehensive logging for debugging resume flow - Clean up part files on disk when script changes to prevent false resume - Fix mypy type annotations for Optional parameters 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>533b48a
-
feat: Update browser state restoration for Japanese UI
9f2c09d -
feat: Add Japanese UI text mapping for document and podcast modes
253c715 -
fix: Improve audio part progress logging and status messages
b7da6a5 -
feat: Add browser state persistence for settings changes
288f858
-
fix: Improve URL extraction handling in test mode
9225c9b -
fix: Handle empty URL extraction in test mode
4f366d3 -
fix: Remove API key from environment variable setting
792db22 -
fix: Resolve E2E test failures by updating textarea selectors
- Replace outdated placeholder-based selectors with stable position-based selectors - Update all E2E step files to use textarea.nth(1) for extracted text area - Fix radio component value mismatch by returning Japanese label names for UI - Update test expectations to match actual enum values - Enhance placeholder logic for whitespace handling in app.py All core E2E tests now passing: script generation, audio generation, file upload, text management, and automatic separator functionality.8ace92e
-
docs: Add clarification on Gradio state management distinctions
83b2ce8