語音轉寫可實時,直播也能同步字幕

HMSCore發表於2022-05-11

資訊爆發時代,有效率有質量地整理視訊、音訊、文字等資訊變得尤為重要。會議、講座、採訪、客服電話等場景均需要形成完整的文字記錄材料,音視訊檔案也要配有字幕。語音轉文字的智慧化,讓資訊錄入即時高效。

在直播類、會議類、筆記類的應用中都具備實時語音轉寫功能。例如,在音視訊會議中,可以將發言內容視覺化,即時生成會議紀要,方便記錄、修改,提高會議效率;在直播類應用中,可以識別主播所說的話,達到“邊說邊出文字”的效果,提升使用者觀看體驗,營造更好的直播氛圍;在筆記類應用中,支援重點內容隨講隨記,捕捉你的每一個想法。

HMS Core機器學習服務提供實時語音轉寫能力,讓開發者在應用中構建長語音轉文字功能。可以將會議記錄、筆記、總結、音視訊直播內容等音訊流實時轉換為文字流資料結果,實現即時對語音內容的識別,展現對應文字內容。

可支援連續5小時的實時長語音輸入轉換為文字,不僅能夠輸出標點符號,同時可以生成帶有時間戳的文字資訊。不管你是中文普通話、英語、法語,甚至中英文混說都能夠很好識別,滿足不同的場景需要。

實時語音轉寫部署情況

效果展示

在效果展示裡我們可以看到通過實時語音轉寫功能轉成的文字在結束後可以即刻進行編輯、複製、修改等,十分方便。

注意事項

• 目前法語實時語音轉寫服務僅支援華為手機和榮耀手機使用,中英文實時語音轉寫服務支援所有品牌手機。

• 實時語音轉寫服務通過訪問雲側介面完成識別服務,調測和使用時需保證裝置可正常訪問網際網路。

開發步驟

1 .在AppGallery Connect中配置相關資訊。

在開發應用前,需要在AppGallery Connect中配置相關資訊。

具體開發準備可以參考文件

2 .配置HMS Core SDK的Maven倉地址。

2.1 開啟Android Studio專案級“build.gradle”檔案。

2.2 新增HUAWEI agcp外掛以及Maven程式碼庫。

在allprojects->repositories裡面配置HMS Core SDK的Maven倉地址。

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
 }
在buildscript->repositories裡面配置HMS Core SDK的Maven倉地址。
buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
 }

在buildscript ->dependencies裡面增加配置。

buildscript{
    dependencies {
         classpath 'com.huawei.agconnect:agcp:1.3.1.300'
    }
 }

3 .建立語音識別器,並設定配置。

MLSpeechRealTimeTranscriptionConfig config = new MLSpeechRealTimeTranscriptionConfig.Factory()
    // 設定語言,目前支援中文、英語、法語轉寫。
    .setLanguage(MLSpeechRealTimeTranscriptionConstants.LAN_ZH_CN)
    // 設定標點。
    .enablePunctuation(true)
    // 設定句子的偏移。
    .enableSentenceTimeOffset(true)
    // 設定詞的偏移。
    .enableWordTimeOffset(true)
    .create();
MLSpeechRealTimeTranscription mSpeechRecognizer = MLSpeechRealTimeTranscription.getInstance();

4. 建立語音識別結果監聽器回撥。

// 回撥實現MLSpeechRealTimeTranscriptionListener介面,實現介面中的方法。
Protected class SpeechRecognitionListener implements MLSpeechRealTimeTranscriptionListener{
    @Override
    public void onStartListening() {
        // 錄音器開始接收聲音。
    }
 
    @Override
    public void onStartingOfSpeech() {
        // 使用者開始講話,即語音識別器檢測到使用者開始講話。
    }
 
    @Override
    public void onVoiceDataReceived(byte[] data, float energy, Bundle bundle) {
        // 返回給使用者原始的PCM音訊流和音訊能量,該介面並非執行在主執行緒中,返回結果需要在子執行緒中處理。
   }
 
    @Override
    public void onRecognizingResults(Bundle partialResults) {
        // 從MLSpeechRealTimeTranscription接收到持續語音識別的文字。
    }
 
    @Override
    public void onError(int error, String errorMessage) {
        // 識別發生錯誤後呼叫該介面。
    }
 
    @Override
    public void onState(int state,Bundle params) {
        // 通知應用狀態發生改變。
    }
}

5. 繫結語音識別器。

mSpeechRecognizer.setRealTimeTranscriptionListener(new SpeechRecognitionListener());

6 .呼叫startRecognizing啟動語音識別。

mSpeechRecognizer.startRecognizing(config);

7. 識別完成後,結束識別並釋放資源。

if (mSpeechRecognizer!= null) {
    mSpeechRecognizer.destroy();
}

瞭解更多詳情>>
訪問機器學習服務聯盟官網
獲取機器學習服務開發指導文件
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間瞭解 HMS Core 最新技術資訊~

相關文章