无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
樂鑫語音之文字轉語音(TTS)
深圳市啟明智顯科技有限公司
收藏本文     查看收藏

今天,我們來研究樂鑫的語音助手框架ESP-Skainet其中的中文語音合成的例程。

編譯原例程

  1. 首先需要clone例程

git clone --recursive https://github.com/espressif/esp-skainet.git

該工程內部自帶一個idf,是運行的最佳版本,不過你任然可以使用自己的idf。

  1. 進入例程中

cd  esp-skainet/examples/chinese_tts

  1. 理論上設置好了芯片型號為esp32s3后自動調用sdkconfig.defaults.esp32s3配置文件。 但是實際上好像沒有,所以這里加一個步驟確保能使用上默認配置。

cp sdkconfig.defaults.esp32s3 sdkconfig.defaults

  1. 設置芯片為esp32s3

idf.py set-target esp32s3

  1. 進入menuconfig

idf.py menuconfig

修改Audio Media Hal -> Audio Hardware board 改成ESP32-S3-Korvo-1

  1. 編譯燒錄程序

idf.py flash monitor -p /dev/ttyUSB0

運行原例程

運行后,可以看到如下打印

歡迎使用樂鑫語音合成
I (266) tts_parser: unicode:0x6b22 -> huan1
I (266) tts_parser: unicode:0x8fce -> ying2
I (276) tts_parser: unicode:0x4f7f -> shi3
I (276) tts_parser: unicode:0x7528 -> yong4
I (286) tts_parser: unicode:0x4e50 -> le4
I (286) tts_parser: unicode:0x946b -> xin1
I (296) tts_parser: unicode:0x8bed -> yu3
I (296) tts_parser: unicode:0x97f3 -> yin1
I (306) tts_parser: unicode:0x5408 -> he2
I (306) tts_parser: unicode:0x6210 -> cheng2

請輸入短語:

簡化原例程并分析

原例程大致分為兩個功能,第一個功能是閱讀“樂鑫語音合成”這句話,還有一個功能是朗讀串口輸入的文字。 第二部分經常會有bug,所以咱們簡化例程,重心分析第一個功能。簡化例程如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_tts.h"
#include "esp_tts_voice_xiaole.h"
#include "esp_board_init.h"

int app_main()
{

    ESP_ERROR_CHECK(esp_board_init(AUDIO_HAL_16K_SAMPLES, 1, 16));     // 初始化codec芯片,配置好采樣率、聲道數、采樣大小
    esp_tts_voice_t *voice = (esp_tts_voice_t *)&esp_tts_voice_xiaole; // 配置tts的聲音配置文件,來自libvoice_set_xiaole
    esp_tts_handle_t *tts_handle = esp_tts_create(voice);              // 創建tts對象
    char *prompt1 = "你好我是啟明云端";                                // 需要轉換的文字

    if (esp_tts_parse_chinese(tts_handle, prompt1)) // 文字解析成拼音
    {
        int len[1] = {0};
        do
        {
            short *pcm_data = esp_tts_stream_play(tts_handle, len, 3); // 拼音轉換成pcm音頻
            esp_audio_play(pcm_data, len[0] * 2, portMAX_DELAY);       //播放音頻
        } while (len[0] > 0);
    }
    esp_tts_stream_reset(tts_handle); // 重置 tts 流并清除 TTS 實例的所有緩存

    return 0;
}


這里音頻的tts來自靜態庫libvoice_set_xiaole中,目前也只有這一個音色可供使用,其余的tts相關函數則是屬于靜態庫libesp_tts_chinese。

總結

tts過度封裝化,一定程度上注定它的使用難度不高。但是依據已跑完的例程來看,音頻任然有發音聲音的問題,對于現在的一些成熟的tts方案,樂鑫的這個tts還有一定的差距,這個缺點可能導致無法應用于商業化項目中。項目中如果涉及到語音轉文字的內容,一方面可以通過云平臺的提供的API能力發送文字收取PCM音頻來解決。另一方面如果是有限的詞匯,也可以用語音拼接的方式,把相應的音頻存到文件系統中,通過映射播放指定的內容并拼湊成一段完整的語句。例如:“支付寶收款”、“元”、“個”、“十”、“百”、“千”、“萬”這幾段文字的語音就基本可以通過拼湊音頻達到支付寶語音播報功能。


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市啟明智顯科技有限公司
聯 系 人: 楊楊
電  話: 0755-22670222
傳  真:
地  址: 南山區國際創新谷6棟A座8樓
郵  編: 518000
主  頁:
 
 
該廠商相關技術文摘:
啟明智顯分享|如何通過matter協議實現燈亮滅控制
啟明云端邀您免費申領ESP32-C2樣品
啟明智顯分享|盤點86智能開關面板一季度行業頭號玩家們都發布了啥
啟明智顯解決方案|基于ESP32-S386智能開關面板\溫控器,低成本解決方案
啟明智顯分享| 2.4寸旋鈕串口屏在家用健身器材上的應用
啟明智顯分享| ESP32學習筆記參考--LED PWM 控制器與MCPWM的配置
啟明智顯低成本4.3寸串口屏解決案~兩輪電動力儀表DEMO
啟明智顯分享|4.3寸串口屏應用于兩輪車儀表及充電樁
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved