herring101
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # KC3Hack2024 OUCCチーム # 2/18 第2回開発会議 # 2/17 第1回開発会議 ## オブジェクトの型 ScriptTextModel (Style Bert-Vitsに送るデータ) - ScriptLine[] ScriptLine - Text : string - Character : string - Style : string - SpeakingModel : string Characters (キャラクター名から音声モデルへのマッピング) - Mapping : Dictionary<string,string> RawTextModel (GPT4に送るデータ) - RawText : string こんな感じ? ```csharp using System; namespace Namespace { public class Characters { // ReactivePropertyのDictionary // Key: Character, Value: SpeakingModel public Dictionary<string,string> Mapping {get;} } public class ScriptLine:INotifryPropertyChanged { [ReactiveProperty] // MVVM toolkit private string _text; public string Text { get; set; } public string Character {get; set;} public string Style { get; set; } // 拡張メソッド public string SpeakingModel => Characters.Mapping[Character]; } public class ScriptTextModel { public ScriptLine[] ScriptLines { get; set; } } public class RawTextModel { public string RawText { get; set; } } } ``` --- **以下アイデアソン期間** # 2/11 第1回 ## テーマ:関西をええ感じに ![image](https://hackmd.io/_uploads/rJME5Q8jp.png) ![image](https://hackmd.io/_uploads/rJn457Ls6.png) ## 案出し ### 自分の身の回りの「不便 or 伸びしろ」 - 部屋が片付けられない! - 換気扇自動で切れてほしい - 乗ってる電車の到着時刻を知りたい - (バス運行状況) ### つくりたいもの - GitHub通知アプリ(Windows) Jasperみたいな - 本の読み上げ。GPT4で話者特定、StyleBertVitsで音声読み上げ。 - https://ecsosaka-my.sharepoint.com/:p:/g/personal/u537882g_ecs_osaka-u_ac_jp/Edc_OEZsQZZGlhbQWO7vqREB2wVBLGMFRMOSN8UhjmMRvA?e=tWecqF ## 本の読み上げアプリ ### なんの不便に役立つか - 目が見えない人であったり、満員電車や運転中・歩いている途中など手が使えない状況だと本を読むことができない - 通常の合成音声だと感情がうまく表現できていないため、作品の中に入り込めない ### どのようにそれらを解決し、向上できるか - 上記の逆 ### 何ができるか - テキストファイル、青空文庫のURLを入力すると、本の読み上げ音声が作成される(10分ほどかかる) - 音声ライブラリから再生したい本の読み上げ音声を聞くことができる。 - 出力結果 音声付きEPub (できたら) ### 実装構成 - フロントエンド - スマホアプリ - Windows - MAUI (無印) - テキストto音声 別ライブラリ - バックエンド - C#との相性を考えAzure - ASP.&#8205;NET - REST API JSON - grpc バイナリ ## 決定事項 - 本の読み上げアプリ - 関西のテーマに沿って、関西弁の含まれる小説や、関西弁が達者な音声合成モデルを作成 ## 勉強事項 - MAUIの書き方 - [StyleBertVits2](https://github.com/litagin02/Style-Bert-VITS2) - APIサーバー立てる (Azure別インスタンス立てればいい) - [MagicOnion] ## スケジュール 2/11 ~ - スケジュール詰める・MAUIの学習 - FigmaでUI作成 - Azureの学習、Azure Function/VMなどを立てる練習 - 発表スライド作成 - チーム名を決める 2/17 : 対面アイデア発表 ## 次回 2/12 20:30 ~ : スケジュール詰め、MAUIの学習 # 2/12 第2回 ## 各自やってきたこと - 西田:[MAUIチュートリアル](https://learn.microsoft.com/ja-jp/dotnet/maui/tutorials/notes-app/?view=net-maui-8.0) - 宮嶋:style-bert-vits 環境構築 # 2/13 第3回 ## メモ - moespeechのライセンス上、声優の声をそのまま使用することはできない - 同じようなジャンル?の声をマージして使用するなどをすることになる - ジャンルを決める必要がある - StyleBertVits2は1つの声の学習に自分の環境(Laptop4060)で約30分ほどあれば十分学習できる - なので音声モデルを作れる数は限られている。 - 50モデルが限界? - 1ジャンル5人ぐらいの声とすると10ジャンル? - マージはかなりきれいに行えそうでした。 - ナレーションスタイルを用意したい - ナレーションしている音声が必要 - 下の音声がよさそう。 - 案:スタイル0, 他1のようにして合成する ## 機能設計 - テキスト =(GPT)=> 下のようなテキストにする =(Style-Bert Vits)=> 音声 - キャラクターごとの声の指定 (後から変更可) - 青空文庫 html, epub =(ruby変換,形態素解析,置換)=> テキスト - epub 出力 (音声) - WinUI - 読み上げの修正 - キャラクター、スタイル、読み上げ文が間違っていた場合修正できるようにする - GPT4からのStyleBertVits2に送る前のクエリリストをユーザーが変更できるUI ## スケジュール、役割分担 - UI - タブ1 - 実行中タスク一覧の表示 (編集へ飛べる) - 文章取り込み - GPT4解析 - 音声合成 - 文章取り込み・GPT4による解析(API料金の注意書きが必要) - タブ2 - 編集 - GPT4解析後の文章の編集 - 音声合成モデルの選択 - 実行状況に応じて表示内容を変化させる - 設定 - APIキー - バージョン表示(テンプレートに従うとよさそう) - html/epubからのテキスト変換 - 青空文庫HTMLを平文にする - 形態素解析してルビ置換する - EPubへの出力 - 必要最低限の情報だけ乗せる - 作品名、作者、翻訳者 - 音声とテキストを結びつけて出力する - GPT4によるキャラクター、スタイル解析 - 15文ほど読んだら、要約文、キャラクター情報を更新する - 前半10文をキャプションする - 「謎の男」=「高橋」 - ![](https://media.discordapp.net/attachments/1204261700350648340/1204285674207973386/image.png?ex=65dd67ef&is=65caf2ef&hm=fb7ef10005df56fd4dfe8b60459184a91d000e673d9b47e5e6d1fa25a894c75e&=&format=webp&quality=lossless&width=1368&height=618) - StyleBertVits2のモデル作成 - 各声優ごとの音声モデル作成 - あるキャラクターにない感情スタイルを、別キャラクターのモデルからマージできるか検証(今週中) - ジャンル分け - https://docs.google.com/spreadsheets/d/15xyvX-IICnza41Om9WhNCTP6su2uLwZiWTcdOF3TC28/edit?usp=sharing ## GPT4が返すであろう返答 ``` [マチルド:natural]「新婦アンヌ様がご入場なさいます」 [アンヌ:narration]ホールの大きなドアが左右に開かれ、真っ白なウエディングドレスに身を包んだ女性が、颯爽と歩いて入っていらっしゃいました。 [アンヌ:narration]そのドレスは恐ろしいほど贅沢に布を使っています。ドレープとプリーツを上手く組み合わせて豪華さを演出したデザインのようです。 [アンヌ:narration]お父様は、お母様と違って派手な方がお好きなのでしょう……。 [アンヌ:surprised]「……な! ……マ、マチルド。どうして――」 [アンヌ:narration]呆然としたお顔のお父様が、それだけしか言えずに立ち尽くしていらっしゃいます。 [アンヌ:narration]あら? マチルド様? 新婦はアンヌ様とおっしゃったように思うのですが……? ``` ## ナレーションぽい音声ID - [0c109d26](https://drive.google.com/drive/folders/1AQJahYamgkwd6aqgkYuEUIq-IebTItIV?usp=drive_link) - ## オブジェクトの型 ScriptTextEntity (Style Bert-Vitsに送るデータ) - ScriptLine[] ScriptLine - 読み上げテキスト - モデル - スタイル RawTextEntity - ## スライド構成 - 表紙? - チーム名(無し(チームH)でもいい気はする) - 雑タイトル (本AI読み上げソフト) - 目的 - どんな本でも高クオリティの音声で聞けるようにする<BR>(高クオリティ:話者やアクセントがしっかりと選択されている) - 家事や運転中でもラジオ感覚で聞ける - 視覚障害者がどんな本でも読めるようになる - アプローチ - LLM(大規模言語モデル)で話者や感情を推定する - それを元に最新の音声合成モデルで読み上げ音声を生成する - 従来の読み上げソフトと違う点 - 発言ごとに適切な話者・感情を選択する - これによりドラマCDのようなものを自動生成できる - 関西をええかんじに - 関西人はせっかちなので移動しながら本が「読めて」うれしい!!!!!!!!! - 関西弁読み上げに対応(予定)

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully