chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【離線語音】安信可VC-01/02二次開發(fā)篇:自定義音頻播放控制

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2025-09-25 16:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


安信可離線語音VC-01/02:硬件規(guī)格書、開發(fā)資料、燒錄工具、應(yīng)用開發(fā)

安信可離線語音模組 VC-01、VC-02 系列教程 【基礎(chǔ)認知篇】
安信可離線語音模組 VC-01、VC-02 系列教程 【快速上手篇】
安信可離線語音模組 VC-01、VC-02 系列教程 【中級入門篇】
安信可離線語音模組 VC-01、VC-02 系列教程 【高級進階篇】
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】虛擬開發(fā)環(huán)境搭建和分享
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】事件和GPIO控制
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】PWM輸出
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】串口輸出
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】SDK音頻替換失敗記錄過程
安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】自定義音頻播放控制

安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】自定義音頻播放控制

簡介


在本篇文章中將介紹如何使用SDK來進行自定義音頻播放的功能。

在上一篇文章安信可離線語音模組 VC-01、VC-02 系列教程 【二次開發(fā)篇】自定義音頻替換失敗過程中,簡要概述了res_build_tool.py 文件, 其主要的作用就是將音頻文件進行轉(zhuǎn)換,從而使編譯固件的時候能夠?qū)⒁纛l文件編譯到BIN中,然后在各項事件觸發(fā)的時候?qū)崿F(xiàn)播放。

雖然在上一篇文章中我們失敗的嘗試了替換對應(yīng)的語音文件,但是還有另一種方法來實現(xiàn)音頻數(shù)據(jù)的播放。 即使用user_player.h進行控制。

自定義音頻播放


1、根據(jù)蜂鳥M的離線開發(fā)指導(dǎo)手冊得知,其user_player.h文件可以被用戶使用并且控制音頻的播放。

其文件位于/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/user/inc/user_player.h

#ifndef USER_INC_USER_PLAYER_H_
#define USER_INC_USER_PLAYER_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "unione.h"
#include "user_event.h"
/** @addtogroup uni_player_inf
@{*/
/**
*@brief 播放文件
*@param type 播放類型
*@param file 播放文件名
*@retval 0  操作成功
*@retval -1 操作失敗
*/
int user_player_play(AUDIO_PLAY_TYPE type, const char *file);
/**
*@brief 播放列表序號音頻
*@param file_list 文件列表 [1, 2, 3]
*@param num 列表序號
*@retval 0  操作成功
*@retval -1 操作失敗
*/
int user_player_reply_list_num(const char *file_list, int num);
/**
*@brief 隨機播放列表音頻
*@param file_list 文件列表 [1, 2, 3]
*@retval 0  操作成功
*@retval -1 操作失敗
*/
int user_player_reply_list_random(const char *file_list);
/**
*@brief 順序播放列表中所有音頻
*@param file_list 文件列表 [1, 2, 3]
*@retval 0  操作成功
*@retval -1 操作失敗
*/
int user_player_reply_list_in_order(const char *file_list);
/**
*@brief 停止播放
*@param type 播放類型
*@retval 0  操作成功
*@retval -1 操作失敗
*/
int user_player_stop(AUDIO_PLAY_TYPE type);
/**
*@brief 設(shè)置最小音量
*/
int user_player_set_volume_min(void);
/**
*@brief 設(shè)置最大音量
*/
int user_player_set_volume_max(void);
/**
*@brief 設(shè)置中等音量
*/
int user_player_set_volume_mid(void);
/**
*@brief 增加音量
*/
int user_player_set_volume_up(void);
/**
*@brief 減小音量
*/
int user_player_set_volume_down(void);
/**
*@brief 設(shè)置喇叭靜音
*/
int user_player_speaker_mute(void);
/**
*@brief 取消設(shè)置喇叭靜音
*/
int user_player_speaker_unmute(void);
/**
*@brief 系統(tǒng)進入無回復(fù)播報模式
*/
int user_player_shutup_mode(void);
/**
*@brief 系統(tǒng)退出無回復(fù)播報模式
*/
int user_player_shutup_exit(void);
/** @}*/
#ifdef __cplusplus
}
#endif
#endif

上述為所有用戶音頻播放函數(shù)定義。功能相當豐富,包括了音頻的播放和音量的調(diào)節(jié),而正好對應(yīng)的example中也有音頻播放的示例。


2、修改

/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/user/inc/user_config.h 中對USER_RUN_DEMO_SELECT 的宏, 指向USER_DEMO_PLAYER

wKgZPGjU_oyAX64AAAElHzsvhBY586.jpg



3、查找這個宏,檢查SDK是否支持。

wKgZO2jU_oyACOZHAADzCJBHJKg312.jpg


可以從上述user_main 的入口宏判斷得知, USER_DEMO_I2C_TIMEUSER_DEMO_SPI_LCD 是不被支持的,而hb_player則沒問題。

4、使用TTS maker生成一段音頻數(shù)據(jù)。并且命名為109放到tones目錄下。

wKgZPGjU_o2AZv2vAACntXsbOfg589.jpg


5、修改原本代碼中播放的 9.MP3 ,拷貝到tones目錄下的109。

#include "user_player.h"
#define TAG "player_demo"
static void _player_test_process(void *args) {
  while (1) {
    uni_sleep(10);
    user_player_set_volume_min();
    LOGT(TAG, "set min vol");
    /*播放9.mp3文件*/
    user_player_play(AUDIO_PLAY_REPLY, "109"); //9.mp3
    uni_sleep(10);
    user_player_set_volume_mid();
    LOGT(TAG, "set mid vol");
    /*播放列表中的101.MP3文件*/
    user_player_reply_list_num("[9,101,102]", 1);
    uni_sleep(10);
    user_player_set_volume_max();
    LOGT(TAG, "set max vol");
    /*隨機播放列表中的某個文件*/
    user_player_reply_list_random("[9,101,102]");
    uni_sleep(10);
    /*順序播放列表中的所有文件*/
    user_player_reply_list_in_order("[9,101,102]");
    uni_sleep(10);
  }
}
static Result _create_player_test_thread(void) {
  thread_param param;
  uni_pthread_t pid;
  uni_memset(?m, 0, sizeof(param));
  param.stack_size = STACK_SMALL_SIZE;
  param.priority = OS_PRIORITY_LOW;
  uni_strncpy(param.task_name, "player_test", sizeof(param.task_name) - 1);
  if (0 != uni_pthread_create(&pid, ?m,
                              _player_test_process, NULL)) {
    LOGE(TAG, "create thread failed");
    return E_FAILED;
  }
  uni_pthread_detach(pid);
  return E_OK;
}
int hb_player(void) {
  _create_player_test_thread();
  return 0;
}

這段代碼創(chuàng)建了一個獨立線程,在線程中循環(huán)執(zhí)行音頻播放測試。它先依次設(shè)置播放器的音量為最小、中等和最大,然后分別調(diào)用接口播放單個指定文件、播放列表中的特定文件、隨機播放播放列表中的文件,以及順序播放整個播放列表。

每次操作后線程都會短暫休眠,保證播放流程有序進行。該代碼用于驗證播放器在不同音量和播放模式下的功能是否正常。

6、燒錄和測試

wKgZPGjU_o2Afj3TAAC7bOVRNiw544.jpg

實驗現(xiàn)象


系統(tǒng)上電后等待初始化后 “你好我是小美”將優(yōu)先被播放, 之后進行音量調(diào)整并且循環(huán)往復(fù)。 這里會存在一個問題即,SDK中所有的音頻的采樣率都是16000Hz。

這個采樣率已經(jīng)在
/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/src/sdk/player/src/uni_media_player.c中進行了定義。

wKgZO2jU_o6ATDdZAADVel7F8rI115.jpg


和/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/src/sdk/audio/audio_player/src/uni_audio_player.c 中被定義。

chaijie_default.png


所以自定義的音頻文件最好和這個定義的采樣率保持一致,否則會出現(xiàn)采樣率不匹配出現(xiàn)奇怪的聲音。

wKgZPGjU_o-AZsDBAAE_U-1Hibw017.jpg


如上圖所示,創(chuàng)建的音頻文件的采樣率為24000, 所以下載到VC-02中, 音頻播放的時候會很奇怪(屬于正?,F(xiàn)象)。

附件

uni_app_release_update.zip

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 音頻播放
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    7897
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1091

    瀏覽量

    50631
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    208

    瀏覽量

    4773
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    直播回顧 | 掌握車載通信核心技術(shù),虹科CAN總線實戰(zhàn):PCAN二次開發(fā)技術(shù)直播助您輕松拿捏總線開發(fā)“創(chuàng)新引擎

    ?1CAN總線二次開發(fā):構(gòu)建智能汽車“神經(jīng)網(wǎng)絡(luò)”的核心能力在“軟件定義汽車”的時代,整車電子電氣架構(gòu)正從分布走向集中,車載網(wǎng)絡(luò)的數(shù)據(jù)量和復(fù)雜度呈指數(shù)級增長?;赑CAN等專業(yè)工具的二次開發(fā)能力
    的頭像 發(fā)表于 10-09 17:33 ?112次閱讀
    直播回顧 | 掌握車載通信核心技術(shù),虹科CAN總線實戰(zhàn):PCAN<b class='flag-5'>二次開發(fā)</b>技術(shù)直播助您輕松拿捏總線<b class='flag-5'>開發(fā)</b>“創(chuàng)新引擎

    如何使用SDK進行自定義音頻播放功能

    在上一文章離線語音模組 VC-01、
    的頭像 發(fā)表于 09-25 15:52 ?2797次閱讀
    如何使用SDK進行<b class='flag-5'>自定義</b><b class='flag-5'>音頻</b><b class='flag-5'>播放</b>功能

    SDK音頻替換失敗記錄過程

    離線語音模組 VC-01、VC-02 系列教
    的頭像 發(fā)表于 09-25 15:50 ?1699次閱讀
    SDK<b class='flag-5'>音頻</b>替換失敗記錄過程

    VC-01/02二次開發(fā): PWM輸出

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線
    的頭像 發(fā)表于 08-27 16:06 ?481次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b><b class='flag-5'>二次開發(fā)</b><b class='flag-5'>篇</b>: PWM輸出

    輕松配置小智AI語音開發(fā)板,IOT小程序功能更新

    版使用教程: AI語音開發(fā)板全面升級商用版?。ǜ浇坛蹋?為了讓開發(fā)體驗更加流暢,
    的頭像 發(fā)表于 08-19 17:46 ?700次閱讀
    輕松配置小智AI<b class='flag-5'>語音</b><b class='flag-5'>開發(fā)</b>板,<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>IOT小程序功能更新

    VC-01/02二次開發(fā): 事件和GPIO控制

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線
    的頭像 發(fā)表于 08-19 14:02 ?621次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b><b class='flag-5'>二次開發(fā)</b><b class='flag-5'>篇</b>: 事件和GPIO<b class='flag-5'>控制</b>

    離線語音VC-01/02教程:中級入門

    系列教程 【二次開發(fā)】虛擬開發(fā)環(huán)境搭建和分享 離線
    的頭像 發(fā)表于 07-31 09:33 ?515次閱讀
    【<b class='flag-5'>離線</b><b class='flag-5'>語音</b>】<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>VC-01</b>/<b class='flag-5'>02</b>教程:中級入門<b class='flag-5'>篇</b>

    AI語音開發(fā)板AiPi-PalChatV1 + MCP,通過HomeAssistant自動化控制設(shè)備

    以下作品由社區(qū)用戶 WT_0213制作 自從擁有了AiPi-PalChatV1 Ai
    的頭像 發(fā)表于 06-25 14:04 ?575次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>AI<b class='flag-5'>語音</b><b class='flag-5'>開發(fā)</b>板AiPi-PalChatV1 + MCP,通過HomeAssistant自動化<b class='flag-5'>控制</b>設(shè)備

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認鍵盤的解決方案,實現(xiàn)鍵盤個性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對按鍵布局進行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?1222次閱讀

    云MES系統(tǒng)源碼,支持 SaaS 多租戶,支持二次開發(fā)

    萬界星空科技MES生產(chǎn)制造執(zhí)行系統(tǒng)源碼,有演示,多個項目應(yīng)用案例,成熟穩(wěn)定。支持二次開發(fā),商業(yè)授權(quán)后商用。
    的頭像 發(fā)表于 05-07 11:14 ?394次閱讀
    云MES系統(tǒng)源碼,支持 SaaS 多租戶,支持<b class='flag-5'>二次開發(fā)</b>

    語音開放平臺的使用——VC系列SDK的獲取

    離線語音開放平臺提供了開發(fā)量接近于零的SDK生成功能,對于功能簡單的
    的頭像 發(fā)表于 04-12 11:24 ?579次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>語音</b>開放平臺的使用——<b class='flag-5'>VC</b>系列SDK的獲取

    離線語音開發(fā)板:二次開發(fā)語音控制LED燈

    前言 經(jīng)過前面的學(xué)習(xí),相信大家已經(jīng)了解離線語音開發(fā)環(huán)境的搭建流程。甚至已經(jīng)編譯過固件,并進行了測試。本文將從產(chǎn)品創(chuàng)建開始講起,一步一步實現(xiàn)語音控制
    的頭像 發(fā)表于 03-19 10:53 ?602次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>離線</b><b class='flag-5'>語音</b><b class='flag-5'>開發(fā)</b>板:<b class='flag-5'>二次開發(fā)</b><b class='flag-5'>語音</b><b class='flag-5'>控制</b>LED燈

    智能語音識別照明解決方案,平臺自定義,中英切換

    智能語音識別照明方案引入NRK3502芯片,支持平臺自定義,離線控制,中英雙語切換。NRK3502具備高性能和靈活自定義能力,
    的頭像 發(fā)表于 01-10 13:23 ?658次閱讀
    智能<b class='flag-5'>語音</b>識別照明解決方案,平臺<b class='flag-5'>自定義</b>,中英切換

    深居淺出AutoCAD二次開發(fā)

    深居淺出AutoCAD二次開發(fā),net版
    發(fā)表于 01-06 14:12 ?10次下載

    SOLIDWORKS二次開發(fā)應(yīng)用范圍與實例

    SOLIDWORKS二次開發(fā)為企業(yè)和設(shè)計師們提供了廣闊的定制化空間,能夠更好地滿足復(fù)雜多變的設(shè)計需求,幫助工程師和設(shè)計師提高工作效率,實現(xiàn)更復(fù)雜的自動化任務(wù)。如您有SOLIDWORKS二次開發(fā)需求,歡迎咨詢Solidkits
    的頭像 發(fā)表于 12-13 16:33 ?1323次閱讀