--- tags: 舊的 SRS description: 以 SRS bookmode 為主,不要再更新這邊了 --11/24 --- # 規格書 Table of Content [toc] # 1. 簡介 Introduction ## 1.1 目的 Purpose 本產品為使用者帶來更便利的生活,不只能當音響,還能成為使用者的虛擬助理,讓使用者單用語音完成更多事情。 ## 1.2 文件撰寫規則 Document Conventions 「小絨智慧音箱系統」,以下簡稱「本系統」,此部分包含音箱本體、伺服器和使用者控制介面。 「小絨智慧音箱」,以下簡稱音箱,此部分僅包含音箱本體。 ### 1.2.1 優先權說明 | 優先權 | 重要性 | 說明 | | ------ | ------ | ---------------------------------------------- | | 1 | 最高 | 音箱運作必須功能 | | 2 | 次要 | 重要但不影響整體產品運作 | | 3 | 最低 | 產品附加功能,在不延宕整體進度情況下盡可能完成 | ### 1.2.2 需求使用限制 如一需求須接收其它需求結果,則後續需求將延續前續需求限制。包含但不限於下述範例:FNQ-001 需連網使用,則 FNQ-003 亦須連網,即使 FNQ-003 需求本身可離線使用。以此類推,FNQ-004 限制同 FNQ-003。 ## 1.3 目標族群 Intended Audience 希望提高生活品質與效率的人、對科技產品有興趣的。 ## 1.4 參考 References https://www.apple.com/tw/homepod-mini/ https://store.google.com/tw/product/nest_audio?hl=zh-TW # 2. 總體描述 Overall Description ## 2.1 Product Perspective 我們的智慧音箱是第一代的產品,目標是從最開始的初階入門款研發後,藉由增添與其他智慧家庭工具的連動來一步步進入更高階的門檻,從零開始培養客戶。 ## 2.2 產品功能 Product Functions - 打電話 - 語音輸入備忘錄 - 撥放音樂 - 搜尋天氣 - 語音控制連接搜尋引擎,並將結果傳至手機 - 若有兩個音箱可以合併成劇院級雙聲道享受 <!--### 2.2.1 音箱初始設定流程 ```graphviz digraph initialize_process{ rankdir=LR; 初始化 -> 連結音箱WIFI; 連結音箱WIFI -> 設定帳號; 設定帳號 -> 註冊帳號[label=新用戶]; 設定帳號 -> 登入帳號[label=已有帳號]; 登入帳號 -> 設定音箱; 註冊帳號 -> 設定音箱; 設定音箱 -> 設定音箱名稱; } ``` --> ## 2.3 使用者類別與其特徵 User Classes and Characteristics <!--本系統針對兩種使用者,系統管理員、一般使用者,列出其需求: ### 2.3.1 系統開發者 ### 2.3.2 一般使用者 --> 資策會產業情報研究所(MIC)在今年 3 月到 5 月針對台灣消費者進行線上問券調查, 發現 **21%的消費者**已使用智慧音箱,更有 **77%的消費者**表示未來有意願嘗試使用, ![](https://i.imgur.com/gmgdbWw.png) 所以台灣人不是討厭智慧音箱,而是缺乏入門的契機,我們鎖定的便是這樣的契機。 真正的好不是把所有的選項攤在他人面前,而是為人們進行演示與引導,幫助使用者 所以本產品的核心TA特徵包含 1. 對智慧音箱一竅不通。 2. 一直想入門但又因為學習成本過高,望而卻步。 3. 家中沒有智慧家具,不認為有購買必要的家庭。 ## 2.4 系統環境 Operating Environment ### 音箱本體 1. 作業系統軟體環境為 Linux raspberrypi 5.10.63-v7l+ 2. 硬件有 Raspberry pi 4 & Seeed Studio ReSpeaker Dual Microphone HAT 中有麥克風左右各一、3.5mm音源接口,並接上一個喇叭 <!--### 伺服器 1. 伺服器軟體環境為 --> ## 2.5 設計與實作限制 Design and Implementation Constraints | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------- | | DIC-001 | 1 | 音箱開發使用 Python3.10 | | DIC-002 | 2 | 音箱資料庫使用 MongoDB | | DIC-003 | 1 | 音箱本身記憶體和容量限制 | ## 2.6 使用者說明書 User Documentation ### 音箱初始化設定 **使用者可以利用符合需求的手機或電腦裝置進行初始化設定,詳細軟硬體需求請參考以下。** #### 軟硬體需求 1. 小絨音箱。 2. 符合以下條件的手機或電腦: a. 支援 2.4 GHz 和 5 GHz Wi-Fi 網路。 #### 開始設定 1. 將小絨音箱接上電源。 ++注意:如果你先前曾使用過音箱,請先將裝置恢復原廠設定,再繼續操作。++ 2. 於手機裝置連接名為 **小絨音箱的 Wi-Fi**。 > 如果無法找尋名為小絨音箱的Wi-Fi,請留意 音箱 Wi-Fi AP是否開啟。 3. 於裝置連接到(網址)。 4. 於網頁內設定音箱Wi-Fi網路。 ++注意:你可能需要在設定過程中輸入 Wi-Fi 密碼。++ 5. 點選 **以 Google 帳戶登入** 的按鈕。 a. 如果尚未註冊 Google 帳戶 ,請點選 註冊一個 Google 帳戶 的按鈕。 ### 重置小絨 重置會將小絨智慧音箱恢復至原廠設定。 ++注意:這項操作會清除裝置上的資料且無法復原。++ 1. 找到音箱上的重置按鈕,長按 5 秒鐘後開始重置,此時音箱將發出紅色燈光,系統語音此時也會告知您重置即將開始。 2. 繼續長按 10 秒鐘,~~直到音箱發出綠色燈光,系統語音也會告知您重置已完成。~~ 3. 重置後請重新配對裝置並開始設定音箱。 ## 2.7 假設跟相依性 Assumptions and Dependencies 1. Linux Raspberrypi 5.10.63-v7l+ 目前是 32bits, 64bits 版本為 beta 版,在軟體的試配性上要注意!<font color="grey">(可能的解決方案,軟體改為 Ubuntu LTS 20.04 (64bits))</font> 2. FNR-017 中的套件「PyBluez」僅支援 Python3 不支援 Python2 3. FNR-001、FNR-003 無需網路,但 FNR-002 需要網際網路連接。 - 此二需求於 ananconda 環境執行 - 語音辨識使用 | 軟體名稱 | 版本 | | ---------- | ----------- | | deepspeech | 0.9.3 | | pyaudio | 0.2.11 | | webrtcvad | 2.0.10 | | halo | 0.0.18 | | numpy | 大於 1.15.1 | | scipy | 大於 1.1.0 | - 語音回覆使用 gTTs - 文字處理是用 |套件名稱|版本| |:-:|:-:| |jieba| 大於 0.40| |pypinyin| 0.43| <!-- 原本寫的,有問題再改回去,先變成表格 deepspeech ~= 0.9.3、pyaudio ~= 0.2.11、webrtcvad ~= 2.0.10、halo ~= 0.0.18、numpy>=1.15.1、scipy>=1.1.0,語音回覆使用gTTs --> # 3. 外部介面需求 External Interface Requirements ## <font color=#00a15c> 3.1 使用者介面 User Interfaces </font> | 需求編號 | 優先權 | 用途說明 | | -------- | :------: | ------------ | | EIR-001 | 1 | 設定連接WIFI | | EIR-002 | 1 | 使用者google帳號登入 | | EIR-003 | 1 | 伺服器前端首頁 | | EIR-004 | 2 | 使用者帳號設定 | | EIR-005 | 2 | 功能設定 | | EIR-006 | 3 | 外部連接API帳號設定 | 音箱配對初始設定(Wireframe) ![](https://i.imgur.com/jjkjjEn.jpg) 音箱伺服器前端設定(Wireframe) ![](https://i.imgur.com/cTGqx6V.jpg) ## <font color=orange> 3.2 硬體介面 Hardware Interfaces </font> ## <font color=pink> 3.3 軟體介面 Software Interfaces </font> | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------------------------------------------- | | SIR-001 | 2 | 主要音箱使用藍牙連接另一個音箱作為雙聲道輸出 | | SIR-002 | 1 | 音箱本地資料庫,儲存常用可離線資訊 | | SIR-003 | 2 | 使用藍牙連接手機來撥打電話、播放音樂、唸出行事曆、「傳送搜尋結果」(暫定) | | SIR-004 | 1 | 辨識使用者的聲音產出文字 | | SIR-005 | 1 | 將結果轉換為聲音然後透過喇叭撥出 | | SIR-006 | 1 | 音箱一開始需變成 Wi-Fi AP 供使用者做第一次的連線設定 | ## 3.4 通訊介面 Communications Interfaces | 需求編號 | | 用途描述 | | -------- | ----- | ------------------------------------- | | CIR-001 | HTTPS | 畫面呈現跟大部分的數據流通 (下方圖示) | | CIR-002 | Wi-Fi | 查詢網路資料與雲端資源 | | CIR-003 | 藍芽 | | ![](https://i.imgur.com/TIcrhhE.png =450x) # <font color=pink>4. 系統功能 System Features </font> 此項在敘述各個系統功能是如何被觸發或是在什麼樣的環境下被執行,以及敘述整個功能的流程(包括會對資料做什麼樣的處理、預期會有什麼樣的使用情境、最後會讓使用者得到什麼回饋)。 此項說明中必須包含的項目有: 1. 簡短說明以及優先程度(有多重要) 2. 使用者情境:使用者會做出什麼事,而我們的功能會做什麼事來回應 3. 所需的資料或是動作,能使功能運作正常的必要資料 a. 所需的資料須由編號標明。例:REQ-1 b. 非必要資料也可以列上,但記得註明 ## 4.1 語音辨識 ### 4.1.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------- | | FNR-001 | 1 | 將使用者對音箱的語音指令轉換成對應語言之有意義文字,本需求不一定要連網使用 | ### 4.1.2 Stimulus/Response Sequences 使用者對音箱說「你好小絨」,聽到音箱回覆「怎麼了」後30秒內,便可對音箱說指令(中英皆可);若超過30秒,需再說一次「你好小絨」,才可繼續說指令。 ### 4.1.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-001 | v | 麥克風收音 | 需收到聲音才可轉成文字 | ## 4.2 語音回覆 ### 4.2.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------- | | FNR-002 | 1 | 將音箱處理後的結果透過音箱喇叭以語音方式播放 | ### 4.2.2 Stimulus/Response Sequences 當接受到查詢資料後回傳的文字時,會將文字轉成語音(中英皆可);或是在特殊情況下(e.g. 沒有連接 Wi-Fi)回答音箱狀況。 ### 4.2.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-002 | | 查詢的資料 | 收到文字才可轉成語音 | | REQ-003 | v | 網路 | 查詢之資料需使用網路才可轉成語音 | ## 4.3 抓取關鍵字 ### 4.3.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ----------------------------------------------- | | FNR-003 | 1 | 將 FNR-001 處理結果分詞 | | FNR-004 | 1 | 從 FNR-003 的處理結果中抓取音箱提供服務之關鍵詞,並將其結果用於呼叫對應服務 | | ### 4.3.2 Stimulus/Response Sequences 使用者說話並經由語音轉文字後,文字會輸入到這一部分進行語意辨識,進而得出使用者想要的動作,最後呼叫相關 API #### 範例輸入/輸出 1. 範例 1 輸入:「我想要打電話給班代」 輸出:```call_by_name([['bān'], ['dài']])``` 2. 範例 2 輸入:「我想要打電話給 0988000123」 輸出:```call_by_number('0988000123')``` ### 4.3.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | ---- | -------- | ---------------------------------------------- | | REQ-004 | v | 文字輸入 | 收到文字輸入以做後續處理分析使用者欲呼叫的功能 | ## 4.4 WIFI AP 連接導引 ### 4.4.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ------------------------------------------------------------- | | FNR-005 | 1 | 於音箱首次使用或重設後呼叫,使音箱做為 Wi-Fi AP 供手機連接設定 | ### 4.4.2 Stimulus/Response Sequences 使用者在初次使用、無法連線、重置音箱後始音箱做為 Wi-Fi AP 供使用者連接設定,連線後開啟設定網頁供使用者設定要連接的 Wi-Fi SSID 及密碼,完成後關閉音箱 Wi-Fi AP 功能並連接到使用者設定的 Wi-Fi ### 4.4.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-005 | v | Wi-Fi SSID, Password, 加密方式 | 需要 Wi-Fi SSID 及密碼才可連線到網路 | ## 4.5 行程通知 ### 4.5.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ------------------------------------------------------------ | | FNR-006 | 2 | 對音箱使用語音設定行程通知,並將其同步至手機 APP(或 Google) | | FNR-007 | 2 | 將手機 APP(或 Google)上設定好的行程透過音箱語音通知使用者 | | FNR-008 | 3 | 使 FNR-006、FNR-007 的行程通知在連線時同步至音箱本地資料庫,並使音箱可於離線照常播放行程通知 | ### 4.5.2 Stimulus/Response Sequences 使用者可以對音箱說 1. 「查看行事歷 X月Y號」 智慧音箱則將手機上的行程透過音箱語音通知使用者。 如:「查看行事歷 12月3號」 2. 「新增行事歷 X月Y號 A點(到B點) E活動內容」 智慧音箱則將新增該內容。如若沒有B,則預設活動維持一小時。 如:「新增行事歷 12月3號 12點 家庭聚餐」 3. 「新增行事歷 每週X A點(到B點) E活動內容」 智慧音箱則將新增該內容。如若沒有B,則預設活動維持一小時。 如:「新增行事歷 每週二 12點 家庭聚餐」 4. 「新增行事歷 每天 A點(到B點) E活動內容」 智慧音箱則將新增該內容。如若沒有B,則預設活動維持一小時。 如:「新增行事歷 每天 18點 健身」 5. 「新增提醒 X月Y號 A點(到B點) E活動內容」 智慧音箱則將新增該內容,且設提醒於活動前十分鐘。如若沒有B,則預設活動維持一小時。 如:「新增提醒 12月3號 12點 家庭聚餐」 ### 4.5.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-006 | v | Wi-Fi | 若使用 Google 行事歷則需使用網路才可存取 | ## 4.6 使用音箱連接手機打電話 ### 4.6.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------- | | FNR-009 | 2 | 對音箱以語音指令撥打指定電話號碼 | | FNR-010 | 2 | 對音箱以語音指令撥打手機聯絡人電話 | ### 4.6.2 Stimulus/Response Sequences 使用者可以對音箱說「打給 XXX」,此 XXX 為通訊錄中的聯絡人名稱。若通訊錄搜尋不到XXX,智慧音箱則會回應「查無此人」。亦可對音箱說「撥打 XXX」,此 XXX 為十位數電話號碼。撥通電話後則藉由智慧音箱播放聲音。 ### 4.6.3 Functional Requirements ## 4.7 使用音箱紀錄備忘錄 ### 4.7.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------- | | FNR-011 | 2 | 對音箱以語音指令在手機 APP 上記錄文字訊息 | ### 4.7.2 Stimulus/Response Sequences ### 4.7.3 Functional Requirements ## 4.8 使用音箱撥放音樂 ### 4.8.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------- | | FNR-012 | 2 | 將使用者手機上選擇之音樂以音箱喇叭播放 | ### 4.8.2 Stimulus/Response Sequences 使用者可以藉由手機藍牙連接音響播放手機的音樂,也可以對音箱說「播放 xxx 的 abc」此 xxx 為歌手名稱(中、英皆可)、abc 為歌名(同樣中、英皆可),播放串接 YouTube 的音樂(若為 YouTube Music Premium 會員播音樂時無廣告)。 當播放音樂的聲音太大或太小時,使用者可以對音箱說「太大聲/吵死了」或「太小聲/聽不到」來調整音量。 使用者可以在音樂播放時對音箱說「現在播的是甚麼」,音箱會暫時性停止並回覆現在正在播放的歌名以及歌手名稱,再繼續播放音樂。 使用者可以對音箱說「幫我一直播放」讓歌曲循環播放直至使用者說「停止這首」。 ### 4.8.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-006 | v | YouTube Data API v3 | 非透過藍芽播放音樂時需要串接 YouTube api抓取音樂資料並播放 | | REQ-007 | v | Wi-Fi | 從 YouTube 抓取之音樂需使用網路才可播放 | ## 4.9 使用音箱搜尋天氣 ### 4.9.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------- | | FNR-013 | 2 | 對音箱以語音指令查詢指定地區天氣 | | FNR-014 | 2 | 對音箱以語音指令查詢所在地區天氣 | ### 4.9.2 Stimulus/Response Sequences 使用者可以對音箱說「今天/明天( XX )天氣如何」、「今天/明天( XX )會下雨嗎」(xx為臺灣縣市或全球都市名稱),若地點在臺灣,音箱會回復該地區的天氣現象、降雨機率、最高最低氣溫,若地點在臺灣以外之區域,音箱會回復該地區的天氣現象、最高最低氣溫,若沒有指定區域會將地區設為使用者設定之位置,若使用者沒有設定位置,會透過 IP 尋找音箱所在區域(區域為臺灣縣市或全球都市名稱)。 ### 4.9.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-008 | v | 中央氣象局 API | 需要從氣象局抓取臺灣以及全球都市天氣預報資料 | | REQ-009 | v | Wi-Fi | 需要透過 IP 尋找音箱所在地區 | <!-- | REQ-009 | v | 世界氣象組織 世界天氣信息服務網 | 需要從世界氣象組織抓取世界天氣預報資料 | --> ## 4.10 使用音箱搜尋(問答功能) ### 4.10.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ---------------------------------- | | FNR-015 | 1 | 回覆使用者對音箱指令不含指定關鍵詞的網路搜尋結果 | ### 4.10.2 Stimulus/Response Sequences 使用者提出的問題如果無法由其他功能所回答,將統一由這個功能負責回答。 此功能主要負責常識問題的處理,透過線上查詢、網站搜索來取得回應。 資料來源大多是由 Wikipedia 或是 Google 最佳答案所提供,並且會提供資料來源。 如果無法取得任何資料(詢問不明確導致查詢不到資料/沒辦法由簡單的回答回應),將導致查詢失敗,回覆「沒有查到<query/>的相關資料」。 如果使用者希望將查詢結果傳至手機,可透過「4.11 將音箱問答搜尋結果傳至手機」來取得查詢資料。 ### 4.10.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ----------------------- | | REQ-010 | v | 問題字串 | 需有問題字串才得以搜尋答案 | | REQ-011 | v | 網路 | 需透過網路呼叫 API | ## 4.11 將音箱問答搜尋結果傳至手機 ### 4.11.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ---------------------------------- | | FNR-016 | 2 | 將 FNR-015 的搜尋結果傳至手機 APP | | FNR-018 | 3 | 將使用者說的話錄下來,並傳送至手機 | ### 4.11.2 Stimulus/Response Sequences 當使用者使用完「使用音箱搜尋(問答功能)」後,如果想將搜尋結果傳至手機,可說出傳送搜尋結果這個關鍵字,之後智慧音箱會將搜尋結果更新至網頁,使用者可前往網頁瀏覽搜尋結果 或是 用line將搜尋結果的網址傳給使用者 ### 4.11.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-012 | v | 搜尋結果 | 要有結果才能傳到手機 | ## 4.12 連結音箱做雙聲道 ### 4.12.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | ---------------------------------- | | FNR-017 | 3 | 將兩個音箱連結,做為雙聲道音箱使用,僅用於FNR-012 | ### 4.12.2 Stimulus/Response Sequences 使用者可以串連兩個音箱做為播放音樂的雙聲道喇叭,當使用者說出雙聲道、連接雙音箱等關鍵詞的時候,會提示使用者「雙聲道音箱功能能夠讓你的音樂以雙聲道的形式播出,請問您要繼續嗎?」 ### 4.12.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | ---- | ---------- | ---------------------------------- | | REQ-013 | v | 副音箱代稱 | 要能夠與伺服器請求副音箱的藍牙位址 | | | | | | ## 4.13 重置 ### 4.13.1 Stimulus/Response Sequences | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------------- | | HIR-001 | 2 | 恢復至原廠設定並清除所有使用者資料 <br> 用於問題排除以及出售或銷毀音箱之前置作業 | ### 4.13.2 Stimulus/Response Sequences <!-- 編輯日期:11/24 --> 長按位於音箱上的按鍵後,觸發重置;於此同時音箱會以燈光訊號/語音以顯示重置過程 - 長按 15 秒(待議)以觸發重置 - 重置期間,LED 燈發出 <font color = red> 紅色 </font>燈光(待議) - 長按 5 秒時(重置正式觸發前),播放語音「您即將為音箱進行重置,請繼續長按 10 秒以開始重置」(待議)以提醒重置即將進行 智慧音箱將恢復至原廠設定,包括: - 刪除非原廠設定之資料,包括: - 已和智慧音箱配對之裝置資訊 - 已開通之 Wi-Fi 連線(SSID/password) - 本地資料之使用者帳戶資訊 - 手機號碼 - 地理位置 - 已開通之音樂平台 - 將裝置設定恢復為原廠設定,包括: - 網路/藍芽 AP 狀態(開啟) - ~~音箱聲道設定(本機雙聲道)~~ - 執行系統及各系統功能初始化 ~~音箱將透過燈光訊號/語音給予重置完成之回饋~~ - ~~重置後,LED 燈發出<font color = green> 綠色</font> (待議)燈光~~ - ~~重置後,播放語音「重置已完成,請至 <平台名稱> 完成配對以及音箱設定」以提醒重置已完成~~ <font color=red>重置完成後,音箱將重新啟動</font> ### 4.13.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-014 | v | 按鈕 | 重置功能需要於本地裝置上進行一定操作才能觸發重置 | | REQ-015 | v | 資料庫 | 重置功能需要能夠編輯本地資料庫之權限 | ## 4.14 翻譯功能 ### 4.2.1 Description and Priority | 需求編號 | 優先權 | 用途描述 | | -------- | ------ | -------------------------------------- | | FNR-019 | 2 | 將接收到的語言轉換成指定語言並播放 | ### 4.2.2 Stimulus/Response Sequences 當使用者說完一句話停一秒後會自動轉換成指定語言並播放。 ### 4.2.3 Functional Requirements | 資料編號 | 必要 | 資料名稱 | 需要原因描述 | | -------- | --- | ---------- | ---------------------------------- | | REQ-016 | v | 語音 | 收到語音才可翻譯 | | REQ-017 | v | 網路 | 需使用網路才可翻譯 | # 5. 其他非功能性需求 Other Nonfunctional Requirements ## <font color=#ffd700> 5.1 效能需求 Performance Requirements </font> - 要使用本音箱,使用者需要擁有Google帳戶 - 部分功能需連網才能使用,且回應時間須小於10秒 - 使用者講話不要太快(每秒約3字~4字) - 同一個指令中間的停頓請不要超過1秒 - 不同指令之間需間隔2秒以上(待定) ## <font color=#ffd700> 5.2 使用者安全需求 Safety Requirements </font> - 請勿在潮溼的環境使用本產品 - 硬體裝置溫度不得過高(攝氏?度) ## <font color=#ffd700> 5.3 系統安全性需求 Security Requirements </font> - 不要連上非https的網站 ## <font color=#ffd700> 5.4 如何決定品質 Software Quality Attributes(Ex. reliablity, Maintainability, Usability) </font> <!-- - 穩定度: 系統可持續運作時間(例:可連續播放音樂3小時。) --> - 待機時間:在無指令輸入且穩定提供電源的情況下,系統可持續待機10小時(這部分應以我們的東西為主來訂定,如果最後沒有人訂,會先寫10小時) <!-- # 6. 其他需求 Other Requirements -->