久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: 使用Trae AI功能為編輯器添加話筒,調用windows讀寫功能 [打印本頁]

作者: TaC    時間: 2025-4-27 21:58
標題: 使用Trae AI功能為編輯器添加話筒,調用windows讀寫功能
這幾天為了這個東東,真折騰。

原想在程序上添加語音轉文字的功能,網上查了好些資料,并使用Trae 提問,可回復的內容,真心看不懂,找不到所在文件的路徑。
這是通過AI分析DZ程序的回復,有點看不明白,先留個底。
要在 Discuz 程序的編輯器里增加一個語音轉文字的功能,可按以下步驟實現:

### 1. 選擇語音轉文字服務
可以選擇使用第三方語音轉文字服務,例如百度語音識別、阿里云語音識別或者騰訊云語音識別。這里以百度語音識別為例進行說明。

### 2. 申請 API Key 和 Secret Key
訪問百度語音開放平臺,創建一個新應用,獲取 API Key 和 Secret Key 。

### 3. 引入必要的 JavaScript 庫
在編輯器頁面引入百度語音識別的 JavaScript SDK。

### 4. 修改編輯器頁面
找到 Discuz 編輯器相關的模板文件,從工具調用歷史來看,可能涉及到編輯器相關的文件有 `post_editor_attribute.htm` 和 `lang_editor.php` 。不過具體的編輯器核心文件可能未完全展示,下面以假設的方式添加語音轉文字按鈕和功能。
修改語言文件
在 `lang_editor.php` 中添加新的語言項:

```php
// ... existing code ...
$lang = array(
    // ... existing code ...
    'editor_voice_to_text' => '語音轉文字',
    // ... existing code ...
);
// ... existing code ...
```
修改模板文件
在編輯器模板文件中添加語音轉文字按鈕,并綁定相應的 JavaScript 事件。假設在 `post_editor_attribute.htm` 中添加:

```html
// ... existing code ...
<ul class="swiper-wrapper" id="post_extra_tb">
    <!-- ... existing code ... -->
    <li class="swiper-slide" id="voice_to_text_b"><a>{lang editor_voice_to_text}</a></li>
    <!-- ... existing code ... -->
</ul>
// ... existing code ...
```
```

### 5. 實現 JavaScript 邏輯
在頁面中添加百度語音識別的 JavaScript 代碼:

```html
// ... existing code ...
<script type="text/javascript">
    // 百度語音識別配置
    var client = new BaiduSpeech();
    client.setAppId('your_app_id');
    client.setApiKey('your_api_key', 'your_secret_key');

    function startVoiceRecognition() {
        client.start({
            lang: 'zh', // 識別語言
            cuid: 'your_cuid',
            pdt: 1536 // 普通話輸入法模型
        });

        client.onmessage = function (res) {
            if (res.result) {
                var text = res.result[0];
                // 將識別結果插入到編輯器中
                var editor = document.getElementById('your_editor_id');
                if (editor) {
                    editor.value += text;
                }
            }
        };
    }
</script>
// ... existing code ...
```
```

### 注意事項
- 請將 your_app_id 、 your_api_key 、 your_secret_key 和 your_cuid 替換為你自己的實際信息。
- your_editor_id 需要替換為 Discuz 編輯器的實際 ID。
- 由于工具調用歷史可能未包含所有相關文件,若上述文件不是實際的編輯器文件,請提供更多文件信息以便進一步調整。
然后根據提示,找到百度語音轉文字的啥東西,一看,價格不菲呀。也就是網上瘋轉的所謂AI系列東西。
這哪是添加功能,這不是要人命嘛。按小時收費。
后來一想,手機上不是可以嘛,根據輸入法,也找到了官方網址,可就是沒有電腦端的應用。谷歌好象有,可鏈接不上,這把人搞得一暈一暈的。

回到原址,再向Trae提問:
你的這個回復先放放,我也不明白編輯器ID。現在,不去研究這個ID。那我們換個思路,在編輯器里添加話筒圖標,點擊后,能喚起電腦自帶的聽寫功能。比如win11,打開記事本,或文字編輯器,按windows圖標+H,就可以喚起電腦系統自帶的聽寫功能。那么,怎么更改網站代碼,或者怎么實現這個功能。
得到回復【非常漂亮,并測試成功】:
要在網站編輯器里添加話筒圖標,點擊后喚起 Windows 11 系統自帶的聽寫功能(按 Windows 鍵 + H ),可以借助 JavaScript 模擬按鍵事件。不過,瀏覽器出于安全考慮,通常不允許直接模擬 Windows 鍵 + H 這樣的系統級組合鍵。但可以通過提示用戶手動觸發,或者引導用戶了解該功能。

以下是實現步驟和示例代碼:

### 1. 添加話筒圖標
在編輯器相關的模板文件中添加一個話筒圖標按鈕,假設該文件路徑為 d:\wamp64\www\tianya\template\default\touch\forum\post_editor_attribute.htm 。

```html
// ... existing code ...
<ul class="swiper-wrapper" id="post_extra_tb">
    <!-- ... existing code ... -->
    <li class="swiper-slide" id="voice_dictation_btn">
        <a href="javascript:void(0);">
            <img src="path/to/microphone-icon.png" alt="語音聽寫">
        </a>
    </li>
    <!-- ... existing code ... -->
</ul>
// ... existing code ...
```
```

請將 path/to/microphone-icon.png 替換為實際的話筒圖標路徑。

### 2. 實現提示功能
添加 JavaScript 代碼,當用戶點擊話筒圖標時,彈出提示框告知用戶如何觸發系統聽寫功能。

```html
// ... existing code ...
<script>
function showVoiceDictationTip() {
    alert('請按下 Windows 鍵 + H 來啟動系統自帶的語音聽寫功能。');
}
</script>
// ... existing code ...
```
```

### 總結
由于瀏覽器安全限制,無法直接通過代碼觸發 Windows 鍵 + H 組合鍵。上述方案通過添加圖標和提示信息,引導用戶手動觸發系統聽寫功能。你可以根據實際需求調整圖標樣式和提示信息內容。
回復是到位,可哪個是編輯器文件呢,在官方論壇上查了半天,也沒看到是哪個文件。
沒辦法,死辦法一個一個的查。
本人使用的模板是直接在默認模板上修改的,所以路徑上供大家參考,forum/post_editor_body.htm。
約107行,把修改過的代碼完整復制過去,并測試編輯器的顯示情況。
  1. <!-- 添加話筒,讀寫 -->
  2.                         <ul class="swiper-wrapper" id="post_extra_tb" onselectstart="return false">
  3.              <li class="swiper-slide" id="voice_dictation_btn">
  4.                 <a href="javascript:void(0);" onclick="showVoiceDictationTip()">
  5.                   <img src="images/ty_ht.png" alt="語音聽寫">
  6.                 </a>
  7.              </li>
  8.             </ul>
  9.             <script>
  10.                                 function showVoiceDictationTip() { alert('請按下 Windows 鍵 + H 來啟動系統自帶的語音聽寫功能。'); }
  11.             </script>
復制代碼


至此,電腦端windows系統調用語音功能到位,下面就是細節上的修改了。
但是蘋果電腦怎么弄,希望有蘋果電腦的,弄好后,分享一下。

作者: TaC    時間: 2025-4-27 22:07
哈,接著上樓,再向Trae提問。
經過測試,上面方法可用,但是,如果是蘋果電腦,怎么優化上面的代碼
靠,回復來了:
在蘋果電腦上,喚起系統自帶的語音聽寫功能可以通過按下 Fn + Control + 空格 組合鍵。我們可以修改之前的代碼,當用戶使用蘋果設備時,提示相應的操作方法。

### 修改模板文件
在 d:\wamp64\www\tianya\template\default\touch\forum\post_editor_attribute.htm 文件中保持圖標按鈕不變,但修改 JavaScript 代碼來根據用戶設備類型給出不同提示。

```html
// ... existing code ...
<script>
function showVoiceDictationTip() {
    const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
    if (isMac) {
        alert('請按下 Fn + Control + 空格 來啟動系統自帶的語音聽寫功能。');
    } else {
        alert('請按下 Windows 鍵 + H 來啟動系統自帶的語音聽寫功能。');
    }
}
</script>
// ... existing code ...
```
```

上述代碼通過 navigator.platform 來判斷用戶是否使用蘋果設備,如果是則提示 Fn + Control + 空格 組合鍵,否則提示 Windows 鍵 + H 組合鍵。
我的媽呀,可我沒有蘋果啊。怎么測試呢。

作者: TaC    時間: 2025-4-27 22:29
遺憾來了,打開抖音短視頻,讀寫正常,可沒有標點符號
作者: TaC    時間: 2025-4-27 22:59
糾正一下,行數不對,測試使用的 是有背景底色的,更換png格式后,顯示有其它圖標。
位置錯了?大佬提示一下。
作者: TaC    時間: 2025-4-30 23:05
TaC 發表于 2025-4-27 22:29
遺憾來了,打開抖音短視頻,讀寫正常,可沒有標點符號

今天測試,標點符號正常,有點怪
作者: TaC    時間: 2025-4-30 23:10
目前發現問題:
1,代碼放到標題一欄,標題及主題分類,無法輸入。
2,代碼放到編輯一欄,出來其它編輯欄的圖標背景。
希望官方解答,并能充分利用這個功能。因為對于網站,或是會員,它免費。




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0