示例#1
0
def asrc_short_example():
    ak = sys_ak  # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    sk = sys_sk  # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    region = sys_region  # region,如cn-north-4
    project_id = sys_project_id  # 同region一一对应,参考https://support.huaweicloud.com/api-sis/sis_03_0008.html
    path = input_path  # 文件位置, 需要具体到文件,如D:/test.wav
    # 音频格式,默认不改动
    path_audio_format = 'wav'  # 音频格式,如wav等,详见api文档
    path_property = 'chinese_16k_common'  # language_sampleRate_domain, 如chinese_8k_common,详见api文档

    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(5)  # 设置连接超时
    config.set_read_timeout(10)  # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    asr_client = AsrCustomizationClient(ak, sk, region, project_id, sis_config=config)

    # step2 构造请求
    data = io_utils.encode_file(path)
    asr_request = AsrCustomShortRequest(path_audio_format, path_property, data)
    # 所有参数均可不设置,使用默认值
    # 设置是否添加标点,yes or no,默认no
    asr_request.set_add_punc('yes')
    # 设置是否添加热词表id,没有则不填
    # asr_request.set_vocabulary_id(None)

    # step3 发送请求,返回结果,返回结果为json格式
    result = asr_client.get_short_response(asr_request)
    # print(json.dumps(result))
    return(json.dumps(result, indent=2, ensure_ascii=False))
示例#2
0
def hot_word_example(name):
    """
        1. 热词使用包含创建、更新、查询、删除等,一个用户可以创建多个热词表,一个热词表可以包含多个热词。一个vocabulary_id对应一个热词表。
        2. 目前支持一个用户最多创建10个热词表,一个热词表最多包含1024个热词。
        3. 热词可在一句话识别、录音文件识别、实时语音转写使用。例如将地名和人名作为热词,则语音可以准确识别出人名和地名。
    :return: 无
    """
    # 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(10)  # 设置连接超时
    config.set_read_timeout(10)  # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    hot_word_client = HotWordClient(ak,
                                    sk,
                                    region,
                                    project_id,
                                    sis_config=config)

    # option 1 创建热词表
    word_list.append('test')
    create_request = HotWordRequest(name, word_list)
    # 可选,热词语言,目前仅支持中文 chinese_mandarin。
    create_request.set_language('chinese_mandarin')
    # 可选,热词表描述信息
    create_request.set_description('test')
    create_result = hot_word_client.create(create_request)
    # 返回结果为json格式
    print('成功创建热词表')
    print(json.dumps(create_result, indent=2, ensure_ascii=False))
    """
    # option 2 根据热词表id 更新热词表。新的热词表会替换旧的热词表。使用前需确保热词表id已存在。
    word_list.append('进入系统')
    update_request = HotWordRequest('test2', word_list)
    update_result = hot_word_client.update(update_request, vocabulary_id)
    # 返回结果为json格式
    print('成功更新热词表', vocabulary_id)
    print(json.dumps(update_result, indent=2, ensure_ascii=False))
    """
    # option 3 查看热词表列表
    query_list_result = hot_word_client.query_list()
    print(json.dumps(query_list_result, indent=2, ensure_ascii=False))

    # option 4 根据热词表id查询具体热词表信息,使用前需确保热词表id已存在。
    query_result = hot_word_client.query_by_vocabulary_id(vocabulary_id)
    print(json.dumps(query_result, indent=2, ensure_ascii=False))

    # option 5 根据热词表id删除热词表,使用前需确保热词表id已存在。
    delete_result = hot_word_client.delete(vocabulary_id)
    if delete_result is None:
        print('成功删除热词表', vocabulary_id)
    else:
        print(json.dumps(delete_result, indent=2, ensure_ascii=False))
示例#3
0
def rasr_detect(path):
    """ 实时语音转写demo """
    # step1 初始化RasrClient, 暂不支持使用代理
    my_callback = MyCallback()
    config = SisConfig()
    # 设置连接超时,默认是10
    config.set_connect_timeout(10)
    # 设置读取超时, 默认是10
    config.set_read_timeout(10)
    # 设置connect lost超时,一般在普通并发下,不需要设置此值。默认是4
    config.set_connect_lost_timeout(4)
    # websocket暂时不支持使用代理
    rasr_client = RasrClient(ak=ak,
                             sk=sk,
                             use_aksk=True,
                             region=region,
                             project_id=project_id,
                             callback=my_callback,
                             config=config)

    # step2 构造请求
    request = RasrRequest(audio_format, property)
    # 所有参数均可不设置,使用默认值
    request.set_add_punc('yes')  # 设置是否添加标点, yes or no, 默认no
    request.set_vad_head(10000)  # 设置有效头部, [0, 60000], 默认10000
    request.set_vad_tail(500)  # 设置有效尾部,[0, 3000], 默认500
    request.set_max_seconds(30)  # 设置一句话最大长度,[0, 60], 默认30
    request.set_interim_results('no')  # 设置是否返回中间结果,yes or no,默认no
    request.set_digit_norm('no')  # 设置是否将语音中数字转写为阿拉伯数字,yes or no,默认yes
    request.set_vocabulary_id(
        '039061ac-d8f7-44e1-b2f5-6cb1c4b82c6a')  # 设置热词表id,若不存在则不填写,否则会报错

    # step3 选择连接模式
    rasr_client.short_stream_connect(request)  # 流式一句话模式
    # rasr_client.sentence_stream_connect(request)    # 实时语音转写单句模式
    # rasr_client.continue_stream_connect(request)  # 实时语音转写连续模式

    # step4 发送音频
    rasr_client.send_start()
    # 连续模式下,可多次发送音频,发送格式为byte数组
    with open(path, 'rb') as f:
        data = f.read()
        rasr_client.send_audio(data)  # 可选byte_len和sleep_time参数,建议使用默认值
    rasr_client.send_end()

    # step5 关闭客户端,使用完毕后一定要关闭,否则服务端20s内没收到数据会报错并主动断开。
    rasr_client.close()

    response_text = re.findall(r'"text": "(.*?)。', str(my_callback.response))
    print(response_text)
    return response_text
示例#4
0
def tts_example(text):
    """ 语音合成demo """
    ak = 'GVOC7YSBOBAO3VZ38TPW'
    sk = 'EpbGXUHTHoffHjj07W8UNWsGhxNEnEPESp7Gr6Qj'
    region = 'cn-north-1'  # region,如cn-north-1
    # text = '欢迎在win10系统中,默认使用的是微软输入法。最近有用户反应称使用微软输入法打出来的字都是繁体的,该怎么办?出现这样的情况是因为微软输入法本身支持简体和繁体输入,并且可以通过快捷键切换,我们只需按下面步骤进行设置即可还原成简单!'
    path = 'huawei.wav'  # 保存路径,需要具体到音频文件,如D:/test.wav,可在设置中选择不保存本地

    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(10)  # 设置连接超时
    config.set_read_timeout(10)  # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    tts_client = TtsClient(ak, sk, region, sis_config=config)

    # step2 构造请求
    tts_request = TtsRequest(text)
    # 设置请求,所有参数均可不设置,使用默认参数
    # 设置发声人,默认xiaoyan,xiaoqi 正式女生xiaoyu正式男生xiaoyan情感女生xiaowang童声
    tts_request.set_voice_name('xiaoyan')
    # 设置采样率,默认8k
    tts_request.set_sample_rate('8k')
    # 设置音量,[-20, 20],默认0
    tts_request.set_volume(0)
    # 设置音高, [-500, 500], 默认0
    tts_request.set_pitch_rate(2)
    # 设置音速, [-500, 500], 默认0
    tts_request.set_speech_speed(-10)
    # 设置是否保存,默认False
    tts_request.set_saved(True)
    # 设置保存路径,只有设置保存,此参数才生效
    tts_request.set_saved_path(path)

    # # step3 发送请求,返回结果,格式为json. 如果设置保存,可在指定路径里查看保存的音频
    try:
        result = tts_client.get_tts_response(tts_request)
    except ClientException as e:
        print(e)
    except ServerException as e:
        print(e)
    # print(json.dumps(result, indent=2, ensure_ascii=False))
    print("已合成" + path)
示例#5
0
def tts_example(text):
    """ 华为云sis语音合成 """
    # ak = 'GVOC7YSBOBAO3VZ38TPW'
    # sk = 'EpbGXUHTHoffHjj07W8UNWsGhxNEnEPESp7Gr6Qj'
    region = 'cn-north-1'
    path = RESULT_FILE

    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(10)       # 设置连接超时
    config.set_read_timeout(10)         # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    tts_client = TtsClient(ak, sk, region, sis_config=config)

    # step2 构造请求
    tts_request = TtsRequest(text)
    # 设置请求,所有参数均可不设置,使用默认参数
    # 设置发声人,默认xiaoyan,xiaoqi 正式女生xiaoyu正式男生xiaoyan情感女生xiaowang童声
    tts_request.set_voice_name('xiaoyan')
    # 设置采样率,默认8k
    tts_request.set_sample_rate('8k')
    # 设置音量,[-20, 20],默认0
    tts_request.set_volume(0)
    # 设置音高, [-500, 500], 默认0
    tts_request.set_pitch_rate(2)
    # 设置音速, [-500, 500], 默认0
    tts_request.set_speech_speed(-10)
    # 设置是否保存,默认False
    tts_request.set_saved(True)

    # 设置保存路径,只有设置保存,此参数才生效
    tts_request.set_saved_path(path)
    # print("已合成"+path)

    # # step3 发送请求,返回结果,格式为json. 如果设置保存,可在指定路径里查看保存的音频
    try:
        result = tts_client.get_tts_response(tts_request)
    except ClientException as e:
        print(e)
    except ServerException as e:
        print(e)
示例#6
0
def text2speech(text, out_file):
    """ 语音合成 """
    ak = 'GVOC7YSBOBAO3VZ38TPW'
    sk = 'EpbGXUHTHoffHjj07W8UNWsGhxNEnEPESp7Gr6Qj'
    region = 'cn-north-1'  # region,如cn-north-1
    path = out_file  # 保存路径,需要具体到音频文件,如D:/test.wav,可在设置中选择不保存本地
    # print("合成 "+text)
    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(10)  # 设置连接超时
    config.set_read_timeout(10)  # 设置读取超时
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    tts_client = TtsClient(ak, sk, region, sis_config=config)

    # step2 构造请求
    tts_request = TtsRequest(text)
    # 设置请求,所有参数均可不设置,使用默认参数
    # 设置发声人,默认xiaoyan,xiaoqi 正式女生xiaoyu正式男生xiaoyan情感女生xiaowang童声
    tts_request.set_voice_name('xiaoyu')
    # 设置采样率,默认8k
    tts_request.set_sample_rate('8k')
    # 设置音量,[-20, 20],默认0
    tts_request.set_volume(17)
    # 设置音高, [-500, 500], 默认0
    tts_request.set_pitch_rate(4)
    # 设置音速, [-500, 500], 默认0
    tts_request.set_speech_speed(0)
    # 设置是否保存,默认False
    tts_request.set_saved(True)
    # 设置保存路径,只有设置保存,此参数才生效
    tts_request.set_saved_path(path)

    # # step3 发送请求,返回结果,格式为json. 如果设置保存,可在指定路径里查看保存的音频
    try:
        result = tts_client.get_tts_response(tts_request)
    except ClientException as e:
        print(e)
    except ServerException as e:
        print(e)
    # print(json.dumps(result, indent=2, ensure_ascii=False))
    print("已合成语音片段 " + text)
示例#7
0
def ttsc_example():
    """ 定制语音合成demo """
    ak = sys_ak             # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    sk = sys_sk            # 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html
    region = sys_region         # region,如cn-north-4
    project_id = sys_project_id     # 同region一一对应,参考https://support.huaweicloud.com/api-sis/sis_03_0008.html
    text = output_text           # 待合成文本,不超过500字
    path = output_path          # 保存路径,如D:/test.wav。 可在设置中选择不保存本地

    # step1 初始化客户端
    config = SisConfig()
    config.set_connect_timeout(5)       # 设置连接超时,单位s
    config.set_read_timeout(10)         # 设置读取超时,单位s
    # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password]
    # config.set_proxy(proxy)
    ttsc_client = TtsCustomizationClient(ak, sk, region, project_id, sis_config=config)

    # step2 构造请求
    ttsc_request = TtsCustomRequest(text)
    # 设置请求,所有参数均可不设置,使用默认参数
    # 设置属性字符串, language_speaker_domain, 默认chinese_xiaoyan_common, 参考api文档
    ttsc_request.set_property('chinese_xiaoyan_common')
    # 设置音频格式,默认wav,可选mp3和pcm
    ttsc_request.set_audio_format('wav')
    # 设置采样率,8000 or 16000, 默认8000
    ttsc_request.set_sample_rate('8000')
    # 设置音量,[0, 100],默认50
    ttsc_request.set_volume(50)
    # 设置音高, [-500, 500], 默认0
    ttsc_request.set_pitch(0)
    # 设置音速, [-500, 500], 默认0
    ttsc_request.set_speed(0)
    # 设置是否保存,默认False
    ttsc_request.set_saved(True)
    # 设置保存路径,只有设置保存,此参数才生效
    ttsc_request.set_saved_path(path)

    # step3 发送请求,返回结果。如果设置保存,可在指定路径里查看保存的音频。
    result = ttsc_client.get_ttsc_response(ttsc_request)