0.0.1 • Published 2 years ago

@sl-theia/theia-voice v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

theia-voice

介绍

采集 web 端语音信息,返回 pcm 或 wav 视频流/文件 支持语音录音,未来预计支持实时推送语音

快速开始

  1. 安装 $ npm install @sl-theia/theia-voice

配置

入参配置

名称子参数类型默认值描述
configobject选填配置参数
sampleBitsnumber16采样位数
sampleRatenumber16000采样率
typestringwav文件类型

可调用方法

名称传入参数是否有返回值返回值类型描述
startN开始录音启动语音收集
endN结束录音关闭流收集
getWAVBlobY文件流返回wav格式文件流
getPCMBlobY文件流返回PCM格式文件流
downFile(文件名,文件格式)【wav/pcm】Y文件返回对应格式文件

如何使用

文件流录音方式

获取wav文件流录音

    import React from "react";
    import TheiaVoice from "@sl-theia/theia-voice";
    import ReactDOM from "react-dom";

    ReactDom.render(
        const [voiceText,setVoiceText] = useState<boolean>(false)
        const [voice, setVoice] = useState(null);
        useEffect(() => setVoice(TheiaVoice()), []);

        const voiceHanled = () => {
            !voiceText && a.start();
            <!-- 停止录音 并获取wav 文件流 -->
            voiceText && console.log(voice.getWAVBlob())
            setVoiceText(!voiceText);
        };
        
        <div onClick={voiceHanled}>{ !voiceText ? '开始录音' : '结束录音' }</div>,
        document.getElementById("root")
    );

获取二进制wav流

    import React from "react";
    import TheiaVoice from "@sl-theia/theia-voice";
    import ReactDOM from "react-dom";

    ReactDom.render(
        const [voiceText,setVoiceText] = useState<boolean>(false)
        const [voice, setVoice] = useState(null);
        useEffect(() => setVoice(TheiaVoice()), []);

        const voiceHanled = () => {
            !voiceText && a.start();
            <!-- 停止录音 并获取wav 流 -->
            voiceText && console.log(voice.getWAV())
            setVoiceText(!voiceText);
        };
        
        <div onClick={voiceHanled}>{ !voiceText ? '开始录音' : '结束录音' }</div>,
        document.getElementById("root")
    );

下载可播放wav录音文件

    import React from "react";
    import TheiaVoice from "@sl-theia/theia-voice";
    import ReactDOM from "react-dom";

    ReactDom.render(
        const [voiceText,setVoiceText] = useState<boolean>(false)
        const [voice, setVoice] = useState(null);
        useEffect(() => setVoice(TheiaVoice()), []);

        const voiceHanled = () => {
            !voiceText && a.start();
            <!-- 停止录音 并获取wav 流 -->
            voiceText && console.log(voice.download('测试语音文件','wav'))
            setVoiceText(!voiceText);
        };
        
        <div onClick={voiceHanled}>{ !voiceText ? '开始录音' : '结束录音' }</div>,
        document.getElementById("root")
    );